source: dynamico_lmdz/aquaplanet/LMDZ5_old/makelmdz_fcm @ 4193

Last change on this file since 4193 was 3980, checked in by dubos, 8 years ago

Fixed LMDZ5 compilation on Curie

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