Forked from
Méso-NH / Méso-NH code
131 commits behind the upstream repository.
-
RODIER Quentin authoredRODIER Quentin authored
A-INSTALL 30.74 KiB
#
# Version of PACKAGE MESONH "Open distribution"
# PACK-MNH-V5-7-1
# DATE : 04/09/2024
# VERSION : MESONH MASDEV5_7 + BUG-1
#
# MAP
#
# 0) TWO WAYS OF DOWNLOADING MESONH
# I-A) DOWNLOAD VIA THE WEB MESONH HOME PAGE
# I-B) DOWNLOAD VIA GIT ANONYMOUS
# II) CONFIGURING THE MESONH PACKAGE
# III) COMPILING/INSTALLING THE MESONH PACKAGE ON YOUR LINUX COMPUTER
# IV) RUN SOME "SMALL KTEST" EXAMPLES
# V) RECOMPILING YOUR 'OWN' SOURCES ONLY
# VI) COMPILING/INSTALLING MESONH ON GENCI & ECMWF & METEO & CALMIP COMPUTERS
# VII) "SCANDOLLAR" = SCRIPTING YOUR OWN PROCEDURES
#
# VIII) TROUBLE-SHOOTING
# a) Segmentation violation -> problem of "stack size" limit
# b) Compiler bug with "ifort 10.0.xxx"
#
# IX) OPTIONAL COMPILATION
# a) MNH_FOREFIRE for forefire runs ( external package needed )
# b) MNH_RTTOV for optional radiative computation
# c) MNH_ECRAD for optional compilation of new ECRAD radiative library from ECMWF
# d) MNH_MEGAN for optional compilation of MEGAN
# e) cleaning previous compiled version
#
#
# NEW since MNH-56X : For conda package for graphic output in test-case examples , read
# the 'README_MNH_CONDA' file in this (root) directory
#
#
^L
# 0) TWO WAYS OF DOWNLOADING MESONH
# =================================
#
# MESONH sources and executables
# http://mesonh.aero.obs-mip.fr
# are developed and maintained with the
# Git tools ( https://git-scm.com/ )
#
# There are two ways to download the package of
# MESONH containing :
# - sources
# - makefiles
# - precompile exe
# - graphic tools
# - basic examples
#
# The first way is for VERY BASIC USER OF MESONH
# via a download of a "tar ball" in the WEB site of MESONH
#
# The second way is for USER/DEVELOPER of MESONH
# via the use of Git and an anonymous ssh connection to the Git repository of
# the MESONH package
#
#
# REM: It is now strongly recommended, but not mandatory,
# for all users to use the Git solution, because:
#
# * It's far more easy for us ( support team ) to give you some assistance
# in case of trouble... as Git permits us to know exactly
# what you have changed in the original PACKAGE
#
# * It's much more easy for you to update to the last version...
# or at least see the change made for BUGFIX directly on our
# installation.
#
#
# Following, are presented the two mutually exclusive ways to get the MesoNH
# package:
#
#
^L
# I-A) DOWNLOAD VIA THE WEB MESONH HOME PAGE
# ==========================================
#
# With your preferred web browser go to the MESONH WEB SITE
#
# http://mesonh.aero.obs-mip.fr/mesonh
# ---> Download
#
# or directly
#
# http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-7-1.tar.gz
#
# Then untar the file "MNH-V5-7-1.tar.gz" where you want to.
# For example, in your home directory:
#
cd ~
tar xvfz MNH-V5-7-1.tar.gz
#
# Process now to the chapter to configure the MesoNH package.
#
# => II) CONFIGURING THE MESONH PACKAGE
#
^L
# I-B) DOWNLOAD VIA GIT ANONYMOUS
# ===============================
#
# a) Prerequisites
# ----------------
#
# In order to clone the Meso-NH git repository that contains sources, compiled
# libraries and binary tools, the git LFS extension is required to handle
# binary (or large) files. So before starting, be sure:
#
# * to have git v1.8.2 or higher installed on your workstation. You can run
# and check with:
git --version
# * to install the git LFS extension (not included by default in the Git
# package):
# - get the linux git-lfs archive from the "Download v1.X.Y (Linux)" link on
# the web page https://git-lfs.github.com/
# - extract the archive and copy the git-lfs binary in your $HOME/bin (the
# provided install.sh script doesn't need to be executed)
# - from any directory, you can now execute:
git lfs install
# that will set up some filters under the name "lfs" in the global Git
# config file ($HOME/.gitconfig)
#
# b) Before cloning
# -----------------
#
# * Download the private key to access the anonymous Meso-NH Git server (read-
# only access) by following the next link:
#
http://mesonh.aero.obs-mip.fr/mesonh57/GitSources?action=AttachFile&do=get&target=anongitmesonh.key
#
# and save the file in your $HOME/.ssh/ directory.
#
# * Change the access permissions of the key with:
#
chmod 600 $HOME/.ssh/anongitmesonh.key
#
# * Copy/paste the following lines and add them in your $HOME/.ssh/config file
# (create the file if it is missing):
#
Host anongit_mesonh
User anongit
IdentityFile ~/.ssh/anongitmesonh.key
Hostname 195.83.22.22
Port 22222
#
# Before cloning the repository, execute:
#
git config --global http.sslverify false
#
# This is necessary to disable the certificate checks because a self-signed
# certificate was used for the LFS server.
#
# c) Cloning the Meso-NH Source repository on the developpement branch MNH-57-branch
# ----------------------------------------------------------------------------------
#
# Finally you can clone the Meso-NH Git repository with the following command:
#
git clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MNH-57-branch MNH-V5-7-1
#
# that will create the MNH-V5-7-1 directory containing a clone (copy) of the
# Meso-NH package on the remote developpement branch MNH-57-branch
#
#
# d) Checking out a given version of MESONH
# -----------------------------------------
#
# Once the repository is cloned, it's better for you to checkout your own branch
# (by default, you are on HEAD of the MNH-57-branch development branch ).
#
# To create your local branch corresponding to the V5-7-1 version, type:
#
cd MNH-V5-7-1
git checkout -b MYB-MNH-V5-7-1 PACK-MNH-V5-7-1
#
# MYB-MNH-V5-7-1 is the name of the local branch you created
# and
# PACK-MNH-V5-7-1 is the remote/origin tag on which it is based.
#
# The advantage of this way of downloading the package is that in the future
# you could check/update quickly differences with the new version of the
# package without having to download entirely the full package.
#
# Suppose that a new version, for example "PACK-MNH-V5-7-1", is announced.
#
# To see the differences with your working copy, do:
#
git fetch
git diff HEAD PACK-MNH-V5-7-1
#
# To go to the new version, you can, for example, create a new local branch:
#
git checkout -b MYB-MNH-V5-7-1 PACK-MNH-V5-7-1
#
# At any time, you can also check for "uptodate" changes in the Git branch
# dedicated to the MNH57 version before the official release of the "bugN+1"
# bugfix version.
#
git fetch
git diff HEAD MNH-57-branch
#
# And, test this development (not yet official) version by going to this branch:
#
git checkout --track origin/MNH-57-branch
#
# e) Cloning the Meso-NH Documentation repository
#
# In a similar fashion, you can clone the Meso-NH documentation Git repository
# with the following command:
#
git clone anongit@anongit_mesonh:/gitrepos/MNH-DOC.git
#
# that will create the MNH-DOC directory containing the latest LaTeX sources of
# the Meso-NH documentation.
#
# Well, the use of git is not under the scope of this "INSTALL" document...
#
# Now, go to the next chapter
#
# => II) CONFIGURING THE MESONH PACKAGE
#
#
^L
#
# II) CONFIGURING THE MESONH PACKAGE
# ==================================
#
# For the installation process, you could now
# use the "./configure" script like this
#
cd ~/MNH-V5-7-1/src
./configure
. ../conf/profile_mesonh
#
# this will create a configuration file "profile_mesonh" with
# an extension reflecting the different "choices" made automatically
# to match the computer on which you want to install MESONH
#
# WARNING :
# =========
# On GENCI & ECMWF & METEO/CNRM & METEO/DSI computers, the './configure' is tuned to
# identify the computer on which the command is used
# so the good compiler, MPI & netCDF libraries,...
# are automatically chosen
#
# To install this version on one of these machines, go to the chapter
#
# => VI) COMPILING/INSTALLING ON GENCI & ECMWF & METEO COMPUTERS
#
# else follow the guidelines below.
#
# /!\ This is not the case in your "own" personal Linux computer ...
# So is up to you to set the ARCH variable correctly
# ARCH = Fortran compiler to use,
# VER_MPI = version of MPI to use ,
# OPTLEVEL =
# etc ...
# and all the other environnement variables.
#
# Be default, for an unknown computer, you will have:
#
# - the compiler choosen to be "gfortran" => ARCH=LXgfortran
# - the MPI library to be the MPIVIDE => VER_MPI=MPIVIDE
# ( empty MPI library coming with MESONH package = no parallel run possible )
# - the level of optimization for the compiler => OPTLEVEL=DEBUG
# ( for development purpose ,fast compilation & debugging )
#
# SO IF NEEDED:
# ============
# you could change the default FLAG compiler/MPI/optlevel
# like this, for example
export ARCH=LXifort # Use Intel "ifort" compiler on LX=linux Plateform
export VER_MPI=MPIAUTO # Use MPI with compiler wrapper 'mpif90', for computer having this wrapper installed
export OPTLEVEL=O2 # Compile in O2, 4 times faster then DEBUG, but less error checks
./configure
# and then source/load the new generate file
. ../conf/profile_mesonh.LXifort.MNH-V5-7-1.MPIAUTO.O2
#
# REM:
# ====
#
# - Options specific to compiling/architecture, like 'OPTLEVEL' are defined inside the "Rules.${ARCH}.mk" .
#
# - Options specific to library like "mpi"="VER_MPI" or "cdf"="VER_CDF" are defined inside "Makefile.MESONH.mk"
#
# - If needed, for adaptation to your requirements, look inside the files and changes options for your needs.
#
# - On PC-Linux, if needed, look at the "MesonhTEAM Wiki" to know how to compile the OpenMPI library with MESONH:
#
# http://mesonh.aero.obs-mip.fr/teamwiki/MesonhTEAMFAQ/PC_Linux
# --> Compilation of OPEN-MPI
^L
#
# III) COMPILING/INSTALLING THE MESONH PACKAGE ON YOUR LINUX COMPUTER
# ===================================================================
#
# go to the directory "src"
#
cd ~/MNH-V5-7-1/src
#
# if you have not already configured your MESONH environment
# either manually in your interactive session
# or automatically through your .profile (or .bashrc), do:
#
# REM: use the configure file corresponding to your needs, cf. previous chapter
. ../conf/profile_mesonh{use_the_good_version_here}
#
# run the compilation by
#
(g)make
#
# The compilation will take about 20 minutes on modern PC-Linux ...
#
# If you have a multi-processor machine you can speedup
# the compilation, for example on four cores, with:
(g)make -j 4
#
#
# The object files "*.o" & main executables of the "MESONH PACKAGE" :
#
# MESONH , PREP_IDEAL_CASE , PREP_REAL_CASE , etc ...
#
# are compiled in one step and created in the directory
#
# dir_obj-$(ARCH).../MASTER
#
# ( REM: the lib...a is only created and removed at the link phase;
# this allows a parallel compilation of the sources ... )
#
# The exact name of this "dir_obj..." depends on the different environnement
# variables set by the "profile_mesonh...." which you have loaded before the compilation.
#
# This allows by loading different "profile_mesonh.." files to compile in the same
# source/installation directory different versions of MESONH , with different
# compilers, different versions of MPI, different USER sources...
#
#
# To install the new compiled program in the "$SRC_MESONH/exe"
# directory, after compilation, just run
#
make installmaster
#
# The executables with their full name, including $ARCH, compiler,
# MPI and level of optimization, will be linked in the "../exe" directory
#
# REM:
# ---
# The "make installmaster" need to be done only one time by "version".
# If you only change/add source, you have to do "make"
make
#
# IV) RUN SOME "SMALL KTEST" EXAMPLES
# ===================================
#
# After compilation & installation, you could run
# some basic "KTEST" examples from the "src" directory
# by running:
make examples
# or by giving one of the "KTEST" names in
#
# the list "001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier"
make 004_Reunion
#
# EXAMPLES USING NCL
# ===================
#
# WITH 2 OPTIONS TO CONVERT FROM LFI TO NETCDF FORMAT
# 1: with extractdia
# 2: with lfi2cdf
# Only for 2 KTEST : 004_Reunion and 007_16janvier
#
make ncl1_examples # if using extractdia
#or
make ncl2_examples # if using lfi2cdf
#
# Or by giving the KTEST name followed by _ncl1 or _ncl2
#
make 004_Reunion_ncl1
#or
make 004_Reunion_ncl2
^L
#
# V) RECOMPILING YOUR OWN SOURCES ONLY
# ====================================
#
# NOW YOU COULD GENERATE AND RECOMPILE YOUR OWN SOURCES ONLY
# ( like BIBUSER in centralised MESONH version )
#
# Suppose you want to create a "MY_MODIF" version ...
#
# Step-1 : prepare your source directory
# ---------------------------------------
#
# Put your own sources in a subdirectory of "${SRC_MESONH}/src" named
#
${SRC_MESONH}/src/MY_MODIF
#
# All subdirectories in "MY_MODIF" will be scanned. So if you want,
# you could make a subdirectory for each component of the MESONH
# Package
#
cp .../mesonh.f90 MY_MODIF/MNH/.
cp .../isba.f90 MY_MODIF/SURFEX/.
#
# /!\ WARNING :
# -------------
# - In this subdirectory, put only fortran source you want to compile !!!
# Don't use it as a trash with old sources file like 'my_source.f90.old'
# or 'tar' files 'mysource.tar' .
# - All 'spirituous' file will confuse the 'make' command.
#
#
# Step-2 : configure/compiling with VER_USER=...
# ----------------------------------------------
#
# - Logout of the current session to be sure to unset all the
# environnement variables loaded with the your 'master 'profile_mesonh'
#
# - Login again and:
#
# - set the variable "VER_USER" with the name of your "USER VERSION",
# - set also the optional ARCH, VER_MPI... you want to use.
#
# and run again the "./configure" command
#export ARCH=...
#export VER_MPI=...
export VER_USER=MY_MODIF
./configure
#
# this will regenerate the "profile-mesonh" file and a copy
# of this with the extent "profile_mesonh...${VER_USER)..."
#
# as before load it & and compile with the command "make user"
. ../conf/profile_mesonh...${VER_USER}...
make user
# this will compile only your sources and the files depending on your sources
# and generate the new executables in your own directory
#
# dir_obj-$(ARCH).../${VER_USER}
#
#
# WARNING :
# ========
# Before compiling your own sources be sure that these ones
# are younger than the "*.o" files of the MASTER directory.
# If any doubt, at any time use the command
#
# touch *.f*
#
# on your sources, and only on yours do that!!!
#
#
# Step-3 : running the examples
# -----------------------------
#
#
# Now if the compilation is OK, you could test this new version with the "make examples".
#
# First, install the new binaries in the '${SRC_MESONH}/exe' with
make installuser
# The "make installuser" needs to be done only one time by "version".
#
# And run the examples. Your version should appear in the name of the used executables.
#
make examples
^L
#
# VI) COMPILING/INSTALLING ON GENCI & ECMWF & METEO & CALMIP COMPUTERS
# ====================================================================
#
# After downloading "exactly" like on "any standalone PC"
# run the "./configure" command :
#
./configure
#
# - If you do not have sufficient space in your "$HOME" directory,
# install the whole package directly on the ${WORKDIR}
# /!\ the name of the WORKDIR differ in the differents computer center
# read the doc , most of them manage disk space throw 'multi-projet' with only one unique login .
#
# WARNING :
# ========
# - Think to do a backup of your installation
# - This space is no "purged" but a "crash disk" could/will
# probably occur !!!
#
cd $WORKDIR
cd MNH-V5-7-1/src
./configure
#
# Due to limitation in time & memory on interactive connection
# in some computer you have to compile the MESONH PACKAGE in batch mode with the different "job_make_mesonh*" files
#
# at IDRIS :
# ---------
#
# - On JEAN-ZAY ( HPE ) the compilation is in interactive :
cd MNH-V5-7-1/src
. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-7-1-MPIINTEL-O2
make -j16 |& tee error$XYZ
make installmaster
# You could also use the 'compil' partition
sbatch job_make_mesonh_HPE_jeanzay
# - to run the test case examples run
sbatch -A {your_projet}@cpu job_make_examples_BullX_jeanzay
#
#
# at CINES on ADASTRA (BULLX) :
# -------------------------------------------------------
#
# - install the PACKAGE in your $HOME ( default 50Go of quota )
# - Compile in interactive mode ( see IDRIS )
#
# - to run the test case examples run
sbatch job_make_examples_BullX_occigen
#
#
# at TGCC on IRENE (BULLX) :
# -------------------------------------------------------
#
# At TGCC , you have two architectures accessible throw 2 differents frontals
# but with a commun disk space , connect to :
#
# - ssh irene-fr : for Intel SkyLake processors
# On Intel processors the MPI use is OPENMPI/4.1.4
# the configure will generate a
# profile_mesonh-LXifort-R8I4-MNH-V5-7-1-MPIAUTO-O2
#
# - ssh irene-amd : for AMD , processors
# On AMD processors the MPI use is OPENMPI/4.1.4
# the configure will generate a
# profile_mesonh-LXifort-R8I4-MNH-V5-7-1-AMD-MPIAUTO-O2
#
#
# At TGCC they use 'one login' for multi-project allocation .
# This induce 'strange' problem with the installation of eccodes
# resulting in file with the wrong default group and 'disk quota excedeed' error
#
# You could get your different project info by 'ccc_myproject'
#
# I recommand you first, supposing that the "Genci Allocation" you want to use
# as for projet group "genXXXX"
#
# 1) to add in your "~/.bash_profile"
#
module switch dfldatadir dfldatadir/genXXXX
newgrp genXXXX
# 2) "logout & login" again
# and check that you have now the good default group
#
id -ng
--> genXXXX
echo $CCCHOME
--> /ccc/.../home/genXXXX/{your_login}
# If all is OK, you can install the code interactively as usual
#
# - install the PACKAGE in your ${CCCHOME} ( default 20Go of quota )
# for example on Intel frontal
cd ${CCCHOME}
cd MNH-V5-7-1/src
./configure
. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-7-1-MPIAUTO-O2
make -j16 |& tee error$XYZ
make installmaster
# REM: The eccode lib will be installed in your ${CCCWORKDIR}
# also for the quota problem ...
#
# - to run the test case examples run
#
# On intel Skylake
ccc_msub job_make_examples_BullX_irene
# On intel AMD
ccc_msub job_make_examples_BullX_irene_AMD
#
# at ECMWF on hpc-login ( ATos/HPCF ) :
# ------------------------------------------
#
# - to install MESONH go to your $HPCPERM directory
#
# - for the compilation :
# after the ./configure in the login node
#
# connecte to an "interactive compute node" via ( 16 core & 16GO of memory
ecinteractive -c16 -m 16G -t 12:00:00
etc ...
# - to run the test case examples run
sbatch job_make_examples_Atos_HPCF
#
# - At Meteo-France DSI on belenos
#
# to install the whole package on your "$HOME" directory
# untar the file "MNH-V5-7-1.tar.gz" from its location :
cd ~
tar xvf $MESONH/MNH-V5-7-1.tar.gz
# run the "./configure" command :
cd MNH-V5-7-1/src
./configure
#
# Due to limitation in time & memory on interactive connection
# then compile the MESONH PACKAGE in batch mode with the job_make_mesonh_BullX_belenos file :
sbatch job_make_mesonh_BullX_belenos
# This job does : gmake -j 4
# then : make installmaster
# To run basic KTEST examples :
sbatch job_make_examples_BullX_belenos
# Step-2 : configure/compiling with VER_USER=...
# ----------------------------------------------
# In a new session set the variable "VER_USER" with the name of your "USER VERSION",
# and run again the "./configure" command
#
export VER_USER=MY_MODIF
./configure
# this will regenerate the "profile-mesonh" file and a copy
# of this with the extent "profile_mesonh...${VER_USER)..."
#
# in job_make_mesonh_user_BullX insert " export VER_USER=MY_MODIF "
# then submit in batch mode
sbatch job_make_mesonh_user_BullX_belenos
#
#
# at CALMIP on OLYMPE (BULLX) :
# -------------------------------------------------------
#
# - install the PACKAGE in your /tmpdir/$USER
# - Compile in interactive mode
#
# - to run the test case examples run
sbatch job_make_examples_BullX_olympe
#
# That's all for the basic INSTALLATION of the "MESONH PACKAGE"
#
#
# VII) "SCANDOLLAR" = SCRIPTING YOUR OWN PROCEDURES
# ====================================================
REM : not tested on 5-5-X version ...
# A small script 'scandollar' is in test in this version of MESONH.
# It will help you to build a complete chaining of an experiment.
# The idea is to write some "template" scripts with '$VARIABLE' in the
# Key point. Then 'scandollar' will parse this template files
# and generate the file with the variables evaluated ...
#
# First don't forget to load your "profile_mesonh..."
#
# So how it work ...
#
# Syntaxe
export CONFEXP="YOUR_EXPERIMENT"
scandollar [list_directory]
# What is done :
#
# for all (directory) in [liste directory]
# go to this (directory)
# - read the environnement variable in the user 'confdollar' file
# - read the default environnement variable for this 'machine' in ${CONF_DOLLAR}
# - parse all the '*.ihm' file and put the transformed file
# (without extension in) in a new sub-directory '${CONFEXP}'
#
# Without [list_directory] the current directory '.' is parsed .
#
# As a demonstration the '16janvier Study Case' is build with this
# template script here :
$SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar
#
# EXAMPLE :
# -------
#
# To parse only the first pgd step = directory '001_pgd1'
cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1
export CONFEXP=512
scandollar
## OUTPUT ::
># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-7-1/conf/post/confdollar_aeropc_default
>#
># read user config file :: ---> CONFIG=confdollar
>#
># processes file *.ihm and put them in ./512/ ::
># ---> run_prep_pgd_xyz.ihm => ./512/run_prep_pgd_xyz
#
# And to run this step
#
cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/512
(qsub) run_prep_pgd_xyz # qsub on brodie
# To parse all these steps
cd $SRC_MESONH/MY_RUN/KTEST/007_16janvier_scandollar/
scandollar 0*
## OUTPUT ::
>#
># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-7-1/conf/post/confdollar_aeropc_default
>#
># read user config file :: ---> CONFIG=confdollar
>#
># processes file *.ihm and put them in 001_pgd1/512/ ::
># ---> run_prep_pgd_xyz.ihm => 001_pgd1/512/run_prep_pgd_xyz
...
># read user config file :: ---> CONFIG=confdollar
>#
># processes file *.ihm and put them in 008_run2/512/ ::
># ---> run_mesonh_xyz.ihm => 008_run2/512/run_mesonh_xyz
>#
...
># read user config file :: ---> CONFIG=confdollar
>#
># processes file *.ihm and put them in 011_diaprog/512/ ::
># ---> run_diaprog.ihm => 011_diaprog/512/run_diaprog
#
# The chaining of the differents steps is control by the "RMSHELL" variable .
# To inhibit put a "#" in it , eather in your current shell
# or in the 'confdollar' file .
export RMSHELL="#"
#
# Some 'predefine' variables are set in the '${CONF_DOLLAR}' default files
# --> One file is defined by know-computer .
#
# Are included files for 'brodie' , 'vargas' , ( babel beta-test ) , 'c1a' , 'jade' & 'aeropc*' ( = default for unknown host )
export CONF_DOLLAR=${SRC_MESONH}/conf/post/confdollar_aeropc_default
#
# You could define your own default file and use it by setting
# in your shell the 'CONF_DOLLAR' variable
# ( By default './configure' will set it for you in the profile_mesonh file )
#
# ON GENCI PLATEFORM
# ------------------
#
# You will find my "own" personal installation of MESONH
# in the next directory . If you need only to run MESONH
# without recompiliong new sources for MESONH, you could :
#
# - source/load my own "profile_mesonh" without modification
#
# - and copy the scripts examples with
cp -R 007_16janvier_scandollar /.../your_directory
#
#
# You could also copy only the differents "*/512" sub-directory
# if you don't when ti use the "scandollar" script .
#
#
# You will the need to change only information corresponding
# the location to your own path directory for the input/ouput data .
#
# So
#
# - At IDRIS :
# ==========
#
# On Brodie
# ---------
#
# use this "profile_mesonh" :
. /home/rech/mnh/rmnh007/DEV/MNH-V5-7-1/conf/profile_mesonh-SX8-MNH-V5-7-1-MPIAUTO-O4
# And the examples are here ( link to my $WORKDIR in actually )
/home/rech/mnh/rmnh007/DEV/MNH-V5-7-1/MY_RUN/KTEST/007_16janvier_scandollar
#
# On vargas
# ---------
# use this "profile_mesonh" :
. /workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-7-1/conf/profile_mesonh-AIX64-MNH-V5-7-1-MPIAUTO-O2
# and examples here :
/workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-7-1/MY_RUN/KTEST/007_16janvier_scandollar
#
# - At CINES on JADE :
# =================
#
# use
. /work/escobar/DEV/MNH-V5-7-1/conf/profile_mesonh-LXifort-MNH-V5-7-1-MPIICE-O2
# and the exemples
/work/escobar/DEV/MNH-V5-7-1/MY_RUN/KTEST/007_16janvier_scandollar
#
# - At ECMWF on cxa :
# ===============
#
# use
. /c1a/ms_perm/au5/MNH-V5-7-1/conf/profile_mesonh-AIX64-MNH-V5-7-1-MPIAUTO-O2
# and the examples
/c1a/ms_perm/au5/MNH-V5-7-1/MY_RUN/KTEST/007_16janvier_scandollar
#
# Good luck!!!
#
#
# VIII) TROUBLE-SHOOTING
# ======================
#
#
# a) "Segmentation violation" -> problem of "stack size" limit
# ------------------------------------------------------------
#
# When running the examples coming with the MESONH package, if you obtain
# a "segmentation violation" error it is probably a problem with
# the "stack size" limit on your Linux computer ...
#
# Check this limit with the command
ulimit -s
# The limit is given in Kbytes and is often 8192 KB
#
# ---> this mean only 8Mbytes for array in stack memory
#
# It's a very low walue !!!
#
# We recommend you to put it to "unlimited" in your
# ".bashrc" or ".profile" like this
ulimit -s unlimited
#
# b) Compiler BUG with "ifort 10.0.xxx"
# -------------------------------------
#
# Some routines do not compile with
# the version "10.0.XXX" of "ifort" ( at least until 10.0.023 )
#
# Solution ---> Upgrade to ifort "10.1.015"
#
# The ifort "10.1.008" has also some bug in the generation
# of optimized 'vectorized SSE' code resulting in unpredictable
# "Flaoting Point" error
#
# Solution ---> compile the routine with problem with '-O1' option
# or upgrade to at least "10.1.015" version
#
#
#
# IX) OPTIONAL COMPILATION
===========================
# a) MNH_FOREFIRE for forefire runs ( external package needed )
# -------------------------------------------------------------
#
# If you want to use coupled(inline) run with FOREFIRE and MESONH
# you could compile the interfaced/coupling routine by activating
# this variable before any compilation
export MNH_FOREFIRE=1.0
# and then the configure
./configure
#
# after this compile as usually
#
make
etc ...
#
# The FOREFIRE API package himself must be compiled independently from MesoNH
# The git repository is here https://github.com/forefireAPI/firefront/tree/2014.01
# it could be cloned by
git clone -b 2014.01 https://github.com/forefireAPI/firefront.git
# it depend on netcdf and scons for is compilation
# the "libForeFIre.so" generate must by referenced in the LD_LIBRARY_PATH
# or move/linked to the 'exe' directory of MesoNH
#
# see d) for cleaning previously version if needed
# b) MNH_RTTOV for optional radiative computation
# --------------------------------------
#
# The RTTOV 13.2 package was not included into the open source version of Meso-NH
# because it needs a licence agrement.
#
# Run the 'configure' script preceded with the setting of the MNH_RTTOV variable:
#
cd $SRC_MESONH/src/
export MNH_RTTOV=1
export VER_RTTOV=13.2
#
# Compile the HDF5 library
#
make cdf
#
# Download the RTTOV package rttov132.tar.xz by following the instructions given on https://nwpsaf.eu/site/software/rttov/
#
# Install the RTTOV package rttov132.tar.xz
cd $SRC_MESONH/src/LIB
mkdir RTTOV-13.2
cd RTTOV-13.2
tar xJf rttov132.tar.xz
cd build
edit Makefile.local and set HDF5_PREFIX, FFLAGS_HDF5 and LDFLAGS_HDF5 as shown below
"
HDF5_PREFIX = $(SRC_MESONH)/src/dir_obj${XYZ}/MASTER/NETCDF-${VERSION_CDFF}
FFLAGS_HDF5 = -D_RTTOV_HDF $(FFLAG_MOD)$(HDF5_PREFIX)/include
LDFLAGS_HDF5 = -L$(HDF5_PREFIX)/lib64 -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lsz -laec -lz -ldl
"
cd ../src
../build/Makefile.PL RTTOV_HDF=1
make ARCH=ifort # Use Intel "ifort" compiler; other options: gfortran, NAG, pgf90, IBM
#
# And then for the Meso-NH compilation, do
#
cd $SRC_MESONH/src/
make
# c) MNH_ECRAD for optional compilation of new ECRAD radiative library from ECMWF
# --------------------------------------
#
# The default version of ECRAD is 1.4.0 (open-source)
#
# Configure & Compilation
export MNH_ECRAD=1
./configure
etc ...
# The version of ECRAD is set by (by default):
# export VER_ECRAD=140
#
# To use the previous version 1.0.1:
#
# The full ECRAD package 1.0.1 was not included into the open source version of Meso-NH
# because it needs a licence agrement.
#
# See here to get the licence & full sources : https://software.ecmwf.int/wiki/display/ECRAD/ECMWF+Radiation+Scheme+Home
#
# REM : some of the files modified for MNH are included in the directory ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1_mnh
#
# Install the ECRAD package ecrad-1.0.1.tar.gz in the MNH tree directory
cd ${SRC_MESONH}/src/LIB/RAD
tar xvfz ecrad-1.0.1.tar.gz
# Configure & Compilation
export MNH_ECRAD=1
export VER_ECRAD=101
./configure
etc ...
#
# REM : the 'profile_mesonh...' file & the 'dir_obj...' directory will be suffixed with an ECRAD extension
#
# Usage :
# 1) In namelist replace RAD='ECMW' by RAD='ECRA'
# 2) Add link to all 'ecrad-1.X.X/data' files in your mesonh run directory
ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.X.X/data/* .
#
# REM : you can replace CDATADIR = "." by CDATADIR = "data" of ini_radiations_ecrad.f90 to link only the data folder instead of all the files one by one
#
# See 007_16janvier/008_run2 test case for example
#
# d) MNH_MEGAN for optional compilation of MEGAN code
# --------------------------------------
#
# Configure & Compilation
export MNH_MEGAN=1
./configure
etc ...
# e) cleaning previous compiled version
# --------------------------------------
#
# If you have already compiled exactly the same version of MesoNH on this computer ( same $XYZ value )
# you have first to 'clean' this versio with
#
make cleanmaster
#
# this will delete the dirobj_${XYZ} directory and all the preprocessed sources contained on it ..
#
# I you have also a VER_USER version do
make cleanuser