source: trunk/LMDZ.COMMON/makelmdz_fcm @ 1521

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

All GCMs: Updates to make planetary codes (+Earth) setups converge.

  • Made a "phy_common" directory in libf, to contain routines common (wrt structural nature of underlying code/grid) to all LMDZ-related physics packages.
  • moved all "mod_phys_*" and "mod_grid_phy_lmdz" files from dynlonlat_phylonlat to "phy_common"
  • moved "ioipsl_getincom_p.F90 from "misc" to "phy_common" and modified it to match Earth GCM version and renamed it ioipsl_getin_p_mod.F90
  • added an "abort_physics" (as in Earth GCM) in "phy_common"
  • added a "print_control_mod.F90 (as in Earth GCM) in phy_common
  • made similar changes in LMDZ.GENERIC and LMDZ.MARS

EM

File size: 18.7 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" == "mpi" ]]
299then
300   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI"
301   PARA_FFLAGS="%MPI_FFLAGS"
302   PARA_LD="%MPI_LD"
303elif [[ "$parallel" == "omp" ]]
304then
305   CPP_KEY="$CPP_KEY CPP_PARA CPP_OMP"
306   PARA_FFLAGS="%OMP_FFLAGS"
307   PARA_LD="%OMP_LD"
308elif [[ "$parallel" == "mpi_omp" ]]
309then
310   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI CPP_OMP"
311   PARA_FFLAGS="%MPI_FFLAGS %OMP_FFLAGS"
312   PARA_LD="%MPI_LD %OMP_LD"
313fi
314
315if [[ ( "$parallel" == "omp" || "$parallel" == "mpi_omp" ) \
316   && "$compil_mod" == "debug" ]]
317then
318    echo "Usually, parallelization with OpenMP requires some optimization."
319    echo "We suggest switching to \"-dev\"."
320fi
321
322if [ "$veget" = "true" -o "$veget" = "orchidee1.9" -o "$veget" = "orchidee2.0" ]
323then
324#NB: option 'true': for backward compatibility. To be used with ORCHIDEE tag 1.9-1.9.6
325#    For this case, cpp flag ORCHIDEE_NOOPENMP must be added to the makelmdz_fcm arguments
326#    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
327   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
328   CPP_KEY="$CPP_KEY CPP_VEGET"
329# temporary, for Orchidee versions 1.9.* (before openmp activation)
330   if [[ "$veget" == "orchidee1.9" ]] ; then
331      CPP_KEY="$CPP_KEY ORCHIDEE_NOOPENMP"
332   fi
333   if [[ "$veget" == "orchidee2.0" ]] ; then
334      orch_libs="sechiba parameters stomate parallel orglob orchidee"
335   else
336      orch_libs="sechiba parameters stomate parallel orglob"
337   fi
338   LIB="${LIB} -L${ORCH_LIBDIR}"
339   for lib in ${orch_libs} ; do
340      if [ -f ${ORCH_LIBDIR}/lib${LIBPREFIX}$lib.a ] ; then
341         LIB="${LIB} -l${LIBPREFIX}$lib "
342      fi
343   done
344elif [[ "$veget" != "false" ]] ; then
345   echo "Option -v $veget does not exist"
346   echo "Use ./makelmdz_fcm -h for more information"
347   exit 
348fi
349
350if [[ "$sisvat" == "true" ]]
351then
352   CPP_KEY="$CPP_KEY CPP_SISVAT"
353   SISVAT_PATH="$LIBFGCM/%PHYS/sisvat"
354fi
355
356if [[ "$rrtm" == "true" ]]
357then
358   CPP_KEY="$CPP_KEY CPP_RRTM"
359   RRTM_PATH="$LIBFGCM/%PHYS/rrtm"
360fi
361
362if [[ $io == ioipsl ]]
363then
364   CPP_KEY="$CPP_KEY CPP_IOIPSL"
365   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}"
366   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl"
367elif [[ $io == mix ]]
368then
369   # For now, xios implies also using ioipsl
370   CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS"
371   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}"
372   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios"
373elif [[ $io == xios ]]
374then
375   # For now, xios implies also using ioipsl
376   CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS CPP_IOIPSL_NO_OUTPUT"
377   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}"
378   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios"
379fi
380
381if [[ "$cosp" == "true" ]]
382then
383   CPP_KEY="$CPP_KEY CPP_COSP"
384   COSP_PATH="$LIBFGCM/cosp"
385#   LIB="${LIB} -l${LIBPREFIX}cosp"
386fi
387
388# for Titan (but could be used by others as well), there is also "chimtitan"
389if [[ -d ${LIBFGCM}/chim${physique} ]]
390then
391   CHEM_PATH="${LIBFGCM}/chim${physique}"
392   INCLUDE="$INCLUDE -I${LIBFGCM}/chim${physique}"
393fi
394
395# for Mars (but could be used by others as well), there is also "aeronomars"
396if [[ -d ${LIBFGCM}/aerono${physique} ]]
397then
398   AERONO_PATH="${LIBFGCM}/aerono${physique}"
399   INCLUDE="$INCLUDE -I${LIBFGCM}/aerono${physique}"
400fi
401
402INCLUDE="$INCLUDE ${NETCDF_INCDIR}"
403LIB="$LIB ${NETCDF_LIBDIR}"
404
405########################################################################
406# calcul du nombre de dimensions
407########################################################################
408
409
410dim_full=$dim
411dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
412set $dim
413dimc=$#
414echo calcul de la dimension
415echo dim $dim
416echo dimc $dimc
417
418
419########################################################################
420# Gestion des dimensions du modele.
421# on cree ou remplace le fichier des dimensions
422########################################################################
423
424cd $LIBFGCM/grid
425if [[ -f dimensions.h ]]
426then
427  echo 'ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs'
428  echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
429  echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
430  echo  vous pouvez continuer en repondant oui.
431  echo "Voulez-vous vraiment continuer?"
432  echo ""
433  echo "WARNING: you are probably already compiling the model somewhere else."
434  echo "Wait until the first compilation is finished before launching this one."
435  echo "If you are sure that you are not compiling elsewhere, just answer "
436  echo "yes (or 'oui') to the question below to proceed."
437  echo "Do you wish to continue?"
438  read reponse
439  if [[ $reponse == "oui" || $reponse == "yes" ]]
440  then
441    \rm -f $LIBFGCM/grid/dimensions.h
442  else
443    exit
444  fi
445fi
446
447
448cd $LIBFGCM/grid/dimension
449./makdim $dim
450if (($? != 0))
451then
452    exit 1
453fi
454
455cat $LIBFGCM/grid/dimensions.h
456cd $LMDGCM
457
458if [[ "$bands" != "" ]]
459then
460  # Generic model, recreate bands.h (IR & VIS bands for radiative transfer)
461  bands=$(echo $bands | sed -e 's/[^0-9]/ /g')
462  cd $LIBFGCM/phy$physique/bands
463  ./makbands $bands
464  cat $LIBFGCM/phy$physique/bands.h
465  cd $LMDGCM
466fi
467
468if [[ "$scatterers" != "" ]]
469then
470  # Generic model, recreate scatterers.h
471  cd $LIBFGCM/phy$physique/scatterers
472  ./make_scatterers $scatterers
473  cat $LIBFGCM/phy$physique/scatterers.h
474  cd $LMDGCM
475fi
476
477
478########################################################################
479# Differentes dynamiques (3d, 2d, 1d)
480########################################################################
481
482dimension=`echo $dim | wc -w`
483echo dimension $dimension
484
485if (( $dimension == 3 ))
486then
487  cd $LIBFGCM/grid
488  \rm fxyprim.h
489  cp -p fxy_${grille}.h fxyprim.h
490#else
491#  echo "Probleme dans les dimensions de la dynamique !!"
492#  echo "Non reactive pour l'instant !!!"
493fi
494
495if (( $dimension == 1 ))
496then
497  CPP_KEY="$CPP_KEY CPP_1D"
498##in 1D, add dyn3d to include path (because main prog is in physics)
499  INCLUDE="$INCLUDE -Ilibf/dyn3d -Ilibf/dyn3d_common"
500## no filtre in 1d:
501  FILTRE_PATH=$LMDGCM/.void_dir
502## no need to compile all routines in dyn3d_common either:
503  DYN_COMMON_PATH=$LMDGCM/.void_dir
504## no need to compile all routines in dynlmdz_phy... ;
505## (because key ones are included in 1D main program)
506  DYN_PHYS_PATH=$LMDGCM/.void_dir
507  DYN_PHYS_SUB_PATH=$LMDGCM/.void_dir
508fi
509
510######################################################################
511#   Traitement special pour le nouveau rayonnement de Laurent Li.
512#   ---> YM desactive pour le traitemement en parallele
513######################################################################
514
515#if [[ -f $libf/phy$physique/raddim.h ]]
516#then
517# if [[ -f $libf/phy$physique/raddim.$dimh.h ]]
518#then
519#  \rm -f $libf/phy$physique/raddim.h
520#  cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
521#  echo $libf/phy$physique/raddim.$dimh.h
522#  cat $libf/phy$physique/raddim.h
523# else
524#  echo On peut diminuer la taille de l executable en creant
525#  echo le fichier $libf/phy$physique/raddim.$dimh.h
526#  \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
527# fi
528#fi
529
530######################################################################
531# Gestion du filtre qui n'existe qu'en 3d.
532######################################################################
533
534if (( `expr $dimc \> 2` == 1 ))
535then
536   filtre="FILTRE=$filtre"
537else
538   filtre="FILTRE= L_FILTRE= "
539fi
540echo MACRO FILTRE $filtre
541
542echo $dimc
543
544
545
546######################################################################
547# Creation du suffixe de la configuration
548######################################################################
549
550
551SUFF_NAME=_${dim_full}
552SUFF_NAME=${SUFF_NAME}_phy${physique}
553
554if [[ "$parallel" != "none" ]]
555then
556  SUFF_NAME=${SUFF_NAME}_para
557  DYN=dyn${dimc}d${paramem}
558  if [[ "$paramem" == "mem" ]]
559  then
560   SUFF_NAME=${SUFF_NAME}_${paramem}
561  fi
562else
563  SUFF_NAME=${SUFF_NAME}_seq
564  if (( $dimension == 1 ))
565  then
566    # dynamics-related routines in"dyn1d" subdirectory of phy${physique}
567    DYN=phy${physique}/dyn1d
568  else
569    DYN=dyn${dimc}d
570  fi
571fi
572
573if [[ $veget != "false" ]]
574then
575  SUFF_NAME=${SUFF_NAME}_orch
576fi
577
578if [[ $couple != "false" ]]
579then
580  SUFF_NAME=${SUFF_NAME}_couple
581fi
582
583if [[ $chimie == "INCA" ]]
584then
585  SUFF_NAME=${SUFF_NAME}_inca
586fi
587
588cd $LMDGCM
589config_fcm="config.fcm"
590rm -f $config_fcm
591touch $config_fcm
592rm -f bin/${code}${SUFF_NAME}.e
593rm -f arch.fcm
594rm -f arch.opt
595
596echo "%ARCH          $arch"          >> $config_fcm
597echo "%INCDIR        $INCLUDE"       >> $config_fcm 
598echo "%LIB           $LIB"           >> $config_fcm
599echo "%ROOT_PATH     $PWD"           >> $config_fcm
600echo "%LIBF          $LIBFGCM"       >> $config_fcm
601echo "%LIBO          $LIBOGCM"       >> $config_fcm
602echo "%DYN           $DYN"           >> $config_fcm
603echo "%DYN_COMMON    $DYN_COMMON_PATH" >> $config_fcm
604echo "%PHY_COMMON    $PHY_COMMON_PATH" >> $config_fcm
605echo "%FILTRE        $FILTRE_PATH"   >> $config_fcm
606echo "%PHYS          phy${physique}" >> $config_fcm
607echo "%DYN_PHYS      $DYN_PHYS_PATH" >> $config_fcm
608echo "%DYN_PHYS_SUB  $DYN_PHYS_SUB_PATH" >> $config_fcm
609echo "%RRTM          $RRTM_PATH"     >> $config_fcm
610echo "%SISVAT        $SISVAT_PATH"   >> $config_fcm
611echo "%COSP          $COSP_PATH"     >> $config_fcm
612echo "%CHEM          $CHEM_PATH"     >> $config_fcm
613echo "%AERONO        $AERONO_PATH"   >> $config_fcm
614echo "%CPP_KEY       $CPP_KEY"       >> $config_fcm
615echo "%EXEC          $code"          >> $config_fcm
616echo "%SUFF_NAME     $SUFF_NAME"     >> $config_fcm
617echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> $config_fcm
618echo "%PARA_FFLAGS   $PARA_FFLAGS"   >> $config_fcm
619echo "%PARA_LD       $PARA_LD"       >> $config_fcm
620echo "%EXT_SRC       $EXT_SRC"       >> $config_fcm
621
622
623
624ln -s arch/arch-${arch}.fcm arch.fcm
625if test -f arch/arch-${arch}.opt &&  [ $compil_mod = "prod" ]
626  then
627  ln -s arch/arch-${arch}.opt arch.opt
628else
629  ln -s .void_file arch.opt
630fi
631
632
633rm -f $LIBOGCM/${arch}${SUFF_NAME}/.config/fcm.bld.lock
634./build_gcm ${fcm_path} -j $job $full
635
636rm -rf tmp_src
637rm -rf config
638ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config config
639ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config/tmp tmp_src
640
641
642if [[ -r $LIBFGCM/grid/dimensions.h ]]
643then
644  # Cleanup: remove dimension.h file
645  \rm -f $LIBFGCM/grid/dimensions.h
646fi
Note: See TracBrowser for help on using the repository browser.