Philippe 13/02/2019: bugfix: intent of PPRFR OUT->INOUT
[MNH-git_open_source-lfs.git] / A-INSTALL
1 #
2 # Version of PACKAGE MESONH "Open distribution"
3 #              PACK-MNH-V5-4-1
4 #              DATE : 20/07/2018
5 #              VERSION : MESONH MASDEV5_4 + BUG-1
6 #
7 #  MAP
8 #
9 #        0) TWO WAYS OF DOWNLOADING MESONH
10 #      I-A) DOWNLOAD VIA THE WEB MESONH HOME PAGE
11 #      I-B) DOWNLOAD VIA GIT ANONYMOUS 
12 #       II) CONFIGURING THE MESONH PACKAGE
13 #      III) COMPILING/INSTALLING THE MESONH PACKAGE ON YOUR LINUX COMPUTER 
14 #       IV) RUN SOME "SMALL KTEST" EXAMPLES
15 #        V) RECOMPILING YOUR 'OWN' SOURCES ONLY 
16 #       VI) COMPILING/INSTALLING MESONH ON GENCI & ECMWF & METEO COMPUTERS
17 #      VII) "SCANDOLLAR" = SCRIPTING YOUR OWN PROCEDURES 
18 #
19 #     VIII) TROUBLE-SHOOTING
20 #           a) Segmentation violation -> problem of "stack size" limit
21 #           b) Compiler bug with "ifort 10.0.xxx" 
22 #
23 #       IX) OPTIONAL COMPILATION
24 #           a) MNH_FOREFIRE for forefire runs ( external package needed )
25 #           b) MNH_RTTOV for optional radiative computation
26 #           c) MNH_ECRAD for optional compilation of new ECRAD radiative library from ECMWF
27 #           d) MNH_MEGAN for optional compilation of MEGAN 
28 #           e) cleaning previous compiled version
29 #
30 #
31 ^L
32 #  0) TWO WAYS OF DOWNLOADING MESONH
33 #  =================================
34 #
35 #  MESONH sources and executables 
36 #  http://mesonh.aero.obs-mip.fr
37 #  are developed and maintained with the
38 #  Git tools ( https://git-scm.com/ )
39 #
40 #  There are two ways to download the package of
41 #  MESONH containing :
42 #    - sources 
43 #    - makefiles
44 #    - precompile exe 
45 #    - graphic tools
46 #    - basic examples
47 #
48 #  The first way is for VERY BASIC USER OF MESONH 
49 #  via a download of a "tar ball" in the WEB site of MESONH
50 #
51 #  The second way is for USER/DEVELOPER of MESONH
52 #  via the use of Git and an anonymous ssh connection to the Git repository of
53 #  the MESONH package 
54
55 #
56 # REM: It is now strongly recommended, but not mandatory, 
57 #      for all users to use the Git solution, because:
58 #
59 #      * It's far more easy for us ( support team ) to give you some assistance
60 #        in case of trouble... as Git permits us to know exactly
61 #         what you have changed in the original PACKAGE
62 #
63 #      * It's much more easy for you to update to the last version...  
64 #        or at least see the change made for BUGFIX directly on our
65 #        installation.
66 #
67 #
68 #  Following, are presented the two mutually exclusive ways to get the MesoNH
69 #  package:
70 #
71 #
72 ^L
73 # I-A) DOWNLOAD VIA THE WEB MESONH HOME PAGE
74 # ==========================================
75 #
76 # With your preferred web browser go to the MESONH WEB SITE
77
78 #  http://mesonh.aero.obs-mip.fr/mesonh
79 #     ---> Download
80 #
81 # or directly
82 #
83 # http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-4-1.tar.gz
84 #
85 # Then untar the file "PACK-MNH-V5-4-1.tar.gz" where you want to.
86 # For example, in your home directory:
87 #
88  
89 cd ~
90 tar xvfz PACK-MNH-V5-4-1.tar.gz
91       
92 #
93 #  Process now to the chapter to configure the MesoNH package.
94 #
95 # => II) CONFIGURING THE MESONH PACKAGE
96 #
97 ^L
98 # I-B) DOWNLOAD VIA GIT ANONYMOUS
99 # ===============================
100 #
101 #    a) Prerequisites
102 #    ----------------
103 #
104 # In order to clone the Meso-NH git repository that contains sources, compiled
105 # libraries and binary tools, the git LFS extension is required to handle
106 # binary (or large) files. So before starting, be sure:
107 #
108 #  * to have git v1.8.2 or higher installed on your workstation. You can run
109 #    and check with:
110
111 git --version
112
113 #  * to install the git LFS extension (not included by default in the Git
114 #    package):
115 #    - get the linux git-lfs archive from the "Download v1.X.Y (Linux)" link on
116 #      the web page https://git-lfs.github.com/
117 #    - extract the archive and copy the git-lfs binary in your $HOME/bin (the
118 #      provided install.sh script doesn't need to be executed)
119 #    - from any directory, you can now execute:
120
121 git lfs install
122
123 #      that will set up some filters under the name "lfs" in the global Git
124 #      config file ($HOME/.gitconfig) 
125 #
126 #    b) Before cloning
127 #    -----------------
128 #
129 #  * Download the private key to access the anonymous Meso-NH Git server (read-
130 #    only access) by following the next link:
131 #
132
133 http://mesonh.aero.obs-mip.fr/mesonh54/GitSources?action=AttachFile&do=get&target=anongitmesonh.key
134
135 #
136 #    and save the file in your $HOME/.ssh/ directory.
137 #
138 #  * Change the access permissions of the key with:
139 #
140
141 chmod 600 $HOME/.ssh/anongitmesonh.key
142
143 #
144 #  * Copy/paste the following lines and add them in your $HOME/.ssh/config file
145 #    (create the file if it is missing):
146 #
147
148 Host anongit_mesonh
149   User anongit
150   IdentityFile ~/.ssh/anongitmesonh.key
151   Hostname 195.83.22.22
152   Port 22222
153
154 #
155 # Before cloning the repository, execute:
156 #
157
158 git config --global http.sslverify false
159
160 #
161 # This is necessary to disable the certificate checks because a self-signed
162 # certificate was used for the LFS server.
163 #
164 #    c) Cloning the Meso-NH Source repository on the developpement branch MNH-54-branch
165 #    ----------------------------------------------------------------------------------
166 #
167 # Finally you can clone the Meso-NH Git repository with the following command:
168 #
169
170 git lfs clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MNH-54-branch MNH-V5-4-1
171
172 #
173 # that will create the MNH-V5-4-1 directory containing a clone (copy) of the
174 # Meso-NH package on the remote developpement branch MNH-54-branch
175 #
176 #
177 #   d) Checking out a given version of MESONH
178 #   -----------------------------------------
179 #
180 # Once the repository is cloned, it's better for you to checkout your own branch
181 # (by default, you are on HEAD of the MNH-54-branch development branch  ).
182 #
183 # To create your local branch corresponding to the V5-4-1 version, type:
184 #
185
186 cd MNH-V5-4-1
187 git checkout -b MYB-MNH-V5-4-1 PACK-MNH-V5-4-1
188
189 #
190 # MYB-MNH-V5-4-1 is the name of the local branch you created
191 # and
192 # PACK-MNH-V5-4-1 is the remote/origin tag on which it is based.
193 #
194 # The advantage of this way of downloading the package is that in the future
195 # you could check/update quickly differences with the new version of the
196 # package without having to download entirely the full package.
197 #
198 #  Suppose that a new version, for example "PACK-MNH-V5-4-1", is announced.
199 #
200 #  To see the differences with your working copy, do:
201 #
202
203 git fetch
204 git diff HEAD PACK-MNH-V5-4-1
205
206 #
207 #  To go to the new version, you can, for example, create a new local branch:
208 #
209
210 git checkout -b MYB-MNH-V5-4-1 PACK-MNH-V5-4-1
211
212 #
213 # At any time, you can also check for "uptodate" changes in the Git branch
214 # dedicated to the MNH54 version before the official release of the "bugN+1"
215 # bugfix version.
216 #
217
218 git fetch
219 git diff HEAD MNH-54-branch
220   
221 #
222 # And, test this development (not yet official) version by going to this branch:
223 #
224
225 git checkout --track origin/MNH-54-branch
226 #
227 #    e) Cloning the Meso-NH Documentation repository
228 #
229 # In a similar fashion, you can clone the Meso-NH documentation Git repository
230 # with the following command:
231 #
232
233 git clone anongit@anongit_mesonh:/gitrepos/MNH-DOC.git
234
235 #
236 # that will create the MNH-DOC directory containing the latest LaTeX sources of
237 # the Meso-NH documentation.
238
239 #
240 #  Well, the use of git is not under the scope of this "INSTALL" document...
241 #
242 #   Now, go to the next chapter 
243 #
244 #   => II) CONFIGURING THE MESONH PACKAGE
245 #
246 #
247 ^L
248 #
249 # II) CONFIGURING THE MESONH PACKAGE
250 # ==================================
251 #
252 #    For the installation process, you could now
253 #    use the "./configure" script like this 
254 #
255
256 cd ~/MNH-V5-4-1/src
257 ./configure
258 . ../conf/profile_mesonh
259
260 #
261 #    this will create a configuration file "profile_mesonh" with
262 #    an extension reflecting the different "choices" made automatically
263 #    to match the computer on which you want to install MESONH
264 #   
265 #    WARNING :
266 #    =========
267 #    On GENCI & ECMWF & METEO/CNRM  computers, the './configure' is tuned to 
268 #    identify the computer on which the command is used
269 #    so the good compiler, MPI & netCDF libraries,... 
270 #    are automatically chosen
271
272 #    /!\ This is not the case in your "own" personal Linux computer ...
273 #    So is up to you to set the ARCH variable correctly
274 #    ARCH     = Fortran compiler to use,
275 #    VER_MPI  = version of MPI to use ,
276 #    OPTLEVEL = 
277 #    etc ...
278 #    and all the other environnement variables. 
279
280 #    Be default, for an unknown computer, you will have:
281 #
282 #   - the compiler choosen to be "gfortran" => ARCH=LXgfortran
283 #   - the MPI library to be the MPIVIDE  => VER_MPI=MPIVIDE
284 #     ( empty MPI library coming with MESONH package = no parallel run possible )
285 #   - the level of optimization for the compiler  => OPTLEVEL=DEBUG
286 #     (  for development purpose ,fast compilation & debugging )   
287 #       
288 #    SO IF NEEDED:
289 #    ============
290 #    you could change the default FLAG compiler/MPI/optlevel
291 #    like this, for example 
292
293 export ARCH=LXifort        # Use Intel "ifort" compiler on LX=linux Plateform 
294 export VER_MPI=MPIAUTO     # Use MPI with compiler wrapper 'mpif90', for computer having this wrapper installed 
295 export OPTLEVEL=O2         # Compile in O2, 4 times faster then DEBUG, but less error checks
296
297 ./configure
298
299 #    and then source/load the new generate file
300
301 . ../conf/profile_mesonh.LXifort.MNH-V5-4-1.MPIAUTO.O2
302
303 #
304 #  REM: 
305 #  ====
306 #
307 #  - Options specific to compiling/architecture, like 'OPTLEVEL' are defined inside the "Rules.${ARCH}.mk" .
308 #
309 #  - Options specific to library like "mpi"="VER_MPI" or "cdf"="VER_CDF" are defined inside "Makefile.MESONH.mk"
310 #
311 #  - If needed, for adaptation to your requirements, look inside the files and changes options for your needs.
312 #  
313 #  - On PC-Linux, if needed, look at the "MesonhTEAM Wiki" to know how to compile the OpenMPI library with MESONH:
314 #
315 #    http://mesonh.aero.obs-mip.fr/teamwiki/MesonhTEAMFAQ/PC_Linux
316 #      --> Compilation of OPEN-MPI
317
318 ^L
319 #   
320 # III) COMPILING/INSTALLING THE MESONH PACKAGE ON YOUR LINUX COMPUTER 
321 # ===================================================================
322 #
323 # go to the directory  "src"
324 #
325
326 cd  ~/MNH-V5-4-1/src
327
328 #
329 # if you have not already configured your MESONH environment
330 # either manually in your interactive session 
331 # or automatically through your .profile (or .bashrc), do:
332 #
333 # REM: use the configure file corresponding to your needs, cf. previous chapter 
334
335 . ../conf/profile_mesonh{use_the_good_version_here} 
336
337 #
338 # run the compilation by
339 #
340
341 (g)make
342
343 #
344 # The compilation will take about 20 minutes on modern PC-Linux ...
345
346 # If you have a multi-processor machine you can speedup
347 # the compilation, for example on four cores, with:
348
349 (g)make -j 4
350
351 #
352 #
353 # The  object files "*.o"  &  main executables of the "MESONH PACKAGE" :
354 #
355 #  MESONH , PREP_IDEAL_CASE , PREP_REAL_CASE , etc ...
356 #
357 #  are compiled in one step and created in the directory
358 #
359 #    dir_obj-$(ARCH).../MASTER
360 #
361 # ( REM: the lib...a is only created and removed at the link phase;
362 #          this allows a parallel compilation of the sources ... ) 
363 #
364 # The exact name of this "dir_obj..." depends on the different environnement
365 # variables set by the "profile_mesonh...." which you have loaded before the compilation.
366 #
367 # This allows by loading different "profile_mesonh.." files to compile in the same
368 # source/installation directory different versions of MESONH , with different
369 # compilers, different versions of MPI, different USER sources...
370 #
371 #
372 # To install the new compiled program in the "$SRC_MESONH/exe"
373 # directory, after compilation, just run
374 #
375
376 make installmaster
377
378 #
379 # The executables with their full name, including $ARCH, compiler,
380 # MPI and level of optimization, will be linked in the "../exe" directory
381
382 # REM: 
383 # ---
384 #      The "make installmaster" need to be done only one time by "version". 
385 #      If you only change/add source, you have to do "make" 
386
387 make
388  
389 #
390 #  IV) RUN SOME "SMALL KTEST" EXAMPLES
391 #  ===================================
392 #
393 #  After compilation & installation, you could run
394 #  some basic "KTEST" examples from the "src" directory 
395 #  by running:
396
397 make examples 
398
399 # or by giving one of the "KTEST" names in 
400 #
401 # the list "001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier"
402
403 make 004_Reunion
404
405 #
406 #  EXAMPLES USING NCL
407 #  ===================
408 #
409 #  WITH 2 OPTIONS TO CONVERT FROM LFI TO NETCDF FORMAT
410 #  1: with extractdia
411 #  2: with lfi2cdf
412 #  Only for 2 KTEST : 004_Reunion and 007_16janvier
413 #
414
415 make ncl1_examples  # if using extractdia
416
417 #or
418
419 make ncl2_examples  # if using lfi2cdf
420
421 #
422 # Or by giving the KTEST name followed by _ncl1 or _ncl2
423 #
424
425 make 004_Reunion_ncl1
426
427 #or
428
429 make 004_Reunion_ncl2
430
431 ^L
432 #
433 #  V) RECOMPILING YOUR OWN SOURCES ONLY 
434 #  ====================================
435 #
436 #  NOW YOU COULD GENERATE AND RECOMPILE YOUR OWN SOURCES ONLY
437 #  ( like BIBUSER in centralised MESONH version )
438 #
439 #  Suppose you want to create a "MY_MODIF" version ...
440 #
441 # Step-1 : prepare your source directory
442 # ---------------------------------------
443 #
444 # Put your own sources in a subdirectory of "${SRC_MESONH}/src" named 
445 #  
446    
447 ${SRC_MESONH}/src/MY_MODIF
448
449 #
450 #  All subdirectories in "MY_MODIF" will be scanned. So if you want,
451 #  you could make a subdirectory for each component of the MESONH
452 #  Package
453 #
454
455 cp .../mesonh.f90 MY_MODIF/MNH/.
456 cp .../isba.f90   MY_MODIF/SURFEX/.
457
458 #
459 #  /!\ WARNING :
460 #  -------------
461 #   - In this subdirectory, put only fortran source you want to compile !!!
462 #   Don't use it as a trash with old sources file like 'my_source.f90.old'
463 #   or 'tar' files 'mysource.tar' . 
464 #   - All 'spirituous' file will confuse the 'make' command.
465 #
466 #   
467 # Step-2 : configure/compiling with VER_USER=...
468 # ----------------------------------------------
469
470 # - Logout of the current session to be sure to unset all the 
471 #   environnement variables loaded with the your 'master 'profile_mesonh'
472 #
473 # - Login again and:
474 #
475 #   - set the variable "VER_USER" with the name of your "USER VERSION",  
476 #   - set also the optional ARCH, VER_MPI... you want to use.
477 #  
478 # and run again the "./configure" command
479
480 #export ARCH=...
481 #export VER_MPI=...
482 export VER_USER=MY_MODIF
483 ./configure
484
485 #
486 # this will regenerate the "profile-mesonh" file and a copy
487 # of this with the extent  "profile_mesonh...${VER_USER)..."
488 #
489 # as before load it & and compile with the command "make user"
490
491 . ../conf/profile_mesnh...${VER_USER}...
492
493 make user
494
495 # this will compile only your sources and the files depending on your sources
496 # and generate the new executables in your own directory
497 #
498 #   dir_obj-$(ARCH).../${VER_USER}
499 #
500 #
501 # WARNING : 
502 # ========
503 #  Before compiling your own sources be sure that these ones
504 #  are younger than the "*.o" files of the MASTER directory.
505 #  If any doubt, at any time use the command
506 #
507 #      touch *.f*
508 #
509 #     on your sources, and only on yours do that!!!
510 #
511 #
512 # Step-3 : running the examples 
513 # -----------------------------
514 #
515 #
516 # Now if the compilation is OK, you could test this new version with the "make examples".
517 #
518 # First, install the new binaries in the '${SRC_MESONH}/exe' with
519
520 make installuser
521
522 #   The "make installuser" needs to be done only one time by "version".
523
524 #
525 # And run the examples. Your version should appear in the name of the used executables.
526 #
527
528 make examples 
529
530 ^L
531 #
532 #   VI) COMPILING/INSTALLING ON GENCI & ECMWF & METEO COMPUTERS
533 #   ===========================================================
534 #
535 #   After downloading "exactly" like on "any standalone PC" 
536 #   run the "./configure" command :
537 #
538
539 ./configure
540
541 #
542 #  - If you do not have sufficient space in your "$HOME" directory,
543 #    install the whole package directly on the ${WORKDIR}
544 #
545 #   WARNING :
546 #   ======== 
547 #    - Think to do a backup of your installation 
548 #    - This space is no more "purged" but a "crash disk" could/will
549 #      probably occur !!!
550
551
552 cd $WORKDIR
553 cd MNH-V5-4-1/src
554
555 ./configure
556  
557 #   
558 #   Due to limitation in time & memory on interactive connection 
559 #   then compile the MESONH PACKAGE in batch mode with the different "job_make_mesonh*" files
560 #   
561 #   at IDRIS :
562 #   ---------
563 #
564
565 #   - On ADA ( IBM/x3750 ) with :
566
567 llsubmit job_make_mesonh_IBM_ada
568
569 #
570 #
571 #   - On TURING (IBM BG/Q ) : 
572
573 llsubmit job_make_mesonh_BGQ
574
575 #
576 #
577 #   BACKUP : /!\ backup your work on "ergon"
578 #
579 #   
580 #   at CINES on JADE( SGI/ICE ) , OCCIGEN not tested yet  :
581 #   -------------------------------------------------------
582
583 #   - install the PACKAGE in your "/store/${USER}" directory 
584 #   - you could compile in interactive mode
585 #
586 #    BACKUP : /!\ backup your work on "/data/${USER}"
587
588
589
590
591 #   at ECMWF on cca ( CRAY/XC30 ) :
592 #   ----------------------------
593 #
594 #   - to install MESONH go to your $PERM directory
595 #     if you need more disk space than allowed for 'standard' user 
596 #     Ask to Dominique Lucas, look this email :
597 #
598 #    http://mesonh.aero.obs-mip.fr/cgi-bin/mesonh_interne/mail2html.cgi?file=2009_09_24_15:31:54
599 #
600 #   - for the compilation use :
601
602 qsub job_make_mesonh_CRAY_cca
603
604 #
605 # REM : On CRAY computer cca , the default compiler is the CRAY one = crayftn .
606 #      I you have trouble with this one , you could compile with the Intel/ifort one .
607 #      Use the ifort one do :
608
609 export ARCH=LXifort
610 ./configure
611
612 ...
613
614 création du fichier -->  ../conf/profile_mesonh-LXifortI4-MNH-V5-4-1-MPICRAY-O2
615
616 # And for the compilation & example job , switch the ARCH variable to LXiort :
617
618 vi  job_make_mesonh_CRAY_cca(job_make_examples_CRAY_cca)
619
620 ARCH=LXifort
621 #ARCH=LXcray # this is the default one
622 . ../conf/profile_mesonh-${ARCH}I4-MNH-V5-4-1-MPICRAY-O2
623
624
625
626 #
627 #   EXAMPLES ON GENCI & ECMWF PLATFORMS
628 #   ====================================
629 #
630 #  - At IDRIS
631 #
632
633 # on ADA
634
635 llsubmit job_make_examples_IBM_ada
636
637 #on TURING
638
639 llsubmit job_make_examples_BGQ
640
641 #
642 #   - At CINES on JADE( SGI/ICE ) :
643 #
644 # load ".profile_mesonh..." & set the variables :
645  
646 export MONORUN="mpirun -np 1"
647 export MPIRUN="mpirun -np 4 " 
648   
649 # and run with 
650
651 make examples
652
653 #
654 #   - At ECMWF on cca
655 #
656
657 llsubmit  job_make_examples_CRAY_cca
658
659 #
660 # That's all for the basic INSTALLATION of the "MESONH PACKAGE"
661 #  
662
663 #
664 #  VII) "SCANDOLLAR" = SCRIPTING YOUR OWN PROCEDURES 
665 #  ====================================================
666
667 REM : not tested on 5-4-X version ...
668
669 # A small script 'scandollar' is in test in this version of MESONH.
670 # It will help you to build a complete chaining of an experiment. 
671 # The idea is to write some "template" scripts with '$VARIABLE' in the 
672 # Key point. Then 'scandollar' will parse this template files
673 # and generate the file with the variables evaluated ...
674 #
675 # First don't forget to load your "profile_mesonh..."
676 #
677 # So how it work  ...
678 #
679 #  Syntaxe 
680
681 export CONFEXP="YOUR_EXPERIMENT"
682 scandollar [list_directory]
683
684 # What is done :
685 #
686 #   for all (directory) in [liste directory]
687 #   go to this (directory)
688 #    - read the environnement variable in the user 'confdollar' file 
689 #    - read the default environnement variable for this 'machine' in ${CONF_DOLLAR}
690 #    - parse all the '*.ihm' file and put the transformed file 
691 #         (without extension in) in a new sub-directory '${CONFEXP}'
692 #
693 #  Without [list_directory] the current directory '.' is parsed . 
694 #
695 # As a demonstration the '16janvier Study Case' is build with this
696 # template script here :
697
698 $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar
699
700 #
701 # EXAMPLE :
702 # -------
703 #
704 # To parse only the first pgd step = directory '001_pgd1'
705
706 cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1
707
708 export CONFEXP=512
709 scandollar
710
711 ## OUTPUT ::
712
713 >#  read default config file :: --->  CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-1/conf/post/confdollar_aeropc_default
714 >#
715 >#  read    user config file :: --->  CONFIG=confdollar
716 >#
717 >#  processes file *.ihm and put them in ./512/ ::
718 >#          ---> run_prep_pgd_xyz.ihm =>  ./512/run_prep_pgd_xyz
719
720
721 #
722 # And to run this step 
723 #
724
725 cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/512
726 (qsub) run_prep_pgd_xyz # qsub on brodie 
727
728 # To parse all these steps 
729
730 cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/
731 scandollar 0*
732
733 ## OUTPUT ::
734 >#
735 >#  read default config file :: --->  CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-1/conf/post/confdollar_aeropc_default
736 >#
737 >#  read    user config file :: --->  CONFIG=confdollar
738 >#
739 >#  processes file *.ihm and put them in 001_pgd1/512/ ::
740 >#          ---> run_prep_pgd_xyz.ihm =>  001_pgd1/512/run_prep_pgd_xyz
741 ...
742 >#  read    user config file :: --->  CONFIG=confdollar
743 >#
744 >#  processes file *.ihm and put them in 008_run2/512/ ::
745 >#          ---> run_mesonh_xyz.ihm =>  008_run2/512/run_mesonh_xyz
746 >#
747 ...
748 >#  read    user config file :: --->  CONFIG=confdollar
749 >#
750 >#  processes file *.ihm and put them in 011_diaprog/512/ ::
751 >#          ---> run_diaprog.ihm =>  011_diaprog/512/run_diaprog
752
753
754 #
755 # The chaining of the differents steps is control by the "RMSHELL" variable .
756 # To inhibit put a "#" in it , eather in your current shell
757 # or in the 'confdollar' file .
758
759 export RMSHELL="#"
760
761 #
762 # Some 'predefine' variables are set in the '${CONF_DOLLAR}' default files
763 #   --> One file is defined by know-computer . 
764 #
765 #   Are included files for 'brodie' , 'vargas' , ( babel beta-test ) , 'c1a' , 'jade' & 'aeropc*' ( = default for unknown host )
766
767 export  CONF_DOLLAR=${SRC_MESONH}/conf/post/confdollar_aeropc_default
768
769 #
770 #   You could define your own default file and use it by setting
771 #   in your shell the  'CONF_DOLLAR' variable 
772 #   ( By default './configure' will set it for you in the profile_mesonh file ) 
773
774
775 #
776 #  ON GENCI PLATEFORM 
777 #  ------------------
778
779 #  You will find my "own" personal installation of MESONH 
780 #  in the next directory . If you need only to run MESONH
781 #  without recompiliong new sources for MESONH, you could :
782 #
783 #  - source/load my own "profile_mesonh" without modification
784
785 #  - and copy the scripts examples  with 
786
787 cp -R  007_16janvier_scandollar /.../your_directory
788   
789 #
790
791
792 # You could also copy only the differents "*/512"  sub-directory
793 # if you don't when ti use the "scandollar" script  .
794 #
795
796 #   You will the need to change only information corresponding 
797 #   the location to your own path directory for the input/ouput data .
798 #  
799 #   So
800 #
801 #  - At IDRIS :
802 #    ==========
803 #
804 #  On Brodie
805 #  ---------
806 #
807 # use this "profile_mesonh" :
808
809 .  /home/rech/mnh/rmnh007/DEV/MNH-V5-4-1/conf/profile_mesonh-SX8-MNH-V5-4-1-MPIAUTO-O4
810
811 # And the examples are here ( link to my $WORKDIR in actually )  
812
813 /home/rech/mnh/rmnh007/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar
814
815 #
816 #  On vargas
817 #  ---------
818 #  use this "profile_mesonh" :
819
820 . /workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-1/conf/profile_mesonh-AIX64-MNH-V5-4-1-MPIAUTO-O2
821
822 # and examples here :
823
824 /workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar
825
826
827 #  - At CINES on JADE :
828 #    =================
829 #
830 # use 
831
832 . /work/escobar/DEV/MNH-V5-4-1/conf/profile_mesonh-LXifort-MNH-V5-4-1-MPIICE-O2
833
834 # and the exemples
835
836 /work/escobar/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar
837
838 #
839 #  - At ECMWF on cxa :
840 #    ===============
841 #
842 # use
843
844 . /c1a/ms_perm/au5/MNH-V5-4-1/conf/profile_mesonh-AIX64-MNH-V5-4-1-MPIAUTO-O2
845
846 # and the examples
847
848 /c1a/ms_perm/au5/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar
849
850
851 #
852 #  Good luck!!!
853 #
854
855 #
856 # VIII) TROUBLE-SHOOTING
857 # ======================
858 #
859 #
860 # a) "Segmentation violation" -> problem of "stack size" limit
861 # ------------------------------------------------------------
862 #
863 #  When running the examples coming with the MESONH package, if you obtain
864 #  a "segmentation violation" error it is probably a problem with
865 #  the "stack size" limit on your Linux computer ...
866 #
867 #  Check this limit with the command
868
869 ulimit -s
870
871 #  The limit is given in Kbytes and is often 8192 KB
872 #
873 #  ---> this mean only 8Mbytes for array in stack memory
874 #
875 #  It's a very low walue !!!
876 #
877 #  We recommend you to put it to "unlimited" in your
878 #  ".bashrc" or ".profile" like this
879
880 ulimit -s unlimited
881
882
883 #
884 # b) Compiler BUG with "ifort 10.0.xxx" 
885 # -------------------------------------
886 #
887 #   Some routines do not compile with
888 #   the version "10.0.XXX" of "ifort" ( at least until 10.0.023 )
889 #
890 #    Solution ---> Upgrade to ifort "10.1.015"
891 #
892 #   The ifort "10.1.008" has also some bug in the generation
893 #   of optimized 'vectorized SSE' code resulting in unpredictable
894 #   "Flaoting Point" error
895 #
896 #    Solution ---> compile the routine with problem with '-O1' option
897 #                  or upgrade to at least "10.1.015" version
898 #   
899 #
900 #
901 # IX) OPTIONAL COMPILATION
902 ===========================
903 # a) MNH_FOREFIRE for forefire runs ( external package needed )
904 # -------------------------------------------------------------
905 #
906 #  If you want to use coupled(inline) run with FOREFIRE and MESONH
907 #  you could compile the interfaced/coupling routine by activating
908 #  this variable before any compilation
909
910 export MNH_FOREFIRE=1.0
911
912 # and then the configure 
913
914 ./configure
915
916 #
917 # after this compile as usually
918 #
919
920 make
921 etc ...
922
923 #
924 # The FOREFIRE API package himself must be compiled independently from MesoNH
925 # The git repository is here https://github.com/forefireAPI/firefront/tree/2014.01
926 # it could be cloned by
927
928 git clone -b 2014.01 https://github.com/forefireAPI/firefront.git
929
930 # it depend on netcdf and scons for is compilation
931 # the "libForeFIre.so" generate must by referenced in the LD_LIBRARY_PATH
932 # or move/linked to the 'exe' directory of MesoNH
933 #    
934
935 # see d) for cleaning previously version if needed
936
937 # b) MNH_RTTOV for optional radiative computation
938 # --------------------------------------
939 #
940 # The RTTOV package was not included into the open source version of Meso-NH
941 # because it needs a licence agrement.
942 #
943 # ----------------------------------
944 # OPTION 1: Use version 11.3 of RTTOV 
945 # -----------------------------------
946 # Download the RTTOV package rttov113.tar.gz by following the instructions given on http://nwpsaf.eu/site/software/rttov/
947 #
948 # Install the RTTOV package rttov113.tar.gz
949 cd MNH.../src/LIB
950 mkdir RTTOV-11.3
951 cd RTTOV-11.3
952 tar xvfz rttov113.tar.gz
953 cd src
954 make ARCH=ifort        # Use Intel "ifort" compiler; other options: gfortran, NAG, pgf90, IBM
955 #
956 # And then for the compilation, run the 'configure' script preceded with the setting of the MNH_RTTOV variable:
957 #
958
959 cd MNH.../src/
960 export MNH_RTTOV=1
961 export VER_RTTOV=11.3
962 ./configure
963
964 etc ...
965
966 # ----------------------------------
967 # OPTION 2: Use version 8.7 of RTTOV 
968 # ----------------------------------
969 # For already(old) licencied MesoNH users (MNH-4-X version with research licence see here: http://mesonh.aero.obs-mip.fr/mesonh410/UserInformation)
970 #
971 # the package could be reloaded in this way  
972 #
973 # - With cvs access
974 #
975
976 cd MNH.../src/LIB
977 cvs up -rPACK-MNH-V4-10-3 -d -P RTTOV
978
979 #
980 # - With WEB access (with WEB login/pass as usually) the RTTOV package could also be retrieve in tarball with wget like this:
981 #
982
983 cd MNH.../src/LIB
984 wget --http-user=USER  --http-password=PASS 'http://mesonh.aero.obs-mip.fr/cgi-bin/mesonh_interne/viewcvs.cgi/MNH-VX-Y-Z/src/LIB/RTTOV/?view=tar&pathrev=PACK-MNH-V4-10-3' -O RTTOV.tar.gz
985 tar xvfz RTTOV.tar.gz
986
987 # /!\ don't forget the ''.  Otherwise, this will not work!
988
989 #
990 # And then for the compilation, run the 'configure' script preceded with the setting of the MNH_RTTOV variable:
991 #
992
993 cd MNH.../src/
994 export MNH_RTTOV=1
995 export VER_RTTOV=8.7
996 ./configure
997
998 etc ...
999
1000 # c) MNH_ECRAD for optional compilation of new ECRAD radiative library from ECMWF 
1001 # --------------------------------------
1002 #
1003 # The full ECRAD package was not included into the open source version of Meso-NH
1004 # because it needs a licence agrement.
1005 #
1006 # See here to get the licence & full sources : https://software.ecmwf.int/wiki/display/ECRAD/ECMWF+Radiation+Scheme+Home
1007
1008 # REM : some of the files modified for MNH are included in the directory ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1_mnh
1009
1010 # Install the ECRAD package ecrad-1.0.1.tar.gz in the MNH tree directory
1011
1012 cd ${SRC_MESONH}/src/LIB/RAD
1013 tar xvfz ecrad-1.0.1.tar.gz
1014
1015 # Configure & Compilation
1016 export MNH_ECRAD=1
1017 ./configure
1018
1019 etc ...
1020
1021 #
1022 # REM : the 'profile_mesonh...' file & the 'dir_obj...' directory will be suffixed with an ECRAD extension 
1023 #
1024 #  Usage :
1025 #   1) In namelist replace RAD='ECMW' be RAD='ECRA' 
1026 #   2) Add link to 'ecrad-1.0.1/data' files 
1027 #      see 007_16janvier/008_run2 test case for example
1028 #
1029 # d) MNH_MEGAN for optional compilation of MEGAN code 
1030 # --------------------------------------
1031 #
1032 # Configure & Compilation
1033 export MNH_MEGAN=1
1034 ./configure
1035
1036 etc ...
1037 # e) cleaning previous compiled version
1038 # --------------------------------------
1039 #
1040 # If you have already compiled exactly the same version of MesoNH on this computer ( same $XYZ value )
1041 # you have first to 'clean' this versio with
1042 #
1043
1044 make cleanmaster
1045
1046 #
1047 # this will delete the dirobj_${XYZ} directory and all the preprocessed sources contained on it ..
1048 #
1049 # I you have also a VER_USER version do
1050
1051 make cleanuser