source: LMDZ5/branches/testing/makelmdz @ 1859

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

Version testing basee sur la r1794


Testing release based on r1794

  • Property svn:executable set to *
File size: 18.6 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="par"
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
353if [[ "$veget" == "orchidee2.0" ]]
354then
355# orchidee2.0 :
356# Compile with ORCHIDEE 2.0 (or more recent)
357   CPP_KEY="$CPP_KEY CPP_VEGET"
358   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
359   LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}orchidee "
360elif [[ "$veget" == "orchidee1.9" ]]
361then
362# orchidee1.9 :
363# Compile with ORCHIDEE version up to the inclusion of OpenMP in ORCHIDEE : tag 1.9-1.9.5(version AR5)-1.9.6
364   CPP_KEY="$CPP_KEY CPP_VEGET ORCHIDEE_NOOPENMP"
365   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
366   LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}sechiba -l${LIBPREFIX}parameters -l${LIBPREFIX}stomate -l${LIBPREFIX}parallel -l${LIBPREFIX}orglob"
367elif [[ "$veget" == "true" ]]
368then
369# true :
370# Obsolete, for backward compatibility. To be used with ORCHIDEE tag 1.9-1.9.6
371# For this case, cpp flag ORCHIDEE_NOOPENMP must be added to the makelmdz_fcm arguments
372   CPP_KEY="$CPP_KEY CPP_VEGET"
373   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
374   LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}sechiba -l${LIBPREFIX}parameters -l${LIBPREFIX}stomate -l${LIBPREFIX}parallel -l${LIBPREFIX}orglob"
375elif [[ "$veget" != "false" ]]
376then
377   echo "Option -v $veget does not exist"
378   echo "Use ./makelmdz -h for more information"
379   exit 
380fi
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
455dimension=`echo $dim | wc -w`
456echo dimension $dimension
457
458if (( $dimension == 3 ))
459then
460  cd $LIBFGCM/grid
461  \rm fxyprim.h
462  cp -p fxy_${grille}.h fxyprim.h
463else
464  echo "Probleme dans les dimensions de la dynamique !!"
465  echo "Non reactive pour l'instant !!!"
466fi
467
468######################################################################
469# Gestion du filtre qui n'existe qu'en 3d.
470######################################################################
471
472if (( `expr $dimc \> 2` == 1 ))
473then
474   filtre="FILTRE=$filtre"
475else
476   filtre="FILTRE= L_FILTRE= "
477fi
478echo MACRO FILTRE $filtre
479
480echo $dimc
481
482######################################################################
483# Creation du suffixe de la configuration
484######################################################################
485
486
487SUFF_NAME=_${dim_full}
488SUFF_NAME=${SUFF_NAME}_phy${physique}
489
490if [[ "$parallel" != "none" ]]
491then
492  SUFF_NAME=${SUFF_NAME}_para
493  DYN=dyn${dimc}d${paramem}
494  if [[ "$paramem" == "mem" ]]
495  then
496   SUFF_NAME=${SUFF_NAME}_${paramem}
497  fi
498else
499  SUFF_NAME=${SUFF_NAME}_seq
500  DYN=dyn${dimc}d
501fi
502
503if [[ $veget != "false" ]]
504then
505  SUFF_NAME=${SUFF_NAME}_orch
506fi
507
508if [[ $couple != "false" ]]
509then
510  SUFF_NAME=${SUFF_NAME}_couple
511fi
512
513if [[ $chimie == "INCA" ]]
514then
515  SUFF_NAME=${SUFF_NAME}_inca
516fi
517
518cd $LMDGCM
519
520
521########################################################################
522#  Avant de lancer le make, on recree le makefile si necessaire
523########################################################################
524########################################################################
525# c'est a dire dans 3 cas:
526# 1. si la liste des fichiers .F et .h a ete modifiee depuis la
527#    derniere creation du makefile
528# 2. si le fichier contenant cette liste "liste_des_sources"
529#    n'existe pas.
530# 3. Si le makefile n'existe pas.
531########################################################################
532cd $LMDGCM
533find libf -name '*.[Fh]' -print > tmp77
534find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90
535find libf -name '*.[Fh90]' -print >> tmp90
536
537if [[ ! ( -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 ]]
538then
539  echo "les fichiers suivants ont ete crees ou detruits"
540  echo "ou les fichiers suivants sont passes ou ne sont plus en Fortran 90"
541  diff liste_des_sources_f77 tmp77
542  diff liste_des_sources_f90 tmp90
543  \cp -f tmp77 liste_des_sources_f77
544  \cp -f tmp90 liste_des_sources_f90
545  echo "on recree le makefile"
546  ./create_make_gcm > tmp
547  \mv -f tmp makefile
548  echo "Nouveau makefile cree"
549fi
550
551#################################################################
552# Preparation de l'execution de la comande make
553#################################################################
554
555source_code=${code}.F
556if [[ -r $LMDGCM/libf/dyn${dimc}d${FLAG_PARA}/${code}.F90 ]]
557then
558  source_code=${code}.F90
559fi
560
561# library directory name:
562if [[ "$parallel" == "none" ]]
563then 
564  nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}
565else
566  nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}_${FLAG_PARA}
567fi
568
569if [[ ! -d "${LIBOGCM}/${nomlib}" ]]
570then
571  mkdir ${LIBOGCM}/${nomlib}
572  # check we indeed managed to create the directory
573  if [[ ! $? ]]
574  then
575    echo "Error: could not create directory ${LIBOGCM}/${nomlib}"
576    exit
577  fi
578fi
579
580# where module files are created
581mod_loc_dir=$localdir
582
583if [[ "$physique" != "nophys" ]]
584then
585  INCLUDE="$INCLUDE"' -I$(LIBF)/phy'"$physique"
586fi
587INCLUDE="$INCLUDE"' -I$(LIBF)/dyn'${dimc}'d'$FLAG_PARA' -I'${LIBOGCM}/${nomlib}
588
589# ranlib utility (check it exists or else default to ls)
590if [[ `which ranlib > /dev/null 2>&1 ; echo $?` -eq 0 ]]
591then
592  ranlib="ranlib"
593else
594  ranlib="ls"
595fi
596
597# add CPP keys to COMPIL_FLAGS
598# (but first add -D before all CPP_KEY items)
599cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-D&/g'`
600# (but add a -WF,-D before all CPP_KEY items) => for xlf on Vargas
601if [[ "${fcompiler:0:3}" == "xlf" ]]
602then
603cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-WF,-D&/g'`
604fi
605COMPIL_FFLAGS="${COMPIL_FFLAGS} ${cpp_definitions}"
606
607#################################################################
608# Execution du make
609#################################################################
610echo $makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
611OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
612OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
613OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
614OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
615INCLUDE="$INCLUDE" \
616$filtre \
617LIBO=${LIBOGCM}/${nomlib} \
618"PHYS=$physique" \
619DIM=$dimc \
620FLAG_PARA=$FLAG_PARA \
621L_ADJNT=$adjnt \
622L_COSP="$lcosp" \
623L_CHIMIE="$libchimie" \
624LOCAL_DIR="$localdir"  \
625F77="$fcompiler" \
626F90="$fcompiler" \
627OPLINK="$LIB" \
628LINK="$linker" \
629GCM="$LMDGCM" \
630MOD_LOC_DIR=$mod_loc_dir \
631MOD_SUFFIX="mod" \
632AR=$arcommand \
633SOURCE=$source_code \
634PROG=$code
635
636$makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
637OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
638OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
639OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
640OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
641INCLUDE="$INCLUDE" \
642$filtre \
643LIBO=${LIBOGCM}/${nomlib} \
644"PHYS=$physique" \
645DIM=$dimc \
646FLAG_PARA=$FLAG_PARA \
647L_ADJNT="$adjnt" \
648L_COSP="$lcosp" \
649L_CHIMIE="$libchimie" \
650LOCAL_DIR="$localdir"  \
651F77="$fcompiler" \
652F90="$fcompiler" \
653OPLINK="$LIB" \
654LINK="$linker" \
655GCM="$LMDGCM" \
656MOD_LOC_DIR=$mod_loc_dir \
657MOD_SUFFIX="mod" \
658AR=$arcommand \
659SOURCE=$source_code \
660PROG=$code
661
662if [[ -r $LIBFGCM/grid/dimensions.h ]]
663then
664  # Cleanup: remove dimension.h file
665  \rm -f $LIBFGCM/grid/dimensions.h
666fi
Note: See TracBrowser for help on using the repository browser.