source: LMDZ5/trunk/makelmdz_fcm @ 2576

Last change on this file since 2576 was 2417, checked in by Ehouarn Millour, 9 years ago

Change dynamics/physics interface directory name from dynlonlat_phylonlat to dynphy_lonlat.
EM

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