From c56f8dbd9e9fc05be9b3958433988817a7cafce1 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 8 Dec 2016 16:25:11 +0100 Subject: [PATCH] Philippe 08/12/2016: updated A-INSTALL to MNH 5.3.0 and git + removed MNH_NCWRIT + corrected typos (cherry picked from commit 1a7714fd75001e03ec0b2c281f1a2d7fdfe2928b) --- A-INSTALL | 373 ++++++++++++++++++++++++------------------------------ 1 file changed, 162 insertions(+), 211 deletions(-) diff --git a/A-INSTALL b/A-INSTALL index 38dc2eca7..115e93430 100644 --- a/A-INSTALL +++ b/A-INSTALL @@ -1,14 +1,14 @@ # # Version of PACKAGE MESONH "Open distribution" # PACK-MNH-V5-3-0 -# DATE : 23/06/2016 +# DATE : 12/12/2016 # VERSION : MESONH MASDEV5_3 + BUG-0 # # MAP # # 0) TWO WAYS OF DOWNLOADING MESONH # I-A) DOWNLOAD VIA THE WEB MESONH HOME PAGE -# I-B) DOWNLOAD VIA CVS ANONYMOUS +# 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 @@ -21,19 +21,19 @@ # b) Compiler bug with "ifort 10.0.xxx" # # IX) OPTIONAL COMPILATION -# a) MNH_NCWRIT for netcdf graphic output file -# b) MNH_FOREFIRE for forefire runs ( external package needed ) -# c) MNH_RTTOV for optional radiative computation -# d) cleaning previous compiled version +# a) MNH_FOREFIRE for forefire runs ( external package needed ) +# b) MNH_RTTOV for optional radiative computation +# c) cleaning previous compiled version # # +^L # 0) TWO WAYS OF DOWNLOADING MESONH # ================================= # # MESONH sources and executables # http://mesonh.aero.obs-mip.fr # are developed and maintained with the -# CVS tools ( http://www.cvshome.org/ ) +# Git tools ( https://git-scm.com/ ) # # There are two ways to download the package of # MESONH containing : @@ -47,22 +47,24 @@ # 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 the CVS tools and an access via anonymous -# connection with "ssh" to the CVS REPOSITORY of the MESONH package +# 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 it's not an obligation, -# for all users to use de CVS solution, because: +# 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 the CVS tool permits us to know exactly +# 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 . +# * 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. # # -# So here are explained the two ways <=> mutually exclusif +# Following, are presented the two mutually exclusive ways to get the MesoNH +# package: # # ^L @@ -73,191 +75,169 @@ # # http://mesonh.aero.obs-mip.fr/mesonh # ---> Download -# ---> CVS MESONH # # or directly # -# http://mesonh.aero.obs-mip.fr/cgi-bin/mesonh_interne/viewcvs.cgi/MNH-VX-Y-Z -# -# in the field "Show files using tag:" -# -# ---> select "PACK-MNH-V5-3-0" -# -# and then download the file "PACK-MNH-VX-Y-Z.tar.gz" by the link +# http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-3-0.tar.gz # -# --> Download tarball -# -# Then untar the file "PACK-MNH-VX-Y-Z.tar.gz" where you want to, -# in your home directory for example: +# Then untar the file "PACK-MNH-V5-3-0.tar.gz" where you want to. +# For example, in your home directory: # cd ~ -tar xvfz PACK-MNH-VX-Y-Z.tar.gz - -# -# As the directory did not reflect the last version name move it -# to the right one -# - -mv MNH-VX-Y-Z MNH-V5-3-0 +tar xvfz PACK-MNH-V5-3-0.tar.gz # -# Process now to the chapter to configure the MesoNH +# Process now to the chapter to configure the MesoNH package. # # => II) CONFIGURING THE MESONH PACKAGE # ^L -# I-B) DOWNLOAD VIA CVS ANONYMOUS +# I-B) DOWNLOAD VIA GIT ANONYMOUS # =============================== # -# a) download the ssh key file "anoncvs.key" for anonymous connection -# ------------------------------------------------------------------- +# a) Prerequisites +# ---------------- # -# With your preferred web browser go to the MESONH WEB SITE -# -# http://mesonh.aero.obs-mip.fr/mesonh -# ---> Download -# ---> CVS PACKAGE MESONH +# 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: # -# or directly -# -# http://mesonh.aero.obs-mip.fr/cgi-bin/mesonh_interne/viewcvs.cgi/MNH-VX-Y-Z -# -# in the field "Show files using tag:" -# -# ---> select "PACK-MNH-V5-3-0" -# -# download the file "anoncvs.key" +# * 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) # -# by : -# 1) a "left-click" in the "Rev." column -# + 2) a "right-click" on "download" -# ---> save link to disk -# (Warning :: don't copy the file content with mouse copy/past -# because it contains binary-encoded information !!!) +# b) Before cloning +# ----------------- # -# then copy this file in your "${HOME}/.ssh/" directory +# * Download the private key to access the anonymous Meso-NH Git server (read- +# only access) by following the next link: # -# AND VERY IMPORTANT !!! -# Modify the "read/write" permission with: -# -chmod 600 anoncvs.key +http://mesonh.aero.obs-mip.fr/mesonh53/GitSources?action=AttachFile&do=get&target=anongitmesonh.key # -# b) download the config file "config.anoncvs_www" -# ------------------------------------------------ +# and save the file in your $HOME/.ssh/ directory. # -# For METEO-FRANCE & IDRIS & CINES & Laboratoire d'Aerologie computers ( IP address filter ) -# ========================================================================================== +# * Change the access permissions of the key with: # -# download the file + +chmod 600 $HOME/.ssh/anongitmesonh.key + # -# --> "config.anoncvs_www" +# * Copy/paste the following lines and add them in your $HOME/.ssh/config file +# (create the file if it is missing): # -# Then concatened the file content with your "${HOME}/.ssh/config" file -# ( this will define the computer alias "mesonh_anoncvs_www" for future ssh -# anonymous connections ) -cd ${HOME}/.ssh -cat config.anoncvs_www >> config +Host anongit_mesonh + User anongit + IdentityFile ~/.ssh/anongitmesonh.key + Hostname 195.83.22.22 + Port 22222 # -# FOR OTHER COMPUTERS USE special "config.anoncvs_www" -# =================================================== -# -# if the computer, from which you download the MESONH sources, -# is external to METEO-FRANCE & IDRIS & CINES & Laboratoire d'Aerologie Laboratoire download this file +# Before cloning the repository, execute: # -# --> "config.anoncvs_www_ext" -cd ${HOME}/.ssh -cat config.anoncvs_www_ext >> config +git config --global http.sslverify false # -# OR for ECMWF computer ( cca ) download this config file -# ( to bypass the gateway filter ) +# 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-53-branch +# ---------------------------------------------------------------------------------- # -# --> "config.anoncvs_www_ecmwf" +# Finally you can clone the Meso-NH Git repository with the following command: # -cd ${HOME}/.ssh -cat config.anoncvs_www_ecmwf >> config +git lfs clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MNH-53-branch MNH-V5-3-0 # -# c) Setting CVS variables -# ------------------------ +# that will create the MNH-V5-3-0 directory containing a clone (copy) of the +# Meso-NH package on the remote developpement branch MNH-53-branch # -# set the CVS_RSH et CVSROOT like this -# ( in your ".profile" or ".bashrc" file ) # - -export CVS_RSH=ssh -export CVSROOT=:ext:mesonh_anoncvs_www:/home/cvsroot - +# d) Checking out a given version of MESONH +# ----------------------------------------- # -# c) Checking out the "MESONH PACKAGE" -# ------------------------------------- +# Once the repository is cloned, it's better for you to checkout your own branch +# (by default, you are on HEAD of the MNH-53-branch development branch ). +# +# To create your local branch corresponding to the V5-3-0 version, type: # -# Now, from your "$HOME" directory for example -# extract the version "PACK-MNH-V5-3-0" -# of the directory "MNH-VX-Y-Z" from the -# cvs repository : -cd ~ -cvs co -r PACK-MNH-V5-3-0 -d MNH-V5-3-0 MNH-VX-Y-Z +cd MNH-V5-3-0 +git checkout -b MYB-MNH-V5-3-0 PACK-MNH-V5-3-0 # -# WARNING : don't use a sub-directory with dot "." in the name -# ---> you could have some trouble when compiling mesonh +# MYB-MNH-V5-3-0 is the name of the local branch you created +# and +# PACK-MNH-V5-3-0 is the remote/origin tag on which it is based. # -# this will create in your "$HOME" a directory "MNH-V5-3-0" -# which contains of the last revision named "PACK-MNH-V5-3-0" -# of the MESONH PACKAGE +# 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. # -# 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-3-1", is announced. # -# Suppose that a new version for example -# "PACK-MNH-V5-2-2" is announced ... -# -# To see the differences with your working copy -# do +# To see the differences with your working copy, do: # -cd ~/MNH-V5-3-0 -cvs diff -r PACK-MNH-V5-3-1 +git fetch +git diff HEAD PACK-MNH-V5-3-1 # -# And to upgrade your working copy +# To go to the new version, you can, for example, create a new local branch: # -cd ~/MNH-V5-3-0 -cvs update -r PACK-MNH-V5-3-1 -d -P +git checkout -b MYB-MNH-V5-3-1 PACK-MNH-V5-3-1 # -# At any time you could also check for "uptodate" -# changes in the CVS "branch" dedicated to the MNH52 version -# before the official release of the "bugN+1" bugfix +# At any time, you can also check for "uptodate" changes in the Git branch +# dedicated to the MNH53 version before the official release of the "bugN+1" +# bugfix version. # -cvs diff -r MNH53-BUG-branch +git fetch +git diff HEAD MNH-53-branch # -# An at "your own risk" update to this -# ( not yet official ) version by +# And, test this development (not yet official) version by going to this branch: +# + +git checkout --track origin/MNH-53-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: # -cd ~/MNH-V5-3-0 -cvs update -r MNH53-BUG-branch -d -P +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 CVS is not under the scope of this "INSTALL" document ... +# Well, the use of git is not under the scope of this "INSTALL" document... # -# Now go to then next chapter +# Now, go to the next chapter # # => II) CONFIGURING THE MESONH PACKAGE # @@ -284,33 +264,33 @@ cd ~/MNH-V5-3-0/src # ========= # On GENCI & ECMWF & METEO/CNRM computers, the './configure' is tuned to # identify the computer on which the command is used -# so the good compiler, mpi & cdf library , etc ... +# so the good compiler, MPI & netCDF libraries,... # are automatically chosen # # /!\ 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 +# VER_MPI = version of MPI to use , # OPTLEVEL = # etc ... -# and all the other environnement variables . +# and all the other environnement variables. # -# Be default, for an unknow computer, you will have : +# 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 compiler optimization => OPTLEVEL=DEBUG +# - 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 +# 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 time faster then DEBUG, but least error check +export OPTLEVEL=O2 # Compile in O2, 4 times faster then DEBUG, but less error checks ./configure @@ -322,13 +302,13 @@ export OPTLEVEL=O2 # Compile in O2 , 4 time faster then DEBUG, but least # REM: # ==== # -# - Options specific to compile/architecture, like 'OPTLEVEL' are defined inside the "Rules.${ARCH}.mk" . +# - 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 need, for adaptation to your requirement, look inside the files and changes options for your needs . +# - If needed, for adaptation to your requirements, look inside the files and changes options for your needs. # -# - On PC-Linux, if needed , look in the "MesonhTEAM Wiki" to know how to compile the library MPI = OPEN-MPI , with MESONH +# - 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 @@ -362,9 +342,9 @@ cd ~/MNH-V5-3-0/src # 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 two processors with: +# the compilation, for example on four cores, with: -(g)make -j 2 +(g)make -j 4 # # @@ -382,9 +362,9 @@ cd ~/MNH-V5-3-0/src # 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 allow by loading different "profile_mesonh.." files to compile in the same -# source/installation directory different version of MESONH , with different -# compiler, different version of MPI , different USER sources , etc ... +# 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" @@ -394,13 +374,13 @@ cd ~/MNH-V5-3-0/src make installmaster # -# The executable with their full name, including, $ARCH , compiler -# and MPI , level of optimization, will be linked in the "../exe" directory +# 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 change/add source only you have to do "make" +# The "make installmaster" need to be done only one time by "version". +# If you only change/add source, you have to do "make" make @@ -408,7 +388,7 @@ make # IV) RUN SOME "SMALL KTEST" EXAMPLES # =================================== # -# After compilation & installation you could run +# After compilation & installation, you could run # some basic "KTEST" examples from the "src" directory # by running: @@ -459,13 +439,13 @@ make 004_Reunion_ncl2 # Step-1 : prepare your source directory # --------------------------------------- # -# Put your own source in a subdirectory of "${SRC_MESONH}/src" named +# 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 +# All subdirectories in "MY_MODIF" will be scanned. So if you want, # you could make a subdirectory for each component of the MESONH # Package # @@ -476,24 +456,24 @@ 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' +# - 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' commande . +# - 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 load with the your 'master 'profile_mesonh' +# - Logout of the current session to be sure to unset all the +# environnement variables loaded with the your 'master 'profile_mesonh' # -# - Login again and : +# - Login again and: # # - set the variable "VER_USER" with the name of your "USER VERSION", -# - set also optionnal the , ARCH, VER_MPI ,etc... , you want to use +# - set also the optional ARCH, VER_MPI... you want to use. # -# and run again the "./configure" commande +# and run again the "./configure" command #export ARCH=... #export VER_MPI=... @@ -510,17 +490,17 @@ export VER_USER=MY_MODIF make user -# this will compilation Only your sources, and the files depending of your sources -# and generate the new executables in your own directory +# 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 +# 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* # @@ -531,17 +511,16 @@ make user # ----------------------------- # # -# Now if the compilatio is OK, you could to test this new version with the "make 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 +# First, install the new binaries in the '${SRC_MESONH}/exe' with make installuser -# The "make installuser" need to be done only one time by "version" . +# 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 executables -# used . +# And run the examples. Your version should appear in the name of the used executables. # make examples @@ -558,18 +537,17 @@ make examples ./configure # -# - If you do not have sufficient space in your "$HOME" directory +# - If you do not have sufficient space in your "$HOME" directory, # install the whole package directly on the ${WORKDIR} # # WARNING : # ======== # - Think to do a backup of your installation -# - This space is not more "purged" but a "crash disk" could/will +# - This space is no more "purged" but a "crash disk" could/will # probably occur !!! # cd $WORKDIR -cvs co -r PACK-MNH-V5-3-0 -d MNH-V5-3-0 MNH-VX-Y-Z cd MNH-V5-3-0/src ./configure @@ -684,7 +662,7 @@ llsubmit job_make_examples_CRAY_cca # VII) "SCANDOLLAR" = SCRIPTING YOUR OWN PROCEDURES # ==================================================== -REM : not tested on 5-1-X version ... +REM : not tested on 5-3-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. @@ -920,34 +898,7 @@ ulimit -s unlimited # # IX) OPTIONAL COMPILATION =========================== -# -# a) MNH_NCWRIT for netcdf graphic output file -# -------------------------------------------- -# -# If you want to use the option of writing directly netcdf file for graphical -# postprocessing ( no restart ) you could compile and use the package -# developped by Soline Bielli as exmplained in this mail -# http://mesonh.aero.obs-mip.fr/cgi-bin/mesonh_interne/mail2html.cgi?file=2012_12_19_18:35:16 -# and on this wiki -# http://mesonh.aero.obs-mip.fr/mesonh410/UseNCL -# -# So before any compilation you have to set the MNH_NCWRIT variable -export MNH_NCWRIT=MNH_NCWRIT -# -# and then the configure - -./configure - -# -# after this compile as usually -# - -make -etc ... - -# see d) for cleaning previously version if needed - -# b) MNH_FOREFIRE for forefire runs ( external package needed ) +# a) MNH_FOREFIRE for forefire runs ( external package needed ) # ------------------------------------------------------------- # # If you want to use coupled(inline) run with FOREFIRE and MESONH @@ -980,9 +931,9 @@ git clone -b 2014.01 https://github.com/forefireAPI/firefront.git # -# see d) for cleaning previously version if needed +# see c) for cleaning previously version if needed -# c) MNH_RTTOV for optional radiative computation +# b) MNH_RTTOV for optional radiative computation # -------------------------------------- # # The RTTOV package was not included into the open source version of Meso-NH @@ -1045,7 +996,7 @@ export VER_RTTOV=8.7 etc ... -# d) cleaning previous compiled version +# c) cleaning previous compiled version # -------------------------------------- # # If you have already compiled exactly the same version of MesoNH on this computer ( same $XYZ value ) -- GitLab