source: trunk/LMDZ.COMMON/makelmdz_fcm @ 1530

Last change on this file since 1530 was 1530, checked in by emillour, 9 years ago

Venus and Titan GCMs:
Updates in the physics to keep up with updates in LMDZ5 (up to
LMDZ5 trunk, rev 2350) concerning dynamics/physics separation:

  • Adapted makelmdz and makelmdz_fcm script to stop if trying to compile 1d model or newstart or start2archive in parallel.
  • got rid of references to "dimensions.h" in physics. Within physics packages, use nbp_lon (=iim), nbp_lat (=jjmp1) and nbp_lev (=llm) from module mod_grid_phy_lmdz (in phy_common) instead. Only partially done for Titan, because of many hard-coded commons; a necessary first step will be to clean these up (using modules).

EM

File size: 19.2 KB
Line 
1#!/bin/bash
2# $Id: makelmdz_fcm 1615 2012-02-10 15:42:26Z emillour $
3# This is a script in Bash.
4
5# FH : on ne crée plus le fichier arch.mk qui est supposé exister par
6# FH : ailleurs.
7# FH : ulterieurement, ce fichier sera pré-existant pour une série
8# FH : de configurations en versions optimisées et debug qui seront
9# FH : liés (ln -s) avec arch.mk en fonction de l'architecture.
10# FH : Pour le moment, cette version est en test et on peut créer les
11# FH : arch.mk en lançant une première fois makegcm.
12#
13##set -x
14########################################################################
15# options par defaut pour la commande make
16########################################################################
17
18dim="96x72x19"
19physique=lmd
20filtre=filtrez
21grille=reg
22couple=false
23veget=false
24sisvat=false
25rrtm=false
26chimie=false
27chemistry=false
28parallel=none
29paramem="par"
30compil_mod=prod
31io=ioipsl
32LIBPREFIX=""
33cosp=false
34bands=""
35scatterers=""
36job=1
37full=''
38
39LMDGCM=`/bin/pwd`
40LIBOGCM=$LMDGCM/libo
41LIBFGCM=$LMDGCM/libf
42DYN_COMMON_PATH=$LIBFGCM/dyn3d_common
43# path for optional packages, but default set to ".void_dir"
44FILTRE_PATH=$LMDGCM/.void_dir
45DYN_PHYS_PATH=$LMDGCM/.void_dir
46DYN_PHYS_SUB_PATH=$LMDGCM/.void_dir
47PHY_COMMON_PATH=$LMDGCM/.void_dir
48RRTM_PATH=$LMDGCM/.void_dir
49SISVAT_PATH=$LMDGCM/.void_dir
50COSP_PATH=$LMDGCM/.void_dir
51CHEM_PATH=$LMDGCM/.void_dir
52AERONO_PATH=$LMDGCM/.void_dir
53# Path to fcm utility:
54##fcm_path=$LMDGCM/tools/fcm/bin
55fcm_path=$(dirname $(which fcm))
56
57########################################################################
58#  Quelques initialisations de variables du shell.
59########################################################################
60
61CPP_KEY="" 
62INCLUDE=""
63LIB=""
64adjnt=""
65COMPIL_FFLAGS="%PROD_FFLAGS"
66PARA_FFLAGS=""
67PARA_LD=""
68EXT_SRC=""
69
70########################################################################
71# lecture des options de mymake
72########################################################################
73
74while (($# > 0))
75  do
76  case $1 in
77      "-h") cat <<fin
78Usage :
79makegcm [options] -arch arch exec
80[-h]                       : brief help
81[-d [[IMx]JMx]LM]          : IM, JM, LM are the dimensions in x, y, z (default: $dim)
82[-s nscat]                 : (Generic) Number of radiatively active scatterers
83[-b IRxVIS]                : (Generic) Number of infrared (IR) and visible (VIS) bands for radiative transfer
84[-p PHYS]                  : set of physical parametrizations (in libf/phyPHYS), (default: lmd)
85[-prod / -dev / -debug]    : compilation mode production (default) / developement / debug .
86[-c false/MPI1/OMCT]       : coupling with ocean model : MPI1/OMCT/false (default: false)
87[-v false/orchidee2.0/orchidee1.9/true] : version of the vegetation model to include (default: false)
88          false       : no vegetation model
89          orchidee2.0 : compile using ORCHIDEE 2.0 (or more recent version)
90          orchidee1.9 : compile using ORCHIDEE up to the version including OpenMP in ORCHIDEE : tag 1.9-1.9.5(version AR5)-1.9.6
91          true        : (obsolete; for backward compatibility) use ORCHIDEE tag 1.9-1.9.6
92[-chimie INCA/false]       : (Earth) with INCA chemistry model or without (default: false)
93[-cosp cosp/false]         : (Earth) add the cosp model (default: false)
94[-sisvat true/false]  : (Earth) compile with/without sisvat package (default: false)
95[-rrtm true/false]    : (Earth) compile with/without rrtm package (default: false)
96[-parallel none/mpi/omp/mpi_omp] : parallelism (default: none) : mpi, openmp or mixted mpi_openmp
97[-g GRI]                   : grid configuration in dyn3d/GRI_xy.h  (default: reg, inclues a zoom)
98[-io ioipsl/mix/xios]                   : Input/Output library (default: ioipsl)
99[-include INCLUDES]        : extra include path to add
100[-cpp CPP_KEY]             : additional preprocessing definitions
101[-adjnt]                   : adjoint model, not operational ...
102[-mem]                     : reduced memory dynamics (if in parallel mode)
103[-filtre NOMFILTRE]        : use filtre from libf/NOMFILTRE (default: filtrez)
104[-link LINKS]              : additional links with other libraries
105[-j n]                     : active parallel compiling on ntask
106[-full]                    : full (re-)compilation (from scratch)
107[-fcm_path path]           : path to the fcm tool (default: tools/fcm/bin)
108[-ext_src path]            : path to an additional set of routines to compile with the model
109 -arch arch                : target architecture
110 exec                      : executable to build
111fin
112          exit;;
113
114      "-d")
115          dim=$2 ; shift ; shift ;;
116     
117      "-p")
118          physique="$2" ;  shift ; shift ;;
119
120      "-s")
121          scatterers=$2 ; shift ; shift ;;
122
123      "-b")
124          bands=$2 ; shift ; shift ;;
125
126      "-g")
127          grille="$2" ; shift ; shift ;;
128
129      "-c")
130          couple="$2" ; shift ; shift ;;
131
132      "-prod")
133          compil_mod="prod" ; shift ;;
134
135      "-dev")
136          compil_mod="dev" ; shift ;;
137
138      "-debug")
139          compil_mod="debug" ; shift ;;
140
141      "-io")
142          io="$2" ; shift ; shift ;;
143
144      "-v")
145          veget="$2" ; shift ; shift ;;
146
147      "-sisvat")
148          sisvat="$2" ; shift ; shift ;;
149
150      "-rrtm")
151          rrtm="$2" ; shift ; shift ;;
152
153      "-chimie")
154          chimie="$2" ; shift ; shift ;;
155
156      "-parallel")
157          parallel="$2" ; shift ; shift ;;
158     
159      "-include")
160          INCLUDE="$INCLUDE -I$2" ; shift ; shift ;;
161
162      "-cpp")
163          CPP_KEY="$CPP_KEY $2" ; shift ; shift ;;
164
165      "-adjnt")
166          echo "not operational ... work to be done here ";exit
167          opt_dep="$opt_dep adjnt" ; adjnt="-ladjnt -ldyn3d "
168          optim="$optim -Dadj" ; shift ;;
169
170      "-cosp")
171          cosp="$2" ; shift ; shift ;;
172
173      "-mem")
174          paramem="mem" ; shift ;;
175
176      "-filtre")
177          filtre=$2 ; shift ; shift ;;
178
179      "-link")
180          LIB="$LIB $2" ; shift ; shift ;;
181
182      "-fcm_path")
183          fcm_path=$2 ; shift ; shift ;;
184
185      "-ext_src")
186          EXT_SRC=$2 ; shift ; shift ;;
187
188      "-j")
189          job=$2 ; shift ; shift ;;
190
191      "-full")
192          full="-full" ; shift ;;
193
194      "-arch")
195          arch=$2 ; shift ; shift ;;
196
197      *)
198          code="$1" ; shift ;;
199  esac
200done
201
202###############################################################
203# path to fcm
204###############################################################
205# handle case when provided path to fcm was given as a relative
206# path (from makelmdz_fcm script directory) and not an absolute path
207if [[ ${fcm_path:0:1} != "/" ]] ; then
208  # prepend with makelmdz_fcm location
209  fcm_path=$(cd $(dirname $0) ; pwd)"/"${fcm_path}
210fi
211
212# add fcm_path to PATH
213export PATH=${fcm_path}:${PATH}
214
215echo "Path to fcm:"
216echo ${fcm_path}
217
218###############################################################
219# lecture des chemins propres à l'architecture de la machine #
220###############################################################
221rm -f .void_file
222echo > .void_file
223rm -rf .void_dir
224mkdir .void_dir
225rm -f arch.path
226ln -s arch/arch-${arch}.path ./arch.path
227source arch.path
228
229########################################################################
230# Definition des clefs CPP, des chemins des includes et modules
231#  et des libraries
232########################################################################
233
234if [[ "$compil_mod" == "prod" ]]
235then
236  COMPIL_FFLAGS="%PROD_FFLAGS"
237elif [[ "$compil_mod" == "dev" ]]
238then
239  COMPIL_FFLAGS="%DEV_FFLAGS"
240elif [[ "$compil_mod" == "debug" ]]
241then
242  COMPIL_FFLAGS="%DEBUG_FFLAGS"
243fi
244
245phys_root=$physique
246if [[ "${physique:0:3}" == "lmd" ]] ; then phys_root=lmd ; fi
247if [[ "${physique:0:3}" == "mar" ]] ; then phys_root=mar ; fi
248if [[ "${physique:0:4}" == "mars" ]] ; then phys_root=mars ; fi
249if [[ "${physique:0:3}" == "std" ]] ; then phys_root=std ; fi
250if [[ "${physique:0:5}" == "venus" ]] ; then phys_root=venus ; fi
251if [[ "${physique:0:5}" == "titan" ]] ; then phys_root=titan ; fi
252if [[ "${physique:0:3}" == "dev" ]] ; then phys_root=dev ; fi
253
254if [[ "$physique" != "nophys" ]]
255then
256   #We'll use some physics
257   CPP_KEY="$CPP_KEY CPP_PHYS"
258   if [[ "${phys_root}" == "lmd" ]]
259   then
260   #For lmd physics, default planet type is Earth
261   CPP_KEY="$CPP_KEY CPP_EARTH"
262   fi
263   # set physics common utilities path
264   PHY_COMMON_PATH="${LIBFGCM}/phy_common"
265   # set the dyn/phys interface path
266   DYN_PHYS_PATH="${LIBFGCM}/dynlonlat_phylonlat"
267   DYN_PHYS_SUB_PATH="${LIBFGCM}/dynlonlat_phylonlat/phy${phys_root}"
268fi
269
270if [[ "$filtre" == "filtrez" ]]
271then
272   FILTRE_PATH=${LIBFGCM}/$filtre
273fi
274
275if [[ "$chimie" == "INCA" ]]
276then
277   CPP_KEY="$CPP_KEY INCA"
278   INCLUDE="$INCLUDE -I${INCA_INCDIR}"
279   LIB="$LIB -L${INCA_LIBDIR} -lchimie"
280fi
281
282if [[ "$couple" != "false" ]]
283then
284    if [[ "$couple" == "MPI1" ]]
285    then
286        CPP_KEY="$CPP_KEY CPP_COUPLE"
287        export OASIS_INCDIR=$LMDGCM/../../prism/X64/build/lib/psmile.MPI1
288        export OASIS_LIBDIR=$LMDGCM/../../prism/X64/lib
289        INCLUDE="$INCLUDE -I${OASIS_INCDIR}"
290        LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.MPI1 -lmpp_io"
291    else
292        CPP_KEY="$CPP_KEY CPP_COUPLE CPP_OMCT"
293        INCLUDE="$INCLUDE -I${OASIS_INCDIR}"
294        LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.MPI1 -lscrip -lmct -lmpeu"
295    fi
296fi
297
298if [[ "$parallel" != "none" && \
299     ( "$code" == "newstart" || "$code" == "start2archive" ) ]]
300then
301    echo "newstart or start2archive utilities should be run in serial!"
302    echo " Compile without -parallel [mpi|omp|mpi_omp] option!"
303    exit
304fi
305
306if [[ "$parallel" == "mpi" ]]
307then
308   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI"
309   PARA_FFLAGS="%MPI_FFLAGS"
310   PARA_LD="%MPI_LD"
311elif [[ "$parallel" == "omp" ]]
312then
313   CPP_KEY="$CPP_KEY CPP_PARA CPP_OMP"
314   PARA_FFLAGS="%OMP_FFLAGS"
315   PARA_LD="%OMP_LD"
316elif [[ "$parallel" == "mpi_omp" ]]
317then
318   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI CPP_OMP"
319   PARA_FFLAGS="%MPI_FFLAGS %OMP_FFLAGS"
320   PARA_LD="%MPI_LD %OMP_LD"
321fi
322
323if [[ ( "$parallel" == "omp" || "$parallel" == "mpi_omp" ) \
324   && "$compil_mod" == "debug" ]]
325then
326    echo "Usually, parallelization with OpenMP requires some optimization."
327    echo "We suggest switching to \"-dev\"."
328fi
329
330if [ "$veget" = "true" -o "$veget" = "orchidee1.9" -o "$veget" = "orchidee2.0" ]
331then
332#NB: option 'true': for backward compatibility. To be used with ORCHIDEE tag 1.9-1.9.6
333#    For this case, cpp flag ORCHIDEE_NOOPENMP must be added to the makelmdz_fcm arguments
334#    option orchidee1.9 : Compile with ORCHIDEE version up to the inclusion of OpenMP in ORCHIDEE : tag 1.9-1.9.5(version AR5)-1.9.6
335   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
336   CPP_KEY="$CPP_KEY CPP_VEGET"
337# temporary, for Orchidee versions 1.9.* (before openmp activation)
338   if [[ "$veget" == "orchidee1.9" ]] ; then
339      CPP_KEY="$CPP_KEY ORCHIDEE_NOOPENMP"
340   fi
341   if [[ "$veget" == "orchidee2.0" ]] ; then
342      orch_libs="sechiba parameters stomate parallel orglob orchidee"
343   else
344      orch_libs="sechiba parameters stomate parallel orglob"
345   fi
346   LIB="${LIB} -L${ORCH_LIBDIR}"
347   for lib in ${orch_libs} ; do
348      if [ -f ${ORCH_LIBDIR}/lib${LIBPREFIX}$lib.a ] ; then
349         LIB="${LIB} -l${LIBPREFIX}$lib "
350      fi
351   done
352elif [[ "$veget" != "false" ]] ; then
353   echo "Option -v $veget does not exist"
354   echo "Use ./makelmdz_fcm -h for more information"
355   exit 
356fi
357
358if [[ "$sisvat" == "true" ]]
359then
360   CPP_KEY="$CPP_KEY CPP_SISVAT"
361   SISVAT_PATH="$LIBFGCM/%PHYS/sisvat"
362fi
363
364if [[ "$rrtm" == "true" ]]
365then
366   CPP_KEY="$CPP_KEY CPP_RRTM"
367   RRTM_PATH="$LIBFGCM/%PHYS/rrtm"
368fi
369
370if [[ $io == ioipsl ]]
371then
372   CPP_KEY="$CPP_KEY CPP_IOIPSL"
373   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}"
374   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl"
375elif [[ $io == mix ]]
376then
377   # For now, xios implies also using ioipsl
378   CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS"
379   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}"
380   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios"
381elif [[ $io == xios ]]
382then
383   # For now, xios implies also using ioipsl
384   CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS CPP_IOIPSL_NO_OUTPUT"
385   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}"
386   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios"
387fi
388
389if [[ "$cosp" == "true" ]]
390then
391   CPP_KEY="$CPP_KEY CPP_COSP"
392   COSP_PATH="$LIBFGCM/cosp"
393#   LIB="${LIB} -l${LIBPREFIX}cosp"
394fi
395
396# for Titan (but could be used by others as well), there is also "chimtitan"
397if [[ -d ${LIBFGCM}/chim${physique} ]]
398then
399   CHEM_PATH="${LIBFGCM}/chim${physique}"
400   INCLUDE="$INCLUDE -I${LIBFGCM}/chim${physique}"
401fi
402
403# for Mars (but could be used by others as well), there is also "aeronomars"
404if [[ -d ${LIBFGCM}/aerono${physique} ]]
405then
406   AERONO_PATH="${LIBFGCM}/aerono${physique}"
407   INCLUDE="$INCLUDE -I${LIBFGCM}/aerono${physique}"
408fi
409
410INCLUDE="$INCLUDE ${NETCDF_INCDIR}"
411LIB="$LIB ${NETCDF_LIBDIR}"
412
413########################################################################
414# calcul du nombre de dimensions
415########################################################################
416
417
418dim_full=$dim
419dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
420set $dim
421dimc=$#
422echo calcul de la dimension
423echo dim $dim
424echo dimc $dimc
425
426
427########################################################################
428# Gestion des dimensions du modele.
429# on cree ou remplace le fichier des dimensions
430########################################################################
431
432cd $LIBFGCM/grid
433if [[ -f dimensions.h ]]
434then
435  echo 'ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs'
436  echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
437  echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
438  echo  vous pouvez continuer en repondant oui.
439  echo "Voulez-vous vraiment continuer?"
440  echo ""
441  echo "WARNING: you are probably already compiling the model somewhere else."
442  echo "Wait until the first compilation is finished before launching this one."
443  echo "If you are sure that you are not compiling elsewhere, just answer "
444  echo "yes (or 'oui') to the question below to proceed."
445  echo "Do you wish to continue?"
446  read reponse
447  if [[ $reponse == "oui" || $reponse == "yes" ]]
448  then
449    \rm -f $LIBFGCM/grid/dimensions.h
450  else
451    exit
452  fi
453fi
454
455
456cd $LIBFGCM/grid/dimension
457./makdim $dim
458if (($? != 0))
459then
460    exit 1
461fi
462
463cat $LIBFGCM/grid/dimensions.h
464cd $LMDGCM
465
466if [[ "$bands" != "" ]]
467then
468  # Generic model, recreate bands.h (IR & VIS bands for radiative transfer)
469  bands=$(echo $bands | sed -e 's/[^0-9]/ /g')
470  cd $LIBFGCM/phy$physique/bands
471  ./makbands $bands
472  cat $LIBFGCM/phy$physique/bands.h
473  cd $LMDGCM
474fi
475
476if [[ "$scatterers" != "" ]]
477then
478  # Generic model, recreate scatterers.h
479  cd $LIBFGCM/phy$physique/scatterers
480  ./make_scatterers $scatterers
481  cat $LIBFGCM/phy$physique/scatterers.h
482  cd $LMDGCM
483fi
484
485
486########################################################################
487# Differentes dynamiques (3d, 2d, 1d)
488########################################################################
489
490dimension=`echo $dim | wc -w`
491echo dimension $dimension
492
493if (( $dimension == 3 ))
494then
495  cd $LIBFGCM/grid
496  \rm fxyprim.h
497  cp -p fxy_${grille}.h fxyprim.h
498#else
499#  echo "Probleme dans les dimensions de la dynamique !!"
500#  echo "Non reactive pour l'instant !!!"
501fi
502
503if (( $dimension == 1 ))
504then
505## Sanity check: 1D models should be used in serial
506  if [[ $parallel != "none" ]]
507  then
508    echo "Error: a 1D model should not be compiled with "
509    echo "       -parallel [mpi|omp|mpi_omp] option!"
510    exit
511  fi
512  CPP_KEY="$CPP_KEY CPP_1D"
513##in 1D, add dyn3d to include path (because main prog is in physics)
514  INCLUDE="$INCLUDE -Ilibf/dyn3d -Ilibf/dyn3d_common"
515## no filtre in 1d:
516  FILTRE_PATH=$LMDGCM/.void_dir
517## no need to compile all routines in dyn3d_common either:
518  DYN_COMMON_PATH=$LMDGCM/.void_dir
519## no need to compile all routines in dynlmdz_phy... ;
520## (because key ones are included in 1D main program)
521  DYN_PHYS_PATH=$LMDGCM/.void_dir
522  DYN_PHYS_SUB_PATH=$LMDGCM/.void_dir
523fi
524
525######################################################################
526#   Traitement special pour le nouveau rayonnement de Laurent Li.
527#   ---> YM desactive pour le traitemement en parallele
528######################################################################
529
530#if [[ -f $libf/phy$physique/raddim.h ]]
531#then
532# if [[ -f $libf/phy$physique/raddim.$dimh.h ]]
533#then
534#  \rm -f $libf/phy$physique/raddim.h
535#  cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
536#  echo $libf/phy$physique/raddim.$dimh.h
537#  cat $libf/phy$physique/raddim.h
538# else
539#  echo On peut diminuer la taille de l executable en creant
540#  echo le fichier $libf/phy$physique/raddim.$dimh.h
541#  \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
542# fi
543#fi
544
545######################################################################
546# Gestion du filtre qui n'existe qu'en 3d.
547######################################################################
548
549if (( `expr $dimc \> 2` == 1 ))
550then
551   filtre="FILTRE=$filtre"
552else
553   filtre="FILTRE= L_FILTRE= "
554fi
555echo MACRO FILTRE $filtre
556
557echo $dimc
558
559
560
561######################################################################
562# Creation du suffixe de la configuration
563######################################################################
564
565
566SUFF_NAME=_${dim_full}
567SUFF_NAME=${SUFF_NAME}_phy${physique}
568
569if [[ "$parallel" != "none" ]]
570then
571  SUFF_NAME=${SUFF_NAME}_para
572  DYN=dyn${dimc}d${paramem}
573  if [[ "$paramem" == "mem" ]]
574  then
575   SUFF_NAME=${SUFF_NAME}_${paramem}
576  fi
577else
578  SUFF_NAME=${SUFF_NAME}_seq
579  if (( $dimension == 1 ))
580  then
581    # dynamics-related routines in"dyn1d" subdirectory of phy${physique}
582    DYN=phy${physique}/dyn1d
583  else
584    DYN=dyn${dimc}d
585  fi
586fi
587
588if [[ $veget != "false" ]]
589then
590  SUFF_NAME=${SUFF_NAME}_orch
591fi
592
593if [[ $couple != "false" ]]
594then
595  SUFF_NAME=${SUFF_NAME}_couple
596fi
597
598if [[ $chimie == "INCA" ]]
599then
600  SUFF_NAME=${SUFF_NAME}_inca
601fi
602
603cd $LMDGCM
604config_fcm="config.fcm"
605rm -f $config_fcm
606touch $config_fcm
607rm -f bin/${code}${SUFF_NAME}.e
608rm -f arch.fcm
609rm -f arch.opt
610
611echo "%ARCH          $arch"          >> $config_fcm
612echo "%INCDIR        $INCLUDE"       >> $config_fcm 
613echo "%LIB           $LIB"           >> $config_fcm
614echo "%ROOT_PATH     $PWD"           >> $config_fcm
615echo "%LIBF          $LIBFGCM"       >> $config_fcm
616echo "%LIBO          $LIBOGCM"       >> $config_fcm
617echo "%DYN           $DYN"           >> $config_fcm
618echo "%DYN_COMMON    $DYN_COMMON_PATH" >> $config_fcm
619echo "%PHY_COMMON    $PHY_COMMON_PATH" >> $config_fcm
620echo "%FILTRE        $FILTRE_PATH"   >> $config_fcm
621echo "%PHYS          phy${physique}" >> $config_fcm
622echo "%DYN_PHYS      $DYN_PHYS_PATH" >> $config_fcm
623echo "%DYN_PHYS_SUB  $DYN_PHYS_SUB_PATH" >> $config_fcm
624echo "%RRTM          $RRTM_PATH"     >> $config_fcm
625echo "%SISVAT        $SISVAT_PATH"   >> $config_fcm
626echo "%COSP          $COSP_PATH"     >> $config_fcm
627echo "%CHEM          $CHEM_PATH"     >> $config_fcm
628echo "%AERONO        $AERONO_PATH"   >> $config_fcm
629echo "%CPP_KEY       $CPP_KEY"       >> $config_fcm
630echo "%EXEC          $code"          >> $config_fcm
631echo "%SUFF_NAME     $SUFF_NAME"     >> $config_fcm
632echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> $config_fcm
633echo "%PARA_FFLAGS   $PARA_FFLAGS"   >> $config_fcm
634echo "%PARA_LD       $PARA_LD"       >> $config_fcm
635echo "%EXT_SRC       $EXT_SRC"       >> $config_fcm
636
637
638
639ln -s arch/arch-${arch}.fcm arch.fcm
640if test -f arch/arch-${arch}.opt &&  [ $compil_mod = "prod" ]
641  then
642  ln -s arch/arch-${arch}.opt arch.opt
643else
644  ln -s .void_file arch.opt
645fi
646
647
648rm -f $LIBOGCM/${arch}${SUFF_NAME}/.config/fcm.bld.lock
649./build_gcm ${fcm_path} -j $job $full
650
651rm -rf tmp_src
652rm -rf config
653ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config config
654ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config/tmp tmp_src
655
656
657if [[ -r $LIBFGCM/grid/dimensions.h ]]
658then
659  # Cleanup: remove dimension.h file
660  \rm -f $LIBFGCM/grid/dimensions.h
661fi
Note: See TracBrowser for help on using the repository browser.