source: CONFIG/UNIFORM/v6/IPSLCM6.2/compile_ipslcm6.sh @ 6212

Last change on this file since 6212 was 6212, checked in by acosce, 21 months ago

Add a "garde-fou" to stop compilation with rad=ecrad if lmdz version is too old

  • Property svn:executable set to *
File size: 19.4 KB
Line 
1#!/bin/bash
2#set -vx
3# Default options
4#
5#
6#
7date
8#### 1  Set up the compiling options
9#### Define some directories
10submitdir=$( pwd )
11modipsl=$submitdir/../..
12arch_path=$submitdir/ARCH
13mysrc_path=$submitdir/SOURCES
14
15#### Set default options
16# Atmospheric resolution, for LMDZ/ORCHIDEE in regular mode
17resol_atm=144x142x79
18# Oceanic resolution, for NEMO (ORCA2/ORCA1/ORCA025)
19resol_oce=ORCA1
20# Version of ice model lim2/lim3
21icemodel=lim3
22# Coupled with ocean biogeochemistry (y/n)
23oceanbio=y
24# Version ESM CO2: CO2 interactif ocean/atmosphere (y/n)
25esmco2=n
26# Version ESM AER : Aer interactif chemistry / atmosphere (y/n)
27esmaer=n
28# Also compile ce0l subprogram to LMDZ (y/n)
29ce0l=n
30# choose radiative code compilation option
31rad=rrtm
32opt_rad=""
33
34# Optimization mode
35# optmode=prod/dev/debug
36optmode=prod
37# fcm_arch
38fcm_arch=default
39# Default values to be overritten
40parallel=mpi_omp
41export fcm_arch parallel xios
42full_flag=""
43full_nemo=n
44full_inca=""
45full_xios=""
46full_lmdz=""
47full_orch=""
48
49
50
51# Output text file for compilation of each component
52datestr=`LC_ALL=C date +"%Y%m%dT%H%M"`
53outfile=$submitdir/out_compile_ipslcm6.$datestr
54echo > $outfile
55echo; echo "Text output from compilation will be stored in file out_compile_ipslcm6.$datestr"; echo 
56
57#### Read arguments
58# Loop over all arguments to modify default set up
59while (($# > 0)) ; do
60    case $1 in
61        "-h") cat <<end_help
62########################################################################
63# Usage of the script compile_ipslcm6.sh
64#
65########################################################################
66
67./compile_ipslcm6.sh [Options]
68
69
70Options: [LR / VLR / MR1 / MR025] Model resolution, choose only one. Default: LR.
71         [ESMCO2] Compile IPSLCM6 for CO2 interactif ocean/atmosphere.
72         [ESMAER] Compile IPSLCM6 for AER interactif on atmosphere
73         [ESMCO2AER] Compile IPSLCM6 for both interactive CO2 and AER.
74         [-full] Full recompilation of all components. This option can be added to all other options.
75         [-cleannemo] Full recompilation of NEMO component  only.
76         [-debug / -dev / -prod] Level of optimization. One of these can be added to all other compile options. Default: -prod.
77
78
79Example 1: Default compilation of IPSLCM6 for resoltion LR
80          (Resolution atmos: 144x142x79, ocean: ORCA1)
81./compile_ipslcm6.sh
82
83Example 2: Compilation of IPSLCM6 for resolution MR025
84           (atmos: 256x256x79, ocean: ORCA025, NOPISCES)
85./compile_ipslcm6.sh MR025
86
87Example 3: Compilation of IPSLCM6 for ESM CO2
88./compile_ipslcm6.sh ESMCO2 -cleannemo
89
90Example 4: Default resoltuion (LR) compiled in debug mode
91./compile_ipslcm6.sh -debug
92
93Example 5: Default compilation with full recompilation of all components. No clean is needed.
94./compile_ipslcm6.sh -full
95
96Example 6: Full recompilation of resolution MR05 in debug mode
97./compile_ipslcm6.sh MR025 -debug -full
98
99Example 7: choose radiative schema for LMDZ (oldrad/rrtm/ecrad). Default is rrtm
100./compile_ipslcm6.sh MR025 -rad ecrad
101
102
103end_help
104exit;;
105        "VLR")         resol_atm=96x95x39; resol_oce=ORCA2 ; icemodel=lim2; oceanbio=y; shift ;;
106        "LR")          resol_atm=144x142x79; resol_oce=ORCA1 ; icemodel=lim3; oceanbio=y; shift ;;
107        "MR1")         resol_atm=256x256x79; resol_oce=ORCA1 ; icemodel=lim3; oceanbio=y; shift ;;
108        "MR025")       resol_atm=256x256x79; resol_oce=ORCA025 ; icemodel=lim3; oceanbio=n;   shift ;;
109        "ESMCO2")      esmco2=y;  shift ;;
110        "ESMAER")      esmaer=y; shift ;;
111        "ESMCO2AER")   esmco2=y; esmaer=y; shift ;;
112        "CE0L")        ce0l=y ; shift ;;
113        "-rad")        rad=$2; shift ; shift;;
114        "-parallel")   parallel=$2 ; shift ; shift ;;
115        "-arch")       fcm_arch="$2" ; shift ; shift ;;
116        "-debug")      optmode=debug ; shift ;;
117        "-dev")        optmode=dev ; shift ;;
118        "-prod")       optmode=prod ; shift ;;
119        "-full")       full_flag="-full"; full_nemo=y ; full_xios="--full" ; full_lmdz="-full" ; full_orch="-full" ; shift ;;
120        "-full_xios")  full_xios="--full" ; shift ;;  # Note only full_xios is using double dash: --full
121        "-full_lmdz")  full_lmdz="-full"  ; shift ;;
122        "-full_orch")  full_orch="-full"  ; shift ;;
123        "-full_nemo")  full_nemo=y ; shift ;;
124        "-full_inca")  full_inca="-clean"; shift ;;
125        "-cleannemo")  full_nemo=y ; shift ;;
126        *)             echo "unknown option "$1" , exiting..." ; exit
127    esac
128done
129
130echo "Following options are set in current compiling:" >> $outfile
131echo "   resol_atm=${resol_atm}, resol_oce=${resol_oce}, icemodel=${icemodel}, oceanbio=${oceanbio}" >> $outfile 
132echo "   esmco2=${esmco2}, esmaer=${esmaer}" >> $outfile 
133echo "   ce0l=${ce0l}" >> $outfile 
134echo "   optmode = $optmode, parallel = $parallel, fcm_arch = $fcm_arch " >> $outfile 
135echo "   full_flag=$full_flag, full_xios=$full_xios, full_lmdz=$full_lmdz, full_orch=$full_orch, full_nemo=$full_nemo," >> $outfile 
136echo >> $outfile
137
138### Read host dependent default values
139### These variables will not be changed if they were set as argument
140###./host.sh $host
141# Later : Following lines should be set in host.sh file
142# begin host.sh
143if [ $fcm_arch == default ] ; then
144    # Find out current host and source specific paths and commands for the host
145    case $( hostname -s ) in
146        jean-zay*)
147            fcm_arch=X64_JEANZAY;;
148        irene170|irene171|irene190|irene191|irene192|irene193)
149            fcm_arch=X64_IRENE;;
150        irene172|irene173|irene194|irene195)
151            fcm_arch=X64_IRENE-AMD;;
152        asterix*|obelix*)
153            fcm_arch=ifort_LSCE
154            if [ "${parallel}" == "mpi_omp" ] ; then
155                echo "Warning!! Currently at Obelix hybrid mode is not possible."
156                echo "          Option -parallel mpi_omp is now changed to -parallel mpi"
157                echo ""
158                parallel=mpi
159            else
160                echo "You used -parallel" $parallel
161            fi ;;
162        ciclad*|climserv*|loholt*|camelot*)
163            fcm_arch=ifort_CICLAD;;
164        *)
165            echo Current host is not known. You must use option -arch to specify which architecuture files to use.
166            echo Exit now.
167            exit
168    esac
169fi
170
171# Set a link to arch.env if arch-${fcm_arch}.env file exist for current fcm_arch.
172# The link arch.env is also set in config.card and will be used by libIGCM to ensure the same running environnement.
173if [ -f ARCH/arch-${fcm_arch}.env ] ; then
174    echo >> $outfile
175    echo "The file ARCH/arch-${fcm_arch}.env will now be sourced with modules needed for compilation for all components."
176    echo "Note that this new environement might be kept after compilation." 
177    echo "If this is the case, source again your personal environment after compilation. "
178    echo " Personal module list before sourcing of ARCH/arch.env file:"    >> $outfile 
179    module list   >> $outfile 2>&1
180
181    # Make a link to this file, to be used also in config.card
182    rm -f ARCH/arch.env
183    ln -s arch-${fcm_arch}.env ARCH/arch.env
184
185    # Source the file
186    source ARCH/arch.env   >> $outfile 2>&1
187    echo >> $outfile 
188    echo " New module list after sourcing of ARCH/arch.env file:"    >> $outfile 
189    module list   >> $outfile 2>&1
190fi
191
192#### 2 Do the compilation
193## 2.1 Compile ioipsl
194cd $modipsl/modeles/IOIPSL
195echo; echo "NOW COMPILE IOIPSL"
196echo >> $outfile ; echo " NOW COMPILE IOIPSL"   >> $outfile 
197
198# Check if compilation with fcm is included in IOIPSL
199if [ ! -f makeioipsl_fcm ] ; then
200  echo "The file makeiopsl_fcm do not exist. Probably this is not the right version of IOIPSL."
201  echo "Version of IOIPSL with fcm compilation is needed to compile with this script. Stop now."
202  exit
203fi
204
205echo ./makeioipsl_fcm -$optmode -parallel -arch ${fcm_arch} -arch_path $arch_path -j 8 $full_flag   >> $outfile 
206     ./makeioipsl_fcm -$optmode -parallel -arch ${fcm_arch} -arch_path $arch_path -j 8 $full_flag   >> $outfile 2>&1
207# Test if compiling succeded
208if [[ $? != 0 ]] ; then
209    echo "THERE IS A PROBLEM IN IOIPSL COMPILATION - STOP"
210    exit
211fi
212
213## 2.2 Compile oasis3-mct
214cd $modipsl/oasis3-mct/util/make_dir
215echo; echo "NOW COMPILE OASIS3-MCT"
216echo >> $outfile ; echo " NOW COMPILE OASIS3-MCT"   >> $outfile
217cp $mysrc_path/OASIS3-MCT/make_${fcm_arch} make.inc
218
219echo make -f TopMakefileOasis3 >> $outfile
220     make -f TopMakefileOasis3 >> $outfile 2>&1
221
222
223## 2.3 Compile xios
224cd $modipsl/modeles/XIOS
225echo; echo "NOW COMPILE XIOS"
226echo >> $outfile ; echo " NOW COMPILE XIOS"   >> $outfile 
227echo ./make_xios --use_oasis oasis3_mct --$optmode --arch $fcm_arch --arch_path $arch_path --job 4 $full_xios   >> $outfile 
228     ./make_xios --use_oasis oasis3_mct --$optmode --arch $fcm_arch --arch_path $arch_path --job 4 $full_xios   >> $outfile 2>&1
229# Test if compiling succeded
230if [[ $? != 0 ]] ; then
231    echo "THERE IS A PROBLEM IN XIOS COMPILATION - STOP"
232    exit
233fi
234# Move executables to modipsl/bin
235if [ -f $modipsl/modeles/XIOS/bin/xios_server.exe ] ; then
236    mv $modipsl/modeles/XIOS/bin/xios_server.exe $modipsl/bin/xios_server_${optmode}.exe
237else
238    echo "THERE IS A PROBLEM IN XIOS COMPILATION EXECUTABLE MISSING - STOP"
239    exit
240fi
241
242
243## 2.4 Compile orchidee
244cd $modipsl/modeles/ORCHIDEE
245echo; echo "NOW COMPILE ORCHIDEE"
246echo >> $outfile ; echo " NOW COMPILE ORCHIDEE"   >> $outfile 
247
248# Check if the compilation of ORCHIDEE was previsouly interupted prematured.
249# In that case, the files fcm.bld.lock exist. If the file exist, it is here removed to avoid makeorchidee_fcm
250# to ask question and wait for interactivly answer from the user.
251if [ -f build/fcm.bld.lock ] ; then
252    echo >> $outfile
253    echo " WARNING!! The file ORCHIDEE/build/fcm.bld.lock exist. "   >> $outfile
254    echo "           This means that the compilation is either currently on going in another terminal was previous interupted before the end."   >> $outfile
255    echo "           The file will now be removed. "   >> $outfile
256    echo >> $outfile
257    rm -f build/fcm.bld.lock
258fi
259
260echo    ./makeorchidee_fcm -j 8 -xios -parallel $parallel -$optmode -arch ${fcm_arch} -arch_path $arch_path $full_orch   >> $outfile 
261        ./makeorchidee_fcm -j 8 -xios -parallel $parallel -$optmode -arch ${fcm_arch} -arch_path $arch_path $full_orch   >> $outfile 2>&1
262# Test if compiling finished
263if [[ $? != 0 ]] ; then
264    echo "THERE IS A PROBLEM IN ORCHIDEE COMPILATION - STOP"
265    exit
266fi
267
268
269## 2.5 Compile NEMO
270nemo_root=$modipsl/modeles/NEMOGCM/CONFIG
271if [ ${icemodel} == lim2 ] ; then
272   addkeys="key_lim2_vp key_diahth key_oasis3"
273   delkeys="key_nosignedzero key_mpp_rep"
274else
275   addkeys="key_top key_pisces key_age key_cfc key_cpl_carbon_cycle key_gas key_oasis3"
276   if [ ${oceanbio} == y ] ; then
277      if [ ${esmco2} == y ] ; then
278         delkeys="key_nosignedzero key_mpp_rep"
279      else
280         delkeys="key_nosignedzero key_mpp_rep key_cpl_carbon_cycle key_gas"
281      fi
282   else
283      delkeys="key_nosignedzero key_mpp_rep key_top key_pisces key_cfc key_age key_cpl_carbon_cycle key_gas"
284   fi
285fi
286
287if [ ${oceanbio} == n ] ; then
288   echo; echo "NOW COMPILE NEMO. Resolution = ${resol_oce} with icemodel ${icemodel} and without PISCES"
289   echo >> $outfile ; echo " NOW COMPILE NEMO. Resolution = ${resol_oce} with icemodel ${icemodel} and without PISCES"   >> $outfile
290else
291   echo; echo "NOW COMPILE NEMO. Resolution = ${resol_oce} with icemodel ${icemodel} and PISCES"
292   echo >> $outfile ; echo " NOW COMPILE NEMO. Resolution = ${resol_oce} with icemodel ${icemodel} and PISCES"   >> $outfile
293fi
294echo >> $outfile ; echo cd $nemo_root  >> $outfile
295echo >> $outfile ; echo cp $modipsl/config/IPSLCM6/SOURCES/NEMO/arch-${fcm_arch}.fcm ../ARCH/.   >> $outfile
296echo >> $outfile
297
298cd $nemo_root ; cp $mysrc_path/NEMO/arch-${fcm_arch}.fcm ../ARCH/.
299
300if [ ${resol_oce} == ORCA2 ]   ; then  cfg_wrk=ORCA2_LIM_PISCES    ; fi
301if [ ${resol_oce} == ORCA1 ]   ; then  cfg_wrk=ORCA1_LIM3_PISCES    ; fi
302if [ ${resol_oce} == ORCA025 ] ; then  cfg_wrk=ORCA025_LIM3_PISCES  ; fi
303
304echo cp $modipsl/config/IPSLCM6/SOURCES/NEMO/*.*90 $nemo_root/$cfg_wrk/MY_SRC/   >> $outfile
305echo >> $outfile
306cp $mysrc_path/NEMO/*.*90  $nemo_root/$cfg_wrk/MY_SRC/
307
308if [ $full_nemo == y ] ; then
309   # To make a full compilation, first make a clean to remove all files produced during previous compilation
310   echo ./makenemo -m ${fcm_arch} -n $cfg_wrk clean   >> $outfile
311   echo >> $outfile
312   ./makenemo -m ${fcm_arch} -n $cfg_wrk clean  >> $outfile 2>&1
313fi
314echo ./makenemo -m ${fcm_arch} -n $cfg_wrk -j16 add_key "$addkeys"  del_key "$delkeys"   >> $outfile
315echo >> $outfile
316./makenemo -m ${fcm_arch} -n $cfg_wrk -j16 add_key "$addkeys"  del_key "$delkeys"  >> $outfile 2>&1
317
318
319# Test if compiling finished
320if [[ $? != 0 ]] ; then
321    echo "THERE IS A PROBLEM IN NEMO COMPILATION - STOP"
322    exit
323fi
324
325echo >> $outfile
326echo "Move nemo executable to modipsl/bin" >> $outfile
327echo ls -lrt $nemo_root/$cfg_wrk/BLD/bin   >> $outfile
328ls -lrt $nemo_root/$cfg_wrk/BLD/bin  >> $outfile
329echo >> $outfile
330
331if [ -f $nemo_root/$cfg_wrk/BLD/bin/nemo.exe ] ; then
332    if [ ${esmco2} == y ] && [ ${esmaer} == n ] ;  then
333        mv $nemo_root/$cfg_wrk/BLD/bin/nemo.exe $modipsl/bin/opa.ESMCO2_${resol_oce}_${optmode}
334    elif [ ${esmco2} == y ] && [ ${esmaer} == y ] ;  then
335    mv $nemo_root/$cfg_wrk/BLD/bin/nemo.exe $modipsl/bin/opa.ESMCO2AER_${resol_oce}_${optmode}
336    else
337        mv $nemo_root/$cfg_wrk/BLD/bin/nemo.exe $modipsl/bin/opa_${resol_oce}_${optmode}
338    fi
339fi
340
341
342## 2.6 Compile LMDZ for regular latlon configuration
343# If necessary compile INCA modele with AER configuration
344if [ ${esmaer} == y ] ;  then
345    cd $modipsl/modeles/INCA
346    #compile INCA regulat lat_lon chimie librairy
347    echo; echo "NOW COMPILE INCA AER on resolution = ${resol_atm}"
348    echo ./makeinca_fcm -chimie AER -$optmode -xios -parallel mpi_omp -resol ${resol_atm} -j 8 -arch ${fcm_arch}  -arch_path $arch_path $full_flag $full_inca >> $outfile 
349    ./makeinca_fcm -chimie AER -$optmode -xios -parallel mpi_omp -resol ${resol_atm} -j 8 -arch ${fcm_arch} -arch_path $arch_path  $full_flag $full_inca >> $outfile 2>&1
350
351    # Test if compiling finished
352    if [[ $? != 0 ]] ; then
353        echo "THERE IS A PROBLEM IN INCA COMPILATION - STOP"
354        exit
355    fi
356
357    echo "Move inca.dat modipsl/bin"
358    if [[ -f $modipsl/modeles/INCA/SIMULATIONS/AER/inca.dat ]] ;  then 
359        mv $modipsl/modeles/INCA/SIMULATIONS/AER/inca.dat $modipsl/bin/inca_${resol_atm}_${optmode}_AER.dat ;
360    else
361        echo "THERE IS A PROBLEM IN INCA COMPILATION - STOP"
362        exit   
363    fi
364       
365fi 
366
367
368# Compile LMDZ regular lat-lon executable
369cd $modipsl/modeles/LMDZ
370echo; echo "NOW COMPILE LMDZ REGULAR LAT-LON MODE. Resolution = ${resol_atm}"
371echo >> $outfile ; echo " NOW COMPILE LMDZ REGULAR LAT-LON MODE. Resolution = ${resol_atm}"   >> $outfile 
372# Retrieve the final svn release number, needed for radiative code suffix of executable
373lmdzsvn=`svnversion . | egrep -o "[0-9]+"  | awk 'NR==1'`
374
375# Check if the compilation of LMDZ was previsouly interupted prematured.
376# In that case, the files dimension.h and .lock exist. If the files exist, they are here removed to avoid makelmdz_fcm
377# to ask question and wait for interactivly answer from the user.
378if [ -f libf/grid/dimensions.h ] || [ -f .lock ] ; then
379  echo >> $outfile
380  echo " WARNING!! The file LMDZ/libf/grid/dimension.h and/or the LMDZ/.lock exist. "   >> $outfile
381  echo "           This means that the compilation is either currently on going in another terminal was previous interupted before the end."   >> $outfile
382  echo "           The files dimension.h and .lock will now be removed. "   >> $outfile
383  echo >> $outfile
384  rm -f libf/grid/dimensions.h
385  rm -f .lock
386fi
387
388# Need to define the proper option for radiative code compilation. By default, we use rrtm
389case $rad in
390    oldrad) opt_rad="" ;;
391    rrtm)   if [ $lmdzsvn -le 4185 ] ; then opt_rad="-rrtm true" ; else opt_rad="-rad rrtm" ; fi ;;
392    ecrad)  opt_rad="-rad ecrad" ;;
393    *) echo Only oldrad rrtm ecrad for rad option ; exit
394esac
395
396if [ $lmdzsvn -le 4185 -a $rad = "ecrad" ] ; then echo "ecrad only available for LMDZ rev starting with 4186 " ; exit ; fi
397
398
399if [ ${esmaer} == n ] ;  then
400    echo ./makelmdz_fcm -d ${resol_atm} -c OMCT -cosp true $opt_rad -$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz gcm    >> $outfile
401    ./makelmdz_fcm -d ${resol_atm} -c OMCT -cosp true $opt_rad -$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz gcm    >> $outfile 2>&1
402else
403    #in esm aer case add chemistry option to lmdz compilation
404    echo ./makelmdz_fcm -d ${resol_atm} -c OMCT -cosp true $opt_rad -$optmode -mem -parallel $parallel -chimie INCA -io xios -v orchidee2.1 -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz gcm    >> $outfile
405    ./makelmdz_fcm -d ${resol_atm} -c OMCT -cosp true $opt_rad -$optmode -mem -parallel $parallel -chimie INCA -io xios -v orchidee2.1 -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz gcm    >> $outfile 2>&1
406fi
407
408# Test if compiling finished
409if [[ $? != 0 ]] ; then
410    echo "THERE IS A PROBLEM IN LMDZ REGULAR LATLON COMPILATION - STOP"
411    exit
412fi
413
414
415
416
417# Move executables to modipsl/bin folder
418echo >> $outfile
419echo "Move gcm.e executable to modipsl/bin" >> $outfile
420echo ls -lrt $modipsl/modeles/LMDZ/bin   >> $outfile
421ls -lrt $modipsl/modeles/LMDZ/bin  >> $outfile
422echo >> $outfile
423
424
425suffix=_${resol_atm}_phylmd
426if [ $lmdzsvn -ge 4186 ] ; then suffix=${suffix}_${rad} ; fi
427suffix=${suffix}_para_mem_orch_couple
428if [ ${esmaer} == n ] ;  then
429    suffix=${suffix}.e
430else
431    suffix=${suffix}_inca.e
432fi
433
434echo gcm suffix = $suffix
435
436if [ -f $modipsl/modeles/LMDZ/bin/gcm${suffix} ] ;  then
437    if [ ${esmaer} == n ] ;  then
438        mv $modipsl/modeles/LMDZ/bin/gcm${suffix} $modipsl/bin/gcm_${resol_atm}_${optmode}.e
439    else
440        mv $modipsl/modeles/LMDZ/bin/gcm${suffix} $modipsl/bin/gcm_${resol_atm}_${optmode}_AER.e
441    fi
442else
443    echo "ERROR gcm${suffix} executable does not exist." 
444    echo "THERE IS A PROBLEM IN LMDZ REGULAR LATLON COMPILATION - STOP"
445    exit
446fi 
447
448
449
450
451
452# Compile ce0l initialization program for LMDZ regular lat-lon exectuable
453if [ $ce0l == y ] ; then
454    echo; echo "NOW COMPILE CE0L OF LMDZ. Resolution = ${resol_atm}"
455    echo >> $outfile ; echo " NOW COMPILE CE0L OF LMDZ. Resolution = ${resol_atm}"   >> $outfile 
456   
457    echo ./makelmdz_fcm -d ${resol_atm} $opt_rad -$optmode -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz ce0l    >> $outfile 
458    ./makelmdz_fcm -d ${resol_atm} $opt_rad -$optmode -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz ce0l    >> $outfile 2>&1
459
460# 1er aout - remove xios from ce0l compilation #
461#    echo ./makelmdz_fcm -d ${resol_atm} $opt_rad -$optmode -io xios -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz ce0l    >> $outfile
462#    ./makelmdz_fcm -d ${resol_atm} $opt_rad -$optmode -io xios -arch $fcm_arch -arch_path $arch_path -j 8 $full_lmdz ce0l    >> $outfile 2>&1
463
464    # Test if compiling finished
465    if [[ $? != 0 ]] ; then
466        echo "THERE IS A PROBLEM IN CE0L (LMDZ) REGULAR LATLON COMPILATION - STOP"
467        exit
468    fi
469
470
471    # Move executables to modipsl/bin folder
472    echo >> $outfile
473    echo "Move ce0l.e executable to modipsl/bin" >> $outfile
474    echo ls -lrt $modipsl/modeles/LMDZ/bin   >> $outfile
475    ls -lrt $modipsl/modeles/LMDZ/bin  >> $outfile
476    echo >> $outfile
477
478    suffix=_${resol_atm}_phylmd_seq.e
479    if [ $lmdzsvn -ge 4186 ] ; then suffix=_${resol_atm}_phylmd_${rad}_seq.e ; fi
480    echo ce0l suffix = $suffix
481
482    if [ -f $modipsl/modeles/LMDZ/bin/ce0l${suffix} ] ;  then
483        mv $modipsl/modeles/LMDZ/bin/ce0l${suffix} $modipsl/bin/ce0l_${resol_atm}_${optmode}.e
484    else
485        echo "ERROR ce0l${suffix} executable does not exist." 
486        echo "THERE IS A PROBLEM IN CE0L (LMDZ) REGULAR LATLON COMPILATION - STOP"
487        exit
488    fi 
489fi
490
491echo >>$outfile ; echo "ALL COMPILING FINISHED" >> $outfile
492echo ls -lrt modipsl/bin >> $outfile
493ls -lrt $modipsl/bin >> $outfile
494
495echo; echo "ALL COMPILING FINISHED" ; echo
496echo "Executables are found in modipsl/bin"
497echo "Check that executable names correspond with the name set in config.card before launching the job"
498echo ls -lrt modipsl/bin
499ls -lrt $modipsl/bin
500
501date
502
503exit
504
505
Note: See TracBrowser for help on using the repository browser.