source: trunk/LMDZ.COMMON/makelmdz @ 937

Last change on this file since 937 was 887, checked in by slebonnois, 12 years ago

SL: add rcm1d tool in Venus and Titan physics to run the code in 1D, and associated small modifications

  • Property svn:executable set to *
File size: 18.3 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
21compil_mod=prod
22io=ioipsl
23LIBPREFIX=""
24fcm_path=none
25cosp=false
26dyn=""
27
28# guess a default 'arch'
29arch="g95" # start with assuming we're on a Linux/Unix machine with g95
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=""
91ccompiler=""
92OPTIMC=""
93INCLUDEC=""
94
95########################################################################
96# lecture des options
97########################################################################
98
99while (($# > 0))
100  do
101  case $1 in
102      "-h") cat <<fin
103manuel complet sur http://...
104Usage :
105makegcm [options] exec
106[-h]                       : manuel abrege
107[-d [[IMx]JMx]LM]          : IM, JM, LM sont les dims en x, y, z (def: $dim)
108[-p PHYS]                  : compilation avec la physique libf/phyPHYS, (def: lmd)
109[-prod / -dev / -debug]    : compilation en mode production (default) / developpement / debug .
110[-c false/MPI1/MPI2]       : couple ocean : MPI1/MPI2/false (def: false)
111[-v false/true]            : avec ou sans vegetation (def: false)
112[-chimie INCA/false]       : avec ou sans modele de chimie INCA (def: false)
113[-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp
114[-g GRI]                   : conf. grille dans dyn3d/GRI_xy.h  (def: reg inclue un zoom)
115[-io IO]                   : choix d une librairie I/O, experts (def: ioipsl)
116[-include INCLUDES]        : variables supplementaires pour include
117[-cpp CPP_KEY]             : cle cpp supplementaires
118[-adjnt]                   : adjoint, a remettre en route ...
119[-filtre NOMFILTRE]        : prend le filtre dans libf/NOMFILTRE (def: filtrez)
120[-link LINKS]              : liens optionels avec d autres librairies
121[-ext_src path]            : chemin d un repertoire source avec des sources externe a compiler avec le modele
122[-arch nom_arch]           : nom de l architecture cible
123 exec                      : executable genere
124fin
125          exit;;
126      "-d")
127          dim=$2 ; shift ; shift ;;
128     
129      "-O")
130          echo "option obsolete dans ce makegcm"
131          exit;;
132
133      "-p")
134          physique="$2" ;  shift ; shift ;;
135
136      "-g")
137          grille="$2" ; shift ; shift ;;
138
139      "-c")
140          couple="$2" ; shift ; shift ;;
141
142      "-prod")
143          compil_mod="prod" ; shift ;;
144
145      "-dev")
146          compil_mod="dev" ; shift ;;
147
148      "-debug")
149          compil_mod="debug" ; shift ;;
150
151      "-io")
152          io="$2" ; shift ; shift ;;
153
154      "-v")
155          veget="$2" ; shift ; shift ;;
156
157      "-chimie")
158          chimie="$2" ; shift ; shift ;;
159
160      "-parallel")
161          parallel="$2" ; shift ; shift ;;
162     
163      "-include")
164          INCLUDE="$INCLUDE -I$2" ; shift ; shift ;;
165
166      "-cpp")
167          CPP_KEY="$CPP_KEY $2" ; shift ; shift ;;
168
169      "-adjnt")
170          echo "option a reactiver ";exit
171          opt_dep="$opt_dep adjnt" ; adjnt="-ladjnt -ldyn3d "
172          optim="$optim -Dadj" ; shift ;;
173
174      "-cosp")
175          cosp="$2" ; shift ; shift ;;
176
177      "-filtre")
178          filtre=$2 ; shift ; shift ;;
179
180      "-link")
181          LIB="$LIB $2" ; shift ; shift ;;
182
183      "-fcm_path")
184          fcm_path=$2 ; shift ; shift ;;
185
186      "-ext_src")
187          EXT_SRC=$2 ; shift ; shift ;;
188
189      "-arch")
190          arch=$2 ; shift ; shift ;;
191
192      *)
193          code="$1" ; shift ;;
194  esac
195done
196
197###############################################################
198# lecture des chemins propres à l'architecture de la machine #
199###############################################################
200rm -f .void_file
201echo > .void_file
202rm -rf .void_dir
203mkdir .void_dir
204rm -f arch.path
205if [[ -r arch/arch-${arch}.path ]]
206then
207  ln -s arch/arch-${arch}.path ./arch.path
208  source arch.path
209else
210  echo "Error: missing arch/arch-${arch}.path file !"
211  exit
212fi
213rm -f arch.fcm
214if [[ -r arch/arch-${arch}.fcm ]]
215then
216  ln -s arch/arch-${arch}.fcm arch.fcm
217else
218  echo "Error: missing arch/arch-${arch}.fcm file !"
219  exit
220fi
221########################################################################
222# Definition des clefs CPP, des chemins des includes et modules
223#  et des libraries
224########################################################################
225
226# basic compile flags from arch.fcm file
227archfileline=$( grep -i '^%BASE_FFLAGS' arch.fcm )
228COMPIL_FFLAGS=$( echo ${archfileline##%BASE_FFLAGS} )
229
230# other compile flags, depending on compilation mode
231if [[ "$compil_mod" == "prod" ]]
232then
233## read COMPIL_FFLAGS from arch.fcm file
234  archfileline=$( grep -i '^%PROD_FFLAGS' arch.fcm )
235  archfileopt=$( echo ${archfileline##%PROD_FFLAGS} )
236  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
237elif [[ "$compil_mod" == "dev" ]]
238then
239## read %DEV_FFLAGS from arch.fcm file
240  archfileline=$( grep -i '^%DEV_FFLAGS' arch.fcm )
241  archfileopt=$( echo ${archfileline##%DEV_FFLAGS} )
242  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
243elif [[ "$compil_mod" == "debug" ]]
244then
245## read %DEBUG_FFLAGS from arch.fcm file
246  archfileline=$( grep -i '^%DEBUG_FFLAGS' arch.fcm )
247  archfileopt=$( echo ${archfileline##%DEBUG_FFLAGS} )
248  COMPIL_FFLAGS="${COMPIL_FFLAGS} ${archfileopt}"
249fi
250
251# add CPP_KEY defined in arch.fcm file
252archfileline=$( grep -i '^%FPP_DEF' arch.fcm )
253archfileopt=$( echo ${archfileline##%FPP_DEF} )
254CPP_KEY="$CPP_KEY ${archfileopt}"
255
256# get compiler name from arch.fcm file
257archfileline=$( grep -i '^%COMPILER' arch.fcm )
258fcompiler=$( echo ${archfileline##%COMPILER} )
259
260# get linker name from arch.fcm file
261archfileline=$( grep -i '^%LINK' arch.fcm )
262linker=$( echo ${archfileline##%LINK} )
263
264# get ar command from arch.fcm file
265archfileline=$( grep -i '^%AR' arch.fcm )
266arcommand=$( echo ${archfileline##%AR} )
267
268# get make utility from arch.fcm file
269archfileline=$( grep -i '^%MAKE' arch.fcm )
270makecommand=$( echo ${archfileline##%MAKE} )
271
272# get basic libraries to link with arch.fcm file
273archfileline=$( grep -i '^%BASE_LD' arch.fcm )
274archfileopt=$( echo ${archfileline##%BASE_LD} )
275LIB="$LIB  ${archfileopt}"
276
277if [[ "$physique" != "nophys" ]]
278then
279   CPP_KEY="$CPP_KEY CPP_PHYS"
280fi
281
282if [[ "$physique" == "lmd" ]]
283then
284   #Default planet type is Earth
285   CPP_KEY="$CPP_KEY CPP_EARTH"
286fi
287
288######### CAS PARTICULIER CHIMIE TITAN
289if [[ "$physique" == "titan" ]]
290then
291   INCLUDE="$INCLUDE"' -I$(LIBF)/chim'"$physique"
292   LIB="$LIB -l${LIBPREFIX}chim$physique"
293   opt_dep="$opt_dep chim$physique"
294# get C compiler name and optim from arch.fcm file
295   archfileline=$( grep -i '^%C_COMPILER' arch.fcm )
296   ccompiler=$( echo ${archfileline##%C_COMPILER} )
297   archfileline=$( grep -i '^%C_OPTIM' arch.fcm )
298   coptim=$( echo ${archfileline##%C_OPTIM} )
299   OPTIMC="$OPTIMC  ${coptim}"
300   INCLUDEC='-I$(LIBF)/grid -I.'
301fi
302#########
303
304if [[ "$chimie" == "INCA" ]]
305then
306   CPP_KEY="$CPP_KEY INCA"
307   INCLUDE="$INCLUDE -I${INCA_INCDIR}"
308   LIB="$LIB -L${INCA_LIBDIR} -lchimie"
309   libchimie=" -L${INCA_LIBDIR} -lchimie"
310fi
311
312if [[ "$couple" != "false" ]]
313then
314   CPP_KEY="$CPP_KEY CPP_COUPLE"
315   INCLUDE="$INCLUDE -I${OASIS_INCDIR}"
316   LIB="$LIB -L${OASIS_LIBDIR} -lpsmile.${couple} -lmpp_io"
317fi
318
319if [[ "$parallel" == "none" ]]
320then
321  FLAG_PARA=''
322else
323  FLAG_PARA="par"
324fi
325
326if [[ "$parallel" == "mpi" ]]
327then
328   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI"
329  # MPI additional compilation options
330  archfileline=$( grep -i '^%MPI_FFLAGS' arch.fcm )
331  PARA_FFLAGS=$( echo ${archfileline##%MPI_FFLAGS} )
332  # MPI additional links
333  archfileline=$( grep -i '^%MPI_LD' arch.fcm )
334  PARA_LD=$( echo ${archfileline##%MPI_LD} )
335elif [[ "$parallel" == "omp" ]]
336then
337   CPP_KEY="$CPP_KEY CPP_PARA CPP_OMP"
338  # OMP additional compilation options
339  archfileline=$( grep -i '^%OMP_FFLAGS' arch.fcm )
340  PARA_FFLAGS=$( echo ${archfileline##%OMP_FFLAGS} )
341  # OMP additional links
342  archfileline=$( grep -i '^%OMP_LD' arch.fcm )
343  PARA_LD=$( echo ${archfileline##%OMP_LD} )
344elif [[ "$parallel" == "mpi_omp" ]]
345then
346   CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI CPP_OMP"
347  # MPI additional compilation options
348  archfileline=$( grep -i '^%MPI_FFLAGS' arch.fcm )
349  PARA_FFLAGS=$( echo ${archfileline##%MPI_FFLAGS} )
350  # OMP additional compilation options
351  archfileline=$( grep -i '^%OMP_FFLAGS' arch.fcm )
352  PARA_FFLAGS="${PARA_FFLAGS} "$( echo $archfileopt ${archfileline##%OMP_FFLAGS} )
353  # MPI additional links
354  archfileline=$( grep -i '^%MPI_LD' arch.fcm )
355  PARA_LD=$( echo ${archfileline##%MPI_LD} )
356  # OMP additional links
357  archfileline=$( grep -i '^%OMP_LD' arch.fcm )
358  PARA_LD="${PARA_LD} "$( echo $archfileopt ${archfileline##%OMP_LD} )
359fi
360
361if [[ ( "$parallel" == "omp" || "$parallel" == "mpi_omp" ) \
362   && "$compil_mod" == "debug" ]]
363then
364    echo "Usually, parallelization with OpenMP requires some optimization."
365    echo "We suggest switching to \"-dev\"."
366fi
367
368if [[ "$veget" == "true" ]]
369then
370   CPP_KEY="$CPP_KEY CPP_VEGET"
371   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
372   LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}sechiba -l${LIBPREFIX}parameters -l${LIBPREFIX}stomate -l${LIBPREFIX}parallel -l${LIBPREFIX}orglob"
373fi
374
375if [[ $io == ioipsl ]]
376then
377   CPP_KEY="$CPP_KEY CPP_IOIPSL"
378   INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}"
379   LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl"
380fi
381
382if [[ "$cosp" == "true" ]]
383then
384   CPP_KEY="$CPP_KEY CPP_COSP"
385   COSP_PATH="$LIBFGCM/cosp"
386#   LIB="${LIB} -l${LIBPREFIX}cosp"
387   opt_dep="$opt_dep cosp"
388   lcosp="-l${LIBPREFIX}cosp"
389   INCLUDE="$INCLUDE"' -I$(LIBF)/cosp'
390fi
391
392INCLUDE="$INCLUDE ${NETCDF_INCDIR}"
393LIB="$LIB ${NETCDF_LIBDIR}"
394
395########################################################################
396# calcul du nombre de dimensions
397########################################################################
398
399
400dim_full=$dim
401dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
402set $dim
403dimc=$#
404echo calcul de la dimension
405echo dim $dim
406echo dimc $dimc
407
408
409########################################################################
410# Gestion des dimensions du modele.
411# on cree ou remplace le fichier des dimensions
412########################################################################
413
414cd $LIBFGCM/grid/dimension
415./makdim $dim
416cat $LIBFGCM/grid/dimensions.h
417cd $LMDGCM
418
419
420########################################################################
421# Differentes dynamiques (3d, 2d, 1d)
422########################################################################
423
424dimension=`echo $dim | wc -w`
425echo dimension $dimension
426
427if (( $dimension == 3 ))
428then
429  cd $LIBFGCM/grid
430  \rm fxyprim.h
431  cp -p fxy_${grille}.h fxyprim.h
432#else
433#  echo "Probleme dans les dimensions de la dynamique !!"
434#  echo "Non reactive pour l'instant !!!"
435fi
436if (( $dimension == 1 ))
437then
438  echo pas de dynamique
439  dyn="DYN= L_DYN=-ldyn3d "
440fi
441
442######################################################################
443# Gestion du filtre qui n'existe qu'en 3d.
444######################################################################
445
446if (( `expr $dimc \> 2` == 1 ))
447then
448   filtre="FILTRE=$filtre"
449else
450   filtre="FILTRE= L_FILTRE= "
451fi
452echo MACRO FILTRE $filtre
453
454echo $dimc
455
456######################################################################
457# Creation du suffixe de la configuration
458######################################################################
459
460
461SUFF_NAME=_${dim_full}
462SUFF_NAME=${SUFF_NAME}_phy${physique}
463
464if [[ "$parallel" != "none" ]]
465then
466  SUFF_NAME=${SUFF_NAME}_para
467else
468  SUFF_NAME=${SUFF_NAME}_seq
469fi
470
471if [[ $veget == "true" ]]
472then
473  SUFF_NAME=${SUFF_NAME}_orch
474fi
475
476if [[ $couple != "false" ]]
477then
478  SUFF_NAME=${SUFF_NAME}_couple
479fi
480
481if [[ $chimie == "INCA" ]]
482then
483  SUFF_NAME=${SUFF_NAME}_inca
484fi
485
486cd $LMDGCM
487
488
489########################################################################
490#  Avant de lancer le make, on recree le makefile si necessaire
491########################################################################
492########################################################################
493# c'est a dire dans 3 cas:
494# 1. si la liste des fichiers .F et .h a ete modifiee depuis la
495#    derniere creation du makefile
496# 2. si le fichier contenant cette liste "liste_des_sources"
497#    n'existe pas.
498# 3. Si le makefile n'existe pas.
499########################################################################
500cd $LMDGCM
501find libf -name '*.[Fh]' -print > tmp77
502find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90
503find libf -name '*.[Fh90]' -print >> tmp90
504######### CAS PARTICULIER CHIMIE TITAN
505if [[ "$physique" == "titan" ]]
506then 
507  find libf -name '*.[ch]' -print > tmpC
508fi
509#########
510
511if [[ ! ( -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 ]]
512then
513  echo "les fichiers suivants ont ete crees ou detruits"
514  echo "ou les fichiers suivants sont passes ou ne sont plus en Fortran 90"
515  diff liste_des_sources_f77 tmp77
516  diff liste_des_sources_f90 tmp90
517  \cp -f tmp77 liste_des_sources_f77
518  \cp -f tmp90 liste_des_sources_f90
519######### CAS PARTICULIER CHIMIE TITAN
520  if [[ "$physique" == "titan" ]]
521  then 
522  diff liste_des_sources_C tmpC
523  \cp -f tmpC liste_des_sources_C
524  fi
525#########
526  echo "on recree le makefile"
527  ./create_make_gcm > tmp
528  \mv -f tmp makefile
529  echo "Nouveau makefile cree"
530######### CAS PARTICULIER CHIMIE TITAN
531else if [[ "$physique" == "titan" ]]
532 then
533   if [[ ! ( -r liste_des_sources_C ) || ` diff tmpC liste_des_sources_C | wc -w ` -ne 0 ]]
534   then
535     diff liste_des_sources_C tmpC
536     \cp -f tmpC liste_des_sources_C
537     echo "on recree le makefile"
538     ./create_make_gcm > tmp
539     \mv -f tmp makefile
540     echo "Nouveau makefile cree"
541   fi
542 fi
543#########
544fi
545
546#################################################################
547# Preparation de l'execution de la commande make
548#################################################################
549
550# find code suffix and directory where code is located
551if [[ -r $LMDGCM/libf/dyn${dimc}d${FLAG_PARA}/${code}.F ]]
552then
553  source_code=${code}.F
554  code_dir=dyn${dimc}d${FLAG_PARA}
555else
556  if [[ -r $LMDGCM/libf/dyn${dimc}d${FLAG_PARA}/${code}.F90 ]]
557  then
558    source_code=${code}.F90
559    code_dir=dyn${dimc}d${FLAG_PARA}
560  else
561    if [[ -r $LMDGCM/libf/phy${physique}/${code}.F ]]
562    then
563      source_code=${code}.F
564      code_dir=phy${physique}
565    else
566      # last possibility:
567      if [[ -r $LMDGCM/libf/phy${physique}/${code}.F90 ]]
568      then
569        source_code=${code}.F90
570        code_dir=phy${physique}
571      else
572        echo "Error: cannot find ${code}.F[90]"
573        echo " neither in dyn${dimc}d${FLAG_PARA} nor in phy${physique}"
574        exit
575      fi
576    fi
577  fi
578fi
579
580# library directory name:
581if [[ "$parallel" == "none" ]]
582then 
583  nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}
584else
585  nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}_${FLAG_PARA}
586fi
587
588if [[ ! -d "${LIBOGCM}/${nomlib}" ]]
589then
590  mkdir ${LIBOGCM}/${nomlib}
591  # check we indeed managed to create the directory
592  if [[ ! $? ]]
593  then
594    echo "Error: could not create directory ${LIBOGCM}/${nomlib}"
595    exit
596  fi
597fi
598
599# where module files are created
600mod_loc_dir=$localdir
601
602if [[ "$physique" != "nophys" ]]
603then
604  INCLUDE="$INCLUDE"' -I$(LIBF)/phy'"$physique"
605fi
606if (( $dimension == 1 ))
607then
608 INCLUDE="$INCLUDE"' -I$(LIBF)/dyn3d -I'${LIBOGCM}/${nomlib}
609else
610 INCLUDE="$INCLUDE"' -I$(LIBF)/dyn'${dimc}'d'$FLAG_PARA' -I'${LIBOGCM}/${nomlib}
611fi
612
613# ranlib utility (check it exists or else default to ls)
614if [[ `which ranlib > /dev/null 2>&1 ; echo $?` -eq 0 ]]
615then
616  ranlib="ranlib"
617else
618  ranlib="ls"
619fi
620
621# add CPP keys to COMPIL_FLAGS
622# (but first add -D before all CPP_KEY items)
623cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-D&/g'`
624# (but add a -WF,-D before all CPP_KEY items) => for xlf on Vargas
625if [[ "${fcompiler:0:3}" == "xlf" ]]
626then
627cpp_definitions=`echo $CPP_KEY | sed -e 's/[A-Za-z_=0-9]*/-WF,-D&/g'`
628fi
629COMPIL_FFLAGS="${COMPIL_FFLAGS} ${cpp_definitions}"
630
631#################################################################
632# Execution du make
633#################################################################
634echo $makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
635OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
636OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
637OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
638OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
639OPTIMC="$optimc" \
640INCLUDE="$INCLUDE" \
641INCLUDEC="$includec" \
642$filtre \
643$dyn \
644LIBO=${LIBOGCM}/${nomlib} \
645PHYS=$physique \
646DIM=$dimc \
647FLAG_PARA=$FLAG_PARA \
648L_ADJNT=$adjnt \
649L_COSP="$lcosp" \
650L_CHIMIE="$libchimie" \
651LOCAL_DIR="$localdir"  \
652F77="$fcompiler" \
653F90="$fcompiler" \
654CCC="$ccompiler" \
655OPLINK="$LIB" \
656LINK="$linker" \
657GCM="$LMDGCM" \
658MOD_LOC_DIR=$mod_loc_dir \
659MOD_SUFFIX="mod" \
660AR=$arcommand \
661DIRMAIN=$code_dir \
662SOURCE=$source_code \
663PROG=$code
664
665$makecommand RANLIB=$ranlib -f $LMDGCM/makefile \
666OPTION_DEP="$opt_dep" OPTION_LINK="$LIB ${PARA_LD}" \
667OPTIM90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
668OPTIMTRU90="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
669OPTIM="${COMPIL_FFLAGS} ${PARA_FFLAGS}" \
670OPTIMC="$optimc" \
671INCLUDE="$INCLUDE" \
672INCLUDEC="$includec" \
673$filtre \
674$dyn \
675LIBO=${LIBOGCM}/${nomlib} \
676PHYS=$physique \
677DIM=$dimc \
678FLAG_PARA=$FLAG_PARA \
679L_ADJNT="$adjnt" \
680L_COSP="$lcosp" \
681L_CHIMIE="$libchimie" \
682LOCAL_DIR="$localdir"  \
683F77="$fcompiler" \
684F90="$fcompiler" \
685CCC="$ccompiler" \
686OPLINK="$LIB" \
687LINK="$linker" \
688GCM="$LMDGCM" \
689MOD_LOC_DIR=$mod_loc_dir \
690MOD_SUFFIX="mod" \
691AR=$arcommand \
692DIRMAIN=$code_dir \
693SOURCE=$source_code \
694PROG=$code
695
696if [[ -r $libf/grid/dimensions.h ]]
697then
698  # Cleanup: remove dimension.h file
699  \rm -f $libf/grid/dimensions.h
700fi
Note: See TracBrowser for help on using the repository browser.