Changeset 4953 for BOL/LMDZ_Setup_amaury
- Timestamp:
- May 27, 2024, 10:46:07 AM (8 months ago)
- Location:
- BOL/LMDZ_Setup_amaury
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
BOL/LMDZ_Setup_amaury/lmdz_env.sh
r4615 r4953 4 4 ############################################################## 5 5 6 hostname= jean-zay-pp27 echo lmdz_env $hostname 0:3 ${hostname:0:3}6 hostname=$(hostname) 7 echo "Setting up lmdz_env on $hostname" 8 8 9 9 case ${hostname:0:5} in 10 11 jean-) ARCH=X64_JEANZAY12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 # idrproj -d newproj redefinit "newproj" en tant que projet actif, 28 29 groupe=`idrproj | grep active | awk '{ print $1}'` 30 31 32 33 34 # * On peut aussi ne pas installer les scripts a la racine de STORE, 10 jean-) 11 ARCH="X64_JEANZAY" 12 module purge 13 compilo=19.0.4 # available 2013.0, 2017.2 14 module load intel-compilers/$compilo 15 #module load intel-mpi/$compilo 16 module load intel-mkl/$compilo 17 module load hdf5/1.10.5-mpi 18 module load netcdf/4.7.2-mpi 19 module load netcdf-fortran/4.5.2-mpi 20 module load subversion/1.9.7 21 #Pour module gcc, voir : https://trac.lmd.jussieu.fr/LMDZ/wiki/PortageJeanZay 22 #module load gcc/6.5.0 23 module load nco 24 module load cdo 25 # Imputation de la consommation sur le groupe (projet) actif par defaut, 26 # idrproj indique le groupe (projet) actif par defaut 27 # idrproj -d newproj redefinit "newproj" en tant que projet actif, 28 # alors $STORE, $WORK etc vont designer les espaces de "newproj") 29 groupe=$(idrproj | grep active | awk '{ print $1}') 30 submit="sbatch -A ${groupe}@cpu " 31 run="srun --label -n " 32 # Espaces suivants definis par defaut en fonction du groupe actif, 33 # par exemple : SCRATCHD=$SCRATCH is /gpfsstore/rech/$groupe/$login 34 # * On peut aussi ne pas installer les scripts a la racine de STORE, 35 35 # mais dans STORED=$STORE/your_folder 36 STORED=$STORE 37 SCRATCHD=$SCRATCH 38 LMDZD=$WORK 39 nb_mpi_max=2000 40 nb_omp_max=20 41 #LMDZ_Init sur le $STORE du $groupe 42 LMDZ_Init=$STORE/LMDZ_Init ;; 43 *) ARCH= 44 submit=". " 45 run="mpirun -np " 46 SCRATCHD=~/TMP/SCRATCH 47 STORED=~/TMP/ 48 LMDZD=~/TMP 49 nb_mpi_max=2 50 nb_omp_max=2 51 LMDZ_Init=~/LMDZ/LMDZ_Init 36 STORED=$STORE 37 SCRATCHD=$SCRATCH 38 LMDZD=$WORK 39 NB_MPI_MAX=2000 40 NB_OMP_MAX=20 41 #LMDZ_Init sur le $STORE du $groupe 42 LMDZ_Init=$STORE/LMDZ_Init ;; 43 *) # TODO mettre clairement dans ce paragraphe une doc de chaque param 44 ARCH="local-gfortran-parallel" 45 # submit=". " 46 # run="mpirun -np " 47 # SCRATCHD="/tmp/SCRATCH" 48 # STORED=~"/TMP/" 49 LMDZD="./LMDZD" 50 NB_MPI_MAX=999999 51 NB_OMP_MAX=999999 52 # LMDZ_Init=~"/LMDZ/LMDZ_Init" 52 53 esac 53 54 54 55 55 echo LMDZ_Init dans lmdz_env $LMDZ_Init56 #echo LMDZ_Init dans lmdz_env $LMDZ_Init -
BOL/LMDZ_Setup_amaury/setup.sh
r4940 r4953 15 15 optim="" 16 16 #optim="-debug" 17 # TODO Amaury: quelle diff avec l'option fcm="debug" ???18 17 19 18 #NOTE : "testmode=y" is for running in test mode : … … 58 57 inlandsis="n" 59 58 60 # COMPILATION options : "", "fcm", "debug"61 fcm=""62 63 59 # --->>> ALSO PAY ATTENTION TO OUTPUT files, frequency, level ------------- 64 60 # With IOIPSL : Choose your config.def among the versions available in DEF, … … 104 100 svn="" 105 101 106 install=0107 102 init=1 108 103 … … 135 130 "-f") freq=$2; shift; shift;; 136 131 "-p") phylmd=$2; shift; shift;; 137 "-install") install=1; shift;;138 132 "-name") SIM=$2; shift; shift;; 139 133 "-cosp") cosp=y; shift;; … … 169 163 # AVOID COMBINATIONS OF OPTIONS THAT DON'T WORK in user choices 170 164 if [[ $ok_guide = y && $climato = 1 ]]; then 171 echo " Running nudged simulations with climatological SSTs is not planned. Change <climato> to <0> or modify the setup (experts)"; exit 1165 echo "STOP: Running nudged simulations with climatological SSTs is not planned. Change <climato> to <0> or modify the setup (experts)"; exit 1 172 166 fi 173 167 174 168 if [[ $climato = 0 && $freq = yr ]]; then 175 echo " Running simulations with interannual SSTs is possible only month by month and a true calendar."169 echo "STOP: Running simulations with interannual SSTs is possible only month by month and a true calendar." 176 170 echo "Change <climato> to <1> or <freq> to <mo> or modify setup.sh (experts)"; exit 1 177 171 fi 172 173 174 # (Temporary) Constraints for aerosols=spla : 175 # --> resolution 128x88x79 and rad=rrtm 176 if [[ $aerosols = 1 && $resol != "128x88x79" ]]; then 177 echo 'STOP: For now, <aerosols=spla> requires <resol=128x88x79>, and uses the zoomed grid from gcm.def_zNAfrica_BiJe, for which forcing & initial files are available' 178 echo "Right now resol=<$resol>" 179 exit 1 180 fi 178 181 } 179 182 180 183 function install_model { 181 184 mkdir -p "$LMDZD" 185 186 local ins_xios ins_cosp ins_aero ins_inlandsis 187 if [[ $xios = "y" ]]; then ins_xios="-xios"; else ins_xios=""; fi 188 if [[ $cosp = "y" ]]; then ins_cosp="-cosp v1"; else ins_cosp=""; fi 189 if [[ $aerosols = "spla" ]]; then ins_aero="-spla"; else ins_aero=""; fi 190 if [[ $inlandsis = "y" ]]; then ins_inlandsis="-inlandsis"; else ins_inlandsis=""; fi 191 if [[ -n $svn ]]; then svnopt="-r $svn"; else svnopt=""; fi 182 192 183 193 version_name=LMDZ$(echo "$version" | sed -e 's/-v//g' -e 's/-unstable//' -e 's/-r/r/' -e 's/ //g') … … 185 195 MODEL="$LMDZD/$LMDZname/modipsl/modeles/LMDZ" 186 196 187 if [[ $install = 1 ]]; then # run install_lmdz to pull the required files and compile once 188 if [[ -d $MODEL ]]; then 189 echo "MODEL=$MODEL" 190 echo "STOP: Vous essayez d'installer une version déja présente (option <-install>)"; exit 1 191 else 192 echo "Installing model" 193 cd "$LMDZD" 194 cp "$local/install_lmdz.sh" . 195 chmod +x install_lmdz.sh 196 # TODO handle arch/env here (used to be -env-file) 197 echo "./install_lmdz.sh $fcm $optim -v $version $svnopt -d $resol -rad $rad -bench 0 -parallel mpi_omp $ins_cosp $ins_xios -name $LMDZname -veget $veget -netcdf 0 -arch $ARCH" >> install_lmdz_options.$$.sh 198 chmod +x install_lmdz_options.$$.sh 199 echo "Running install_lmdz_options.$$.sh" 200 ./install_lmdz_options.$$.sh 201 mv install_lmdz.sh install_lmdz.$$.sh 202 cd - 203 fi 204 else 205 if [[ ! -d $MODEL ]]; then 206 echo "Le model $MODEL n'est pas installé. Vous pouvez relancez avec <-install>."; exit 1 207 fi 208 fi 197 if [[ -d $MODEL ]]; then echo "Found existing install at MODEL=$MODEL"; fi 198 echo "Installing model" 199 cd "$LMDZD" 200 cp "$local/install_lmdz.sh" . 201 chmod +x install_lmdz.sh 202 # TODO handle arch/env here (used to be -env-file) 203 echo "./install_lmdz.sh -noclean $optim -v $version $svnopt -d $resol -rad $rad -bench 0 -parallel mpi_omp $ins_cosp $ins_xios $ins_aero $ins_inlandsis -name $LMDZname -veget $veget -netcdf 0 -arch $ARCH" >> install_lmdz_options.$$.sh 204 chmod +x install_lmdz_options.$$.sh 205 echo "Running install_lmdz_options.$$.sh" 206 ./install_lmdz_options.$$.sh 207 mv install_lmdz.sh install_lmdz.$$.sh 208 cd - 209 209 } 210 210 … … 227 227 228 228 229 # TODO check w/ Adriana the exact reasons why we recompile the model (or even compile it using install_lmdz in the first place)230 231 229 # COMPILATION OPTIONS depending on the user choices and LMDZ revision number $mysvn 232 230 #------------------------------------------------------- 233 arch="-arch $ARCH" 234 if [ "$rad" = "ecrad" -a ! -d ecrad_data ]; then 231 if [[ $rad = "ecrad" && ! -d ecrad_data ]]; then 235 232 cd $local; wget https://lmdz.lmd.jussieu.fr/pub/3DInputData/ecrad/ecrad_data.tar; tar xvf ecrad_data.tar; cd - 236 233 fi 237 234 238 235 if [ "$rad" = "ecrad" -a "$aerosols" != "n" -a "$mysvn" -lt 4489 ] ; then echo "Les aerosols tropospheriques ne sont pas pris en charge par ecrad avant LMDZ rev 4489, ici rev est $mysvn"; exit 1; fi 239 240 # Source the surface_env file created by install_lmdz.sh, to get the "veget"-related variables241 #--------------------------------------------------------------------------------------242 # surface_env is produced by install_lmdz in $MODEL=$LMDZD/$LMDZname/modipsl/modeles243 # Every model installation will have an unique orchidee_rev,244 # to be changed by hand if a new Orchidee rev is installed by hand in modipsl/models245 . $LMDZD/$LMDZname/modipsl/modeles/surface_env246 echo LMDZname $LMDZD/$LMDZname/modipsl/modeles/surface_env247 echo veget=$veget248 echo opt_veget=$opt_veget249 echo orchidee_rev=$orchidee_rev250 echo suforch=$suforch251 252 253 #######################################################################254 # Compilation du modele255 #######################################################################256 # The gcm name defined below is used to check if the executable exists257 # It is also used when compiling without fcm : the output of makelmdz is gcm.e, and is renamed as $gcm258 #259 # NOTE : Some compilation options do not appear in the gcm name (xios, cosp, ...).260 # (Also : LMDZ rev before 4185 included, did not contain radiative-code suffix; starting r4186, it includes oldrad/rrtm/ecrad )261 # So if you change those options and you want to recompile,262 # setup.sh will not detect the change when testing if [ ! -f $gcm ],263 # You'll need to modify and run the compile.sh script created in the present folder, and run it (./compile.sh gcm)264 265 # compile_opt_iso is used for gcm only; ce0l cannot be compiled with isotopes yet (phylmd instead of phylmdiso is required)266 if [ $isotopes = y ]; then267 compile_opt_iso="$optim -p $phylmd $opt_cosp $opt_xios $opt_rad $arch -d $resol $opt_veget $opt_aer $opt_inlandsis $opt_isotopes -mem -parallel mpi_omp"268 if [ $mysvn -le 4185 ]; then269 suffix_iso=_${resol}_phy${phylmd}_para_mem${suforch}${sufaer}${sufiso}270 else271 suffix_iso=_${resol}_phy${phylmd}_${rad}_para_mem${suforch}${sufaer}${sufiso}272 fi273 phylmd="lmd"274 fi275 276 # compile_opt is used for gcm if isotopes=n, and for ce0l always277 compile_opt="$optim -p $phylmd $opt_cosp $opt_xios $opt_rad $arch -d $resol $opt_veget $opt_aer $opt_inlandsis -mem -parallel mpi_omp"278 279 280 # use an intermediate variable to use either suffix or suffix_iso281 strsuffix=suffix${sufiso}282 gcm=$MODEL/bin/gcm${!strsuffix}.e283 284 echo $mysvn285 echo $gcm286 287 if [ ! -f $gcm ]; then288 echo Le model $gcm n existe pas289 echo il va se compiler automatiquement sur $MODEL290 sleep 10291 292 compile="./makelmdz_fcm $compile_opt -j 2 \$1"293 compile_iso="./makelmdz_fcm $compile_opt_iso -j 2 \$1"294 295 #NB on est dans $local, qui est $STORE/$MAINDIR296 echo $compile${sufiso}297 298 #create compile.sh;299 # if isotopes = y , it will still be used for compiling ce0l300 cat << ...eod >| compile.sh301 cd $MODEL302 prog=\$1303 ${compile}304 ...eod305 pwd306 ls -l compile.sh307 chmod +x compile.sh308 309 #create compile_iso.sh for compiling gcm_ _iso.e310 if [ $isotopes = y ]; then311 cat << ...eod >| compile_iso.sh312 cd $MODEL313 prog=\$1314 ${compile_iso}315 ...eod316 pwd317 ls -l compile_iso.sh318 chmod +x compile_iso.sh319 fi320 321 echo Compilation de LMDZ, suivre avancement dans lmdz.log322 ./compile${sufiso}.sh gcm > lmdz.log 2>&1323 324 if [ ! -f $gcm ]; then echo la compilation a echoue; exit; fi325 cd $local326 fi327 328 # TODO ^ qu'est-ce qui nous empêche de mettre tout ça directement dans install_lmdz ????329 # TODO Ce qu'il faudrait faire:330 # TODO 1) bien expliquer ce que fait l'option install (lancer install_lmdz une unique fois pour lancer tout sauf la compil LMDZ => maintenant ça ne fonctionne plus car on installe tjrs lmdz, mais en fait c'est pas grave car derrière on vérifie si le gcm.e existe ou non)331 # TODO 2) importer les fonctions de install_lmdz nécessaires pour "recompiler" lmdz "à la carte" (ou bien juste modifier compile.sh ??)332 236 333 237 … … 339 243 # omp=2 for veget=CMIP6 beacause of a bug in ORCHIDEE/src_xml/xios_orchidee.f90 340 244 ###################################################################### 341 jm=`echo $resol | cut -dx -f2` 342 (( mpi = ( $jm + 1 ) / 2 )) 245 246 cd "$local" 247 248 jm=$(echo "$resol" | cut -dx -f2) 249 (( mpi = ( jm + 1 ) / 2 )) 343 250 omp=8 344 if [ $aerosols = spla ]; then omp=1; fi 345 if [ $veget = CMIP6 -a $xios = y ]; then omp=2; fi 346 if [ $mpi -gt $nb_mpi_max ]; then mpi=$nb_mpi_max; fi 347 if [ $omp -gt $nb_omp_max ]; then omp=$nb_omp_max; fi 348 349 ###################################################################### 251 if [[ $aerosols = "spla" ]]; then omp=1; fi 252 if [[ $veget = "CMIP6" && $xios = "y" ]]; then omp=2; fi 253 if [[ $mpi -gt $NB_MPI_MAX ]]; then mpi=$NB_MPI_MAX; fi 254 if [[ $omp -gt $NB_OMP_MAX ]]; then omp=$NB_OMP_MAX; fi 255 350 256 # Utilisation des .def_iso pour LMDZ-ISOtopes 351 ###################################################################### 352 if [ $isotopes = y ]; then 353 for file_iso in $( ls DEF | grep _iso) 354 do 355 cp DEF/$file_iso DEF/${file_iso%%_iso} 257 if [[ $phylmd = "lmdiso" ]]; then 258 for file_iso in $(ls DEF | grep _iso); do 259 cp DEF/"$file_iso" DEF/"${file_iso%%_iso}" 356 260 done 357 261 fi … … 360 264 # Choix de la grille verticale 361 265 ###################################################################### 362 if [ ! -d DEF ]; then echo Recuperer un repertoire DEF; exit; fi 363 lm=`echo $resol | cut -dx -f3` 364 if [ ! -f DEF/L$lm.def ]; then echo resolution verticale non prevue 365 echo creer un fichier DEF/L$lm.def 366 exit 266 lm=$(echo "$resol" | cut -dx -f3) 267 if [ ! -f "DEF/L$lm.def" ]; then 268 echo "STOP: Résolution verticale non prévue - créer un fichier DEF/L$lm.def"; exit 1 367 269 else 368 sed -i -e 's/INCLUDEDEF=L.*.def/INCLUDEDEF=L'$lm'.def/'DEF/run.def270 sed -i'' -e "s/INCLUDEDEF=L.*.def/INCLUDEDEF=L$lm.def/" DEF/run.def 369 271 fi 370 272 … … 380 282 # NB: Si on change de traceur.def (entre spla et nospla), il faut refaire l'etape "initialisation" (ce0l)? 381 283 # Normalement les traceurs absents de start* files sont initialises=0 dans le code; verifier pour spla ! 382 if [ $aerosols = spla ]; then284 if [[ $aerosols = "spla" ]]; then 383 285 # ancien traceur pour l instant 384 cp DEF/traceur.def_spla DEF/traceur.def 385 elif [ $isotopes = n ]; then 386 # nouveau traceur 387 # déjà copié si 'y' 286 cp DEF/traceur.def_spla DEF/traceur.def 287 elif [[ $phylmd = "lmdiso" ]]; then 288 # nouveau traceur , déjà copié si 'y' 388 289 cp DEF/tracer.def_nospla DEF/tracer.def 389 290 fi … … 391 292 # TEMPORAIREMENT pour spla on force l'utilisation de gcm.def_zNAfrica_BiJe (avec resolution 128x88x79) 392 293 #---------------------------------------------------------------------- 393 if [ $aerosols = spla]; then cp DEF/gcm.def_zNAfrica_BiJe DEF/gcm.def; fi294 if [[ $aerosols = spla ]]; then cp DEF/gcm.def_zNAfrica_BiJe DEF/gcm.def; fi 394 295 395 296 # Inscription du choix ok_guide dans DEF/guide.def
Note: See TracChangeset
for help on using the changeset viewer.