source: trunk/LMDZ.COMMON/makelmdz_fcm @ 1486

Last change on this file since 1486 was 1441, checked in by emillour, 10 years ago

Updates in common dynamics (seq and ) to keep up with updates
in LMDZ5 (up to LMDZ5 trunk, rev 2250):

  • compilation:
  • added test in grid/dimension/makdim to check that # of longitudes is a multiple of 8
  • dyn3d_common:

Bug correction concerning zoom (cf LMDZ5 rev 2218)

  • coefpoly.F becomes coefpoly_m.F90 (in misc)
  • fxhyp.F => fxhyp_m.F90 , fyhyp.F => fyhyp_m.F90
  • new routines for zoom: invert_zoom_x_m.F90 and principal_cshift_m.F90
  • inigeom.F adapted to new zoom definition routines
  • fluxstokenc.F : got rid of calls to initial0()
  • dyn3d:
  • advtrac.F90 : got rid of calls to initial0()
  • conf_gcm.F90 : cosmetic changes and change in default dzoomx,dzoomy values
  • guide_mod.F90 : followed updates from Earth Model
  • gcm.F is now gcm.F90
  • dyn3dpar:
  • advtrac_p.F90, covcont_p.F90, mod_hallo.F90 : cosmetic changes
  • conf_gcm.F90 : cosmetic and changed in default dzoomx,dzoomy values
  • parallel_lmdz.F90 : updates to keep up with Earth model
  • misc:
  • arth.F90 becomes arth_m.F90
  • wxios.F90 updated wrt Earth model changes
  • nrtype.F90 and coefpoly_m.F90 added
  • ran1.F, sort.F, minmax.F, minmax2.F, juldate.F moved over from dyn3d_common

EM

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