source: LMDZ5/branches/LF-private/makelmdz @ 5423

Last change on this file since 5423 was 1873, checked in by Laurent Fairhead, 11 years ago

Pour faire les liens avec la FFT sur ada


Setting up link to FFT library on machine ada

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