source: LMDZ5/trunk/makelmdz @ 1810

Last change on this file since 1810 was 1810, checked in by Ehouarn Millour, 11 years ago

Updating makelmdz and create_makelmdz for :

1 parallelism
2 compilation with various versions of orchidee
3 compilation in 1D mode
4 some cleaning

Also some updates in dyn3dmem:
1 allocate_field_mod.f90 renamed allocate_field_mod.F90
2 module dimensions renamed dimensions_mod
3 module allocate_field renamed allocate_field

FH

  • Property svn:executable set to *
File size: 18.2 KB
Line 
1#!/bin/bash
2#
3# $Id$
4#
5#
6########################################################################
7# for debug, uncomment line below
8#set -xv
9########################################################################
10# options par defaut pour la commande make
11########################################################################
12dim="96x72x19"
13physique=lmd
14code=gcm
15filtre=filtrez
16grille=reg
17couple=false
18veget=false
19chimie=false
20parallel=none
21paramem="par"
22compil_mod=prod
23io=ioipsl
24LIBPREFIX=""
25fcm_path=none
26cosp=false
27
28# guess a default 'arch'
29arch="local" # start with assuming we're on a local machine with local arch file
30## try to recognise machine and infer arch from it
31machine=`hostname`
32if [[ "$machine" == "brodie" ]]
33then
34  arch="SX8_BRODIE"
35fi
36if [[ "${machine:0:6}" == "vargas" ]]
37then
38  arch="PW6_VARGAS"
39fi
40if [[ "${machine:0:6}" == "ciclad" ]]
41then
42  arch="AMD64_CICLAD"
43fi
44if [[ "${machine:0:7}" == "platine" ]]
45then
46  arch="IA64_PLATINE"
47fi
48if [[ "${machine:0:6}" == "titane" ]]
49then
50  arch="X64_TITANE"
51fi
52if [[ "${machine:0:8}" == "mercure1" ]]
53then
54  arch="SX8_MERCURE"
55fi
56if [[ "${machine:0:8}" == "mercure2" ]]
57then
58  arch="SX9_MERCURE"
59fi
60
61LMDGCM=`pwd -P`
62LIBFGCM=$LMDGCM/libf
63LIBOGCM=$LMDGCM/libo
64if [[ ! -d $LIBOGCM ]]
65then
66  # create the directory
67  mkdir $LIBOGCM
68  if [[ ! $? ]]
69  then
70  echo "Failed to create directory $LIBOGCM"
71  exit
72  fi
73fi
74COSP_PATH=$LMDGCM/.void_dir
75
76
77
78localdir=`pwd -P`
79########################################################################
80#  Quelques initialisations de variables du shell.
81########################################################################
82
83CPP_KEY="" 
84INCLUDE='-I$(LIBF)/grid -I$(LIBF)/bibio -I$(LIBF)/filtrez -I. '
85LIB=""
86adjnt=""
87##COMPIL_FFLAGS="%PROD_FFLAGS"
88PARA_FFLAGS=""
89PARA_LD=""
90EXT_SRC=""
91
92########################################################################
93# lecture des options
94########################################################################
95
96while (($# > 0))
97  do
98  case $1 in
99      "-h") cat <<fin
100Usage :
101makelmdz [options] -arch nom_arch exec
102[-h]                       : brief help
103[-d [[IMx]JMx]LM]          : IM, JM, LM are the dimensions in x, y, z (default: $dim)
104[-p PHYS]                  : set of physical parametrizations (in libf/phyPHYS), (default: lmd)
105[-prod / -dev / -debug]    : compilation mode production (default) / developement / debug
106[-c false/MPI1/MPI2]       : coupling with ocean model : MPI1/MPI2/false (default: false)
107[-v false/orchidee2.0/orchidee1.9/true] : version of the vegetation model to include (default: false)
108          false       : no vegetation model
109          orchidee2.0 : compile using ORCHIDEE 2.0 (or more recent version)
110          orchidee1.9 : compile using ORCHIDEE up to the version including OpenMP in ORCHIDEE : tag 1.9-1.9.5(version AR5)-1.9.6
111          true        : (obsolete; for backward compatibility) use ORCHIDEE tag 1.9-1.9.6
112[-chimie INCA/false]       : with INCA chemistry model or without (default: false)
113[-parallel none/mpi/omp/mpi_omp] : parallelism (default: none) : mpi, openmp or mixted mpi_openmp
114[-g GRI]                   : grid configuration in dyn3d/GRI_xy.h  (default: reg, inclues a zoom)
115[-io IO]                   : Input/Output library (default: ioipsl)
116[-include INCLUDES]        : extra include path to add
117[-cpp CPP_KEY]             : additional preprocessing definitions
118[-adjnt]                   : adjoint model, not operational ...
119[-mem]                     : reduced memory dynamics (if in parallel mode)
120[-filtre NOMFILTRE]        : use filtre from libf/NOMFILTRE (default: filtrez)
121[-link LINKS]              : additional links with other libraries
122[-fcm_path path]           : path to the fcm tool (default: tools/fcm/bin)
123[-ext_src path]            : path to an additional set of routines to compile with the model
124 -arch nom_arch            : target architecture
125 exec                      : executable to build
126fin
127          exit;;
128      "-d")
129          dim=$2 ; shift ; shift ;;
130     
131      "-p")
132          physique="$2" ;  shift ; shift ;;
133
134      "-g")
135          grille="$2" ; shift ; shift ;;
136
137      "-c")
138          couple="$2" ; shift ; shift ;;
139
140      "-prod")
141          compil_mod="prod" ; shift ;;
142
143      "-dev")
144          compil_mod="dev" ; shift ;;
145
146      "-debug")
147          compil_mod="debug" ; shift ;;
148
149      "-io")
150          io="$2" ; shift ; shift ;;
151
152      "-v")
153          veget="$2" ; shift ; shift ;;
154
155      "-chimie")
156          chimie="$2" ; shift ; shift ;;
157
158      "-parallel")
159          parallel="$2" ; shift ; shift ;;
160     
161      "-include")
162          INCLUDE="$INCLUDE -I$2" ; shift ; shift ;;
163
164      "-cpp")
165          CPP_KEY="$CPP_KEY $2" ; shift ; shift ;;
166
167      "-adjnt")
168          echo "not operational ... work to be done here ";exit
169          opt_dep="$opt_dep adjnt" ; adjnt="-ladjnt -ldyn3d "
170          optim="$optim -Dadj" ; shift ;;
171
172      "-cosp")
173          cosp="$2" ; shift ; shift ;;
174     
175      "-mem")
176          paramem="mem" ; shift ;;
177
178      "-filtre")
179          filtre=$2 ; shift ; shift ;;
180
181      "-link")
182          LIB="$LIB $2" ; shift ; shift ;;
183
184      "-fcm_path")
185          fcm_path=$2 ; shift ; shift ;;
186
187      "-ext_src")
188          EXT_SRC=$2 ; shift ; shift ;;
189
190      "-arch")
191          arch=$2 ; shift ; shift ;;
192
193      *)
194          code="$1" ; shift ;;
195  esac
196done
197
198###############################################################
199# lecture des chemins propres à l'architecture de la machine #
200###############################################################
201rm -f .void_file
202echo > .void_file
203rm -rf .void_dir
204mkdir .void_dir
205rm -f arch.path
206if [[ -r arch/arch-${arch}.path ]]
207then
208  ln -s arch/arch-${arch}.path ./arch.path
209  source arch.path
210else
211  echo "Error: missing arch/arch-${arch}.path file !"
212  exit
213fi
214rm -f arch.fcm
215if [[ -r arch/arch-${arch}.fcm ]]
216then
217  ln -s arch/arch-${arch}.fcm arch.fcm
218else
219  echo "Error: missing arch/arch-${arch}.fcm file !"
220  exit
221fi
222########################################################################
223# Definition des clefs CPP, des chemins des includes et modules
224#  et des libraries
225########################################################################
226
227# basic compile flags from arch.fcm file
228archfileline=$( grep -i '^%BASE_FFLAGS' arch.fcm )
229COMPIL_FFLAGS=$( echo ${archfileline##%BASE_FFLAGS} )
230
231# other compile flags, depending on compilation mode
232if [[ "$compil_mod" == "prod" ]]
233then
234## read COMPIL_FFLAGS from arch.fcm file
235  archfileline=$( grep -i '^%PROD_FFLAGS' arch.fcm )
236  archfileopt=$( echo ${archfileline##%PROD_FFLAGS} )
237  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
238elif [[ "$compil_mod" == "dev" ]]
239then
240## read %DEV_FFLAGS from arch.fcm file
241  archfileline=$( grep -i '^%DEV_FFLAGS' arch.fcm )
242  archfileopt=$( echo ${archfileline##%DEV_FFLAGS} )
243  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
244elif [[ "$compil_mod" == "debug" ]]
245then
246## read %DEBUG_FFLAGS from arch.fcm file
247  archfileline=$( grep -i '^%DEBUG_FFLAGS' arch.fcm )
248  archfileopt=$( echo ${archfileline##%DEBUG_FFLAGS} )
249  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
250fi
251
252# add CPP_KEY defined in arch.fcm file
253archfileline=$( grep -i '^%FPP_DEF' arch.fcm )
254archfileopt=$( echo ${archfileline##%FPP_DEF} )
255CPP_KEY="$CPP_KEY ${archfileopt}"
256
257# get compiler name from arch.fcm file
258archfileline=$( grep -i '^%COMPILER' arch.fcm )
259fcompiler=$( echo ${archfileline##%COMPILER} )
260
261# get linker name from arch.fcm file
262archfileline=$( grep -i '^%LINK' arch.fcm )
263linker=$( echo ${archfileline##%LINK} )
264
265# get ar command from arch.fcm file
266archfileline=$( grep -i '^%AR' arch.fcm )
267arcommand=$( echo ${archfileline##%AR} )
268
269# get make utility from arch.fcm file
270archfileline=$( grep -i '^%MAKE' arch.fcm )
271makecommand=$( echo ${archfileline##%MAKE} )
272
273# get basic libraries to link with arch.fcm file
274archfileline=$( grep -i '^%BASE_LD' arch.fcm )
275archfileopt=$( echo ${archfileline##%BASE_LD} )
276LIB="$LIB  ${archfileopt}"
277
278if [[ "$physique" != "nophys" ]]
279then
280   #We'll use some physics
281   CPP_KEY="$CPP_KEY CPP_PHYS"
282   if [[ "${physique:0:3}" == "lmd" ]]
283   then
284   #For lmd physics, default planet type is Earth
285   CPP_KEY="$CPP_KEY CPP_EARTH"
286   fi
287fi
288
289if [[ "$chimie" == "INCA" ]]
290then
291   CPP_KEY="$CPP_KEY INCA"
292   INCLUDE="$INCLUDE -I${INCA_INCDIR}"
293   LIB="$LIB -L${INCA_LIBDIR} -lchimie"
294   libchimie=" -L${INCA_LIBDIR} -lchimie"
295fi
296
297if [[ "$couple" != "false" ]]
298then
299   CPP_KEY="$CPP_KEY CPP_COUPLE"
300   INCLUDE="$INCLUDE -I${OASIS_INCDIR}"
301   LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.${couple} -lmpp_io"
302fi
303
304if [[ "$parallel" == "none" ]]
305then
306  FLAG_PARA=''
307else
308  FLAG_PARA="$paramem"
309fi
310
311if [[ "$parallel" == "mpi" ]]
312then
313   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI"
314  # MPI additional compilation options
315  archfileline=$( grep -i '^%MPI_FFLAGS' arch.fcm )
316  PARA_FFLAGS=$( echo ${archfileline##%MPI_FFLAGS} )
317  # MPI additional links
318  archfileline=$( grep -i '^%MPI_LD' arch.fcm )
319  PARA_LD=$( echo ${archfileline##%MPI_LD} )
320elif [[ "$parallel" == "omp" ]]
321then
322   CPP_KEY="$CPP_KEY CPP_PARA CPP_OMP"
323  # OMP additional compilation options
324  archfileline=$( grep -i '^%OMP_FFLAGS' arch.fcm )
325  PARA_FFLAGS=$( echo ${archfileline##%OMP_FFLAGS} )
326  # OMP additional links
327  archfileline=$( grep -i '^%OMP_LD' arch.fcm )
328  PARA_LD=$( echo ${archfileline##%OMP_LD} )
329elif [[ "$parallel" == "mpi_omp" ]]
330then
331   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI CPP_OMP"
332  # MPI additional compilation options
333  archfileline=$( grep -i '^%MPI_FFLAGS' arch.fcm )
334  PARA_FFLAGS=$( echo ${archfileline##%MPI_FFLAGS} )
335  # OMP additional compilation options
336  archfileline=$( grep -i '^%OMP_FFLAGS' arch.fcm )
337  PARA_FFLAGS="${PARA_FFLAGS} "$( echo $archfileopt ${archfileline##%OMP_FFLAGS} )
338  # MPI additional links
339  archfileline=$( grep -i '^%MPI_LD' arch.fcm )
340  PARA_LD=$( echo ${archfileline##%MPI_LD} )
341  # OMP additional links
342  archfileline=$( grep -i '^%OMP_LD' arch.fcm )
343  PARA_LD="${PARA_LD} "$( echo $archfileopt ${archfileline##%OMP_LD} )
344fi
345
346if [[ ( "$parallel" == "omp" || "$parallel" == "mpi_omp" ) \
347   && "$compil_mod" == "debug" ]]
348then
349    echo "Usually, parallelization with OpenMP requires some optimization."
350    echo "We suggest switching to \"-dev\"."
351fi
352
353
354#==============================================================================
355if [ "$veget" = "true" -o "$veget" = "orchidee1.9" -o "$veget" = "orchidee2.0" ]
356then
357
358   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
359   CPP_KEY="$CPP_KEY CPP_VEGET"
360# temporary, for Orchidee versions 1.9.* (before openmp activation)
361   if [[ "$veget" == "orchidee1.9" ]] ; then
362      CPP_KEY="$CPP_KEY ORCHIDEE_NOOPENMP"
363   fi
364   if [[ "$veget" == "orchidee2.0" ]] ; then
365      listlibs=orchidee
366   else
367      listlibs="sechiba parameters stomate parallel orglob"
368   fi
369   LIB="${LIB} -L${ORCH_LIBDIR}"
370   for lib in sechiba parameters stomate parallel orglob ; do
371      if [ -f ${ORCH_LIBDIR}/lib${LIBPREFIX}$lib.a ] ; then
372         LIB="${LIB} -l${LIBPREFIX}$lib "
373      fi
374   done
375elif [[ "$veget" != "false" ]] ; then
376   echo "Option -v $veget does not exist"
377   echo "Use ./makelmdz -h for more information"
378   exit 
379fi
380
381#===============================================================================
382if [[ $io == ioipsl ]]
383then
384   CPP_KEY="$CPP_KEY CPP_IOIPSL"
385   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}"
386   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl"
387fi
388
389if [[ "$cosp" == "true" ]]
390then
391   CPP_KEY="$CPP_KEY CPP_COSP"
392   COSP_PATH="$LIBFGCM/cosp"
393#   LIB="${LIB} -l${LIBPREFIX}cosp"
394   opt_dep="$opt_dep cosp"
395   lcosp="-l${LIBPREFIX}cosp"
396   INCLUDE="$INCLUDE"' -I$(LIBF)/cosp'
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
447cat $LIBFGCM/grid/dimensions.h
448cd $LMDGCM
449
450
451########################################################################
452# Differentes dynamiques (3d, 2d, 1d)
453########################################################################
454
455if (( $dimc == 3 )) ; then
456   cd $LIBFGCM/grid
457   \rm fxyprim.h
458   cp -p fxy_${grille}.h fxyprim.h
459   filtre="FILTRE=$filtre"
460   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d${FLAG_PARA} '
461elif (( $dimc == 2 )) ; then
462   filtre="FILTRE= L_FILTRE= "
463   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn2d'
464elif (( $dimc == 1 )) ; then
465   filtre="L_DYN= DYN= FILTRE= L_FILTRE= DIRMAIN=phy$physique "
466   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d' # Pas tres propre
467else
468   echo Dimension dimc=$dimc pas prevu ; exit
469fi
470
471######################################################################
472# Creation du suffixe de la configuration
473######################################################################
474
475SUFF_NAME=_${dim_full}
476SUFF_NAME=${SUFF_NAME}_phy${physique}
477
478if [[ "$parallel" != "none" ]]
479then
480  SUFF_NAME=${SUFF_NAME}_para
481  DYN=dyn${dimc}d${paramem}
482  if [[ "$paramem" == "mem" ]]
483  then
484   SUFF_NAME=${SUFF_NAME}_${paramem}
485  fi
486else
487  SUFF_NAME=${SUFF_NAME}_seq
488  DYN=dyn${dimc}d
489fi
490
491if [[ $veget != "false" ]]
492then
493  SUFF_NAME=${SUFF_NAME}_orch
494fi
495
496if [[ $couple != "false" ]]
497then
498  SUFF_NAME=${SUFF_NAME}_couple
499fi
500
501if [[ $chimie == "INCA" ]]
502then
503  SUFF_NAME=${SUFF_NAME}_inca
504fi
505
506cd $LMDGCM
507
508
509########################################################################
510#  Avant de lancer le make, on recree le makefile si necessaire
511########################################################################
512########################################################################
513# c'est a dire dans 3 cas:
514# 1. si la liste des fichiers .F et .h a ete modifiee depuis la
515#    derniere creation du makefile
516# 2. si le fichier contenant cette liste "liste_des_sources"
517#    n'existe pas.
518# 3. Si le makefile n'existe pas.
519########################################################################
520cd $LMDGCM
521
522find libf -name '*.[Fh]' -print > tmp77
523find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90
524find libf -name '*.[Fh90]' -print >> tmp90
525
526if [[ ! ( -r makefile ) || ! ( -r liste_des_sources_f90 ) || ! ( -r liste_des_sources_f77 ) || ` diff tmp77 liste_des_sources_f77 | wc -w ` -ne 0 || ` diff tmp90 liste_des_sources_f90 | wc -w ` -ne 0 ]]
527then
528  echo "les fichiers suivants ont ete crees ou detruits"
529  echo "ou les fichiers suivants sont passes ou ne sont plus en Fortran 90"
530  diff liste_des_sources_f77 tmp77
531  diff liste_des_sources_f90 tmp90
532  \cp -f tmp77 liste_des_sources_f77
533  \cp -f tmp90 liste_des_sources_f90
534  echo "on recree le makefile"
535  ./create_make_gcm > tmp
536  \mv -f tmp makefile
537  echo "Nouveau makefile cree"
538fi
539
540#################################################################
541# Preparation de l'execution de la comande make
542#################################################################
543
544source_code=${code}.F
545if [[ -r $LMDGCM/libf/dyn${dimc}d${FLAG_PARA}/${code}.F90 ]]
546then
547  source_code=${code}.F90
548fi
549
550# library directory name:
551nomlib=`echo ${arch}_${physique}_${dim_full}_${grille}_${compil_mod}_parall${parallel}_${CPP_KEY}_${FLAG_PARA} | sed -e 's/ //g' -e 's/-//g ' | sed -e 's/CPP_//g'`
552echo $nomlib
553
554if [[ ! -d "${LIBOGCM}/${nomlib}" ]]
555then
556  mkdir ${LIBOGCM}/${nomlib}
557  # check we indeed managed to create the directory
558  if [[ ! $? ]]
559  then
560    echo "Error: could not create directory ${LIBOGCM}/${nomlib}"
561    exit
562  fi
563fi
564
565# where module files are created
566mod_loc_dir=$localdir
567
568if [[ "$physique" != "nophys" ]]
569then
570  INCLUDE="$INCLUDE"' -I$(LIBF)/phy'"$physique"
571fi
572INCLUDE="$INCLUDE"' -I'${LIBOGCM}/${nomlib}
573
574# ranlib utility (check it exists or else default to ls)
575if [[ `which ranlib > /dev/null 2>&1 ; echo $?` -eq 0 ]]
576then
577  ranlib="ranlib"
578else
579  ranlib="ls"
580fi
581
582# add CPP keys to COMPIL_FLAGS
583# (but first add -D before all CPP_KEY items)
584cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-D&/g'`
585# (but add a -WF,-D before all CPP_KEY items) => for xlf on Vargas
586if [[ "${fcompiler:0:3}" == "xlf" ]]
587then
588cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-WF,-D&/g'`
589fi
590COMPIL_FFLAGS="${COMPIL_FFLAGS} ${cpp_definitions}"
591
592#################################################################
593# Execution du make
594#################################################################
595echo $makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
596OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
597OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
598OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
599OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
600INCLUDE="$INCLUDE" \
601$filtre \
602LIBO=${LIBOGCM}/${nomlib} \
603"PHYS=$physique" \
604DIM=$dimc \
605FLAG_PARA=$FLAG_PARA \
606L_ADJNT=$adjnt \
607L_COSP="$lcosp" \
608L_CHIMIE="$libchimie" \
609LOCAL_DIR="$localdir"  \
610F77="$fcompiler" \
611F90="$fcompiler" \
612OPLINK="$LIB" \
613LINK="$linker" \
614GCM="$LMDGCM" \
615MOD_LOC_DIR=$mod_loc_dir \
616MOD_SUFFIX="mod" \
617AR=$arcommand \
618SOURCE=$source_code \
619PROG=$code
620
621$makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
622OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
623OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
624OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
625OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
626INCLUDE="$INCLUDE" \
627$filtre \
628LIBO=${LIBOGCM}/${nomlib} \
629"PHYS=$physique" \
630DIM=$dimc \
631FLAG_PARA=$FLAG_PARA \
632L_ADJNT=$adjnt \
633L_COSP="$lcosp" \
634L_CHIMIE="$libchimie" \
635LOCAL_DIR="$localdir"  \
636F77="$fcompiler" \
637F90="$fcompiler" \
638OPLINK="$LIB" \
639LINK="$linker" \
640GCM="$LMDGCM" \
641MOD_LOC_DIR=$mod_loc_dir \
642MOD_SUFFIX="mod" \
643AR=$arcommand \
644SOURCE=$source_code \
645PROG=$code
646
647
648if [[ -r $LIBFGCM/grid/dimensions.h ]]
649then
650  # Cleanup: remove dimension.h file
651  \rm -f $LIBFGCM/grid/dimensions.h
652fi
Note: See TracBrowser for help on using the repository browser.