source: trunk/LMDZ.MARS/makegcm @ 357

Last change on this file since 357 was 148, checked in by emillour, 13 years ago

Mars GCM:

Significant update on how the number of scatterers is managed:

Instead of having to manualy change 'nearkind' in dimradmars.h, the
number of scatterers must now be set when compiling, using makegcm
"makegcm -s 1" for one scatterer (dust) or "makegcm -s 2" (e.g. dust
and water ice), default behaviour (ie not specifying -s #) is -s 1
Modified phymars/dimradmars.h , added directory phymars/scatterers
with script make_scatterers , and adapted makegcm* scripts.

also removed some superfluous files (tmp, tmp77, ...).

EM

  • Property svn:executable set to *
File size: 23.2 KB
RevLine 
[38]1#!/bin/csh -f
2# $Header: /users/lmdz/cvsroot/LMDZ.3.3/makegcm,v 1.21 2001/07/04 08:41:44 lmdz Exp $
3#set verbose echo
4########################################################################
5# options par defaut pour la commande make
6########################################################################
7set dim="64x48x32"
8set physique=mars
9set phys="PHYS=$physique"
10set include='-I$(LIBF)/grid -I$(LIBF)/bibio -I. -I$(LIBF)/aeronomars'
11set ntrac = 1
12set filtre=filtrez
13set grille=reg
14set dyntype="dyn"
[148]15set scatterers="1"
[38]16########################################################################
17# path a changer contenant les sources et les objets du modele
18########################################################################
19
20#### If you want you can set environment variables here (instead of
21####  relying on the C-shell environment variables)
22# default LMDGCM to where makegcm script is located:
23#setenv LMDGCM "`dirname $0`"
24# You may set LIBOGCM to something else; otherwise we default to:
25#setenv LIBOGCM $LMDGCM/libo
26## NetCDF Libraries: what follows is OK for LMD 32 and 64bit Linux Machines
27#if ( `uname -m` == "x86_64" ) then
28## 64 bit machines
29#  setenv NCDFLIB /donnees/emlmd/netcdf64-4.0.1_pgi/lib
30#  setenv NCDFINC /donnees/emlmd/netcdf64-4.0.1_pgi/include
31#else
32#  setenv NCDFLIB /donnees/emlmd/netcdf-4.0.1_pgi/lib
33#  setenv NCDFINC /donnees/emlmd/netcdf-4.0.1_pgi/include
34#endif
35####
36
37
38setenv localdir "`pwd`"
39set MODIPSL=0
40echo $localdir | grep modipsl >& /dev/null
41if ( ! $status ) then
42  set MODIPSL=1
43  setenv LMDGCM $localdir
44  cd ../..
45  setenv LIBOGCM "`pwd`/lib"
46  cd $localdir
47  if ( `hostname` == rhodes ) then
48    set NCDFINC=`grep sxnec ../../util/AA_make.gdef| grep NCDF_INC|sed -e "s/^.* =//"`
49    set NCDFLIB=`grep sxnec ../../util/AA_make.gdef| grep NCDF_LIB|sed -e 's/^.* =//'`
50  else
51    if ( `hostname` == nymphea0 ) then
52      set NCDFINC=`grep fjvpp ../../util/AA_make.gdef| grep NCDF_INC|sed -e "s/^.* =//"`
53      set NCDFLIB=`grep fjvpp ../../util/AA_make.gdef| grep NCDF_LIB|sed -e 's/^.* =//'`
54    else
55      echo 'Probleme de definition des variables NCDFINC et NCDFLIB'
56    endif
57  endif
58else
59  if ( ! $?LMDGCM ) then
60    echo You must initialize the variable LMDGCM in your environnement
61    echo for instance: "setenv LMDGCM /usr/myself/supergcm" in .cshrc
62    exit
63  endif
64  if ( ! $?LIBOGCM ) then
65    set LIBOGCM=$LMDGCM/libo
66  endif
67  if ( ! $?NCDFLIB ) then
68    echo You must initialize the variable NCDFLIB in your environnement
69    echo for instance: "setenv NCDFLIB /usr/myself/netcdf" in .cshrc
70    exit
71  endif
72  if ( ! $?NCDFINC ) then
73    echo You must initialize the variable NCDFINC in your environnement
74    echo for instance: "setenv NCDFINC /usr/myself/netcdf" in .cshrc
75    exit
76  endif
77endif
78set model=$LMDGCM
79set libo=$LIBOGCM
80
81########################################################################
82#  Les differentes platformes reconnues
83########################################################################
84
85set HP=0
86set IBM=0
87set SUN=0
88set VPP=0
89set CRAY=0
90set DEC=0
91set LINUX=0
92set NEC=0
93set XNEC=0
94if ( `uname` == HP-UX ) then
95   set machine=HP
96   set HP=1
97else if (`uname` == UNIX_System_V ) then
98   set machine=VPP
99   set VPP=1
100else if (`uname` == SunOS ) then
101   set machine=SUN
102   set SUN=1
103else if ( `uname` == AIX ) then
104   set machine=IBM
105   set IBM=1
106else if ( `uname` == OSF1 ) then
107   set machine=ALPHA
108   set DEC=1
109else if ( `uname` == Linux ) then
110   set machine=LINUX
111   set LINUX=1
112else if ( `hostname` == atlas || `hostname` == axis  || `hostname` == etoile ) then
113   set machine=CRAY
114   set CRAY=1
115else if ( `uname` == SUPER-UX ) then
116   set machine=NEC
117   set NEC=1
118else if ( `hostname` == rhodes) then
119   set machine=XNEC
120   set XNEC=1
121else
122   echo Vous travaillez sur une machine non prevue par le reglement
123   exit
124endif
125
126# create $libo directory if it doesn't exist
127if ( ! -d $libo )  then
128   mkdir $libo
129endif
130
131if $VPP then
132set netcdf=netcdf_v
133else
134set netcdf=netcdf
135endif
136########################################################################
137#  Quelques initialisations de variables du shell.
138########################################################################
139
140set dyn=
141set opt_link=""
142set adjnt=""
143set opt_dep=""
144
145set optim90=""
146set oplink=""
147
148########################################################################
149#  Optimisations par defaut suivant les machines
150########################################################################
151
152echo "Optimisations par defaut suivant les machines"
153set libf=$model/libf
154#setenv localdir "LOCAL_DIR=`pwd`"
155#setenv localdir "`pwd`"
156cd $model
157if $CRAY then
158   set optim90="-Wp'-P' -DCRAY "'-p$(LIBO) -eiv '
159   set oplink="-Wl'-DSTACK=128 -f indef' -L$NCDFLIB -lnetcdf "
160   set mod_loc_dir=" "
161   set mod_suffix=" "
162else if $SUN then
163   set optim90=" -fast"
164   set optimtru90=" -fast -free"
165   set opt_link="-L$NCDFLIB -lnetcdf"
166   set mod_loc_dir=$localdir
167   set mod_suffix=mod
168else if $HP then
169else if $IBM then
170else if $VPP then
171   set optim90="$optim -X9 -w"
172   if $COUPLE then
173     set opt_link="-Wg,-c $IOIPSLDIR/liboasis2.4_mpi2.a /usr/lang/mpi2/lib64/libmpi.a /usr/lang/mpi2/lib64/libmp.a /usr/local/lib/lib64/libnetcdf_cc.a -L$IOIPSLDIR -lioipsl"
174     set oplink="-Wl,-t,-P,-dy "
175   else
176     set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc.a -L$IOIPSLDIR -lioipsl"
177     set oplink="-Wl,-t,-dy "
178   endif
179   set mod_loc_dir=$IOIPSLDIR
180   set mod_suffix=mod
181else if $DEC then
182else if $LINUX then
183#   set optim90=" -fast"
184#   set optimtru90=" -fast -c -Mfree "
185   set optim=" -O2 -Munroll -Mcache_align "
186   set optim90=" -O2 -Munroll -Mcache_align "
187   set optimtru90=" -O2 -Munroll -Mcache_align "
188#   set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -Wl,-Bstatic "
189# Ehouarn: there is no /usr/local/pgi/linux86/lib, but it doesn't matter
190#          also changed -Wl,-Bstatic to -Bstatic
191##   set opt_link=" -Mfree -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -Bstatic "
192#   set opt_link=" -L$NCDFLIB -lnetcdf -r"
193   set opt_link=" -L$NCDFLIB -lnetcdf"
194   set mod_loc_dir=$localdir
195   set mod_suffix=mod
196else if $NEC then
197   set optim90=' -clear -C hopt -float0 -ew -P static -Wf,"-pvctl fullmsg noassume "'
198   set optimtru90=' -clear -f4 -C hopt -float0 -ew -P static -Wf,"-pvctl fullmsg noassume "'
199###   set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lioipsl  -L/u/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v "
200   set opt_link=" -C hopt -float0 -ew -P static -L/SX/usr/local/lib  -lnetcdf_i8r8 "
201   set mod_loc_dir="."
202   set mod_suffix="mod"
203else if $XNEC then
204   set optim90=' -clear -R5 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
205   set optimtru90=' -clear -R5 -f4 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
206   if $MODIPSL then
207     if $COUPLE then
208       set opt_link="-L$IOIPSLDIR -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static -I$NCDFINC $NCDFLIB "
209     else
210       set opt_link="-L$IOIPSLDIR -lsxioipsl -float0 -ew -P static -I$NCDFINC $NCDFLIB "
211     endif
212     set mod_loc_dir="./"
213   else
214####     set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lsxioipsl -L /u/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v -I$NCDFINC -L/SX/usr/local/lib -lnetcdf_i8r8"
215     set opt_link=" -C hopt -float0 -ew -P static -I$NCDFINC -L/SX/usr/local/lib -lnetcdf_i8r8"
216     set mod_loc_dir="."
217   endif
218   set mod_suffix="mod"
219
220endif
221
222set nomlib=$machine
223
224# Impose distinct name for 64 bit Linux machines (to avoid mixing 32 and 64)
225if (`uname` == Linux && `uname -m` == "x86_64") then
226  set nomlib=${machine}64
227endif
228
229########################################################################
230# lecture des options de mymake
231########################################################################
232
233top:
234if ($#argv > 0) then
235    switch ($1:q)
236
237    case -h:
238
239########################################################################
240# Manuel en ligne
241########################################################################
242more <<eod
243
244
245makegcm [Options] prog
246
247
248The makegcm script:
249-------------------
250
2511. compiles a series of subroutines located in the $LMDGCM/libf
252 sub-directories.
253 The objects are then stored in the libraries in $LIBOGCM.
254
2552. then, makegcm compiles program prog.f located by default in
256$LMDGCM/libf/dyn3d and makes the link with the libraries.
257
258Environment Variables '$LMDGCM' and '$LIBOGCM'
259 must be set as environment variables or directly
260 in the makegcm file.
261
262The makegcm command is used to control the different versions of the model
263 in parallel, compiled using the compilation options
264 and the various dimensions, without having to recompile the whole model.
265
266The FORTRAN libraries are stored in directory $LIBOGCM.
267
268
269OPTIONS:
270--------
271
272The following options can either be defined by default by editing the
273makegcm "script", or in interactive mode:
274
275-d imxjmxlm  where im, jm, and lm are the number of longitudes,
276             latitudes and vertical layers respectively.
277
278-t ntrac   Selects the number of tracers present in the model
279
280             Options -d and -t overwrite file
281             $LMDGCM/libf/grid/dimensions.h
282             which contains the 3 dimensions of the
283             horizontal grid
284             im, jm, lm plus the number of tracers passively advected
285             by the dynamics ntrac,
286             in 4 PARAMETER FORTRAN format
287             with a new file:
288             $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac
289             If the file does not exist already
290             it is created by the script
291             $LMDGCM/libf/grid/dimension/makdim
292
[148]293-s nscat   Number of radiatively active scatterers
294
[38]295-p PHYS    Selects the set of physical parameterizations
296           you want to compile the model with.
297           The model is then compiled using the physical
298           parameterization sources in directory:
299            $LMDGCM/libf/phyPHYS
300
301-g grille  Selects the grid type.
302           This option overwrites file
303           $LMDGCM/libf/grid/fxyprim.h
304           with file
305           $LMDGCM/libf/grid/fxy_grille.h
306           the grid can take the following values:
307           1. reg - the regular grid
308           2. sin - to obtain equidistant points in terms of sin(latitude)
309           3. new - to zoom into a part of the globe
310
311-O "compilation options" set of fortran compilation options to use
312
313-include path
314           Used if the subroutines contain #include files (ccp) that
315           are located in directories that are not referenced by default.
316
317-adjnt     Compiles the adjoint model to the dynamical code.
318
319-olddyn    To compile GCM with "old dynamics"
320
321-filtre  filter
322           To select the longitudinal filter in the polar regions.
323           "filter" corresponds to the name of a directory located in
324           $LMDGCM/libf. The standard filter for the model is "filtrez"
325           which can be used for a regular grid and for a 
326           grid with longitudinal zoom.
327
328-link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..."
329           Adds a link to FORTRAN libraries
330           libfile1.a, libfile2.a ...
331           located in directories dir1, dir2 ...respectively
332           If dirn is a directory with an automatic path
333           (/usr/lib ... for example)
334           there is no need to specify  -Ldirn.
335
336eod
337exit
338
339########################################################################
340# Lecture des differentes options
341########################################################################
342
343    case -d:
344        set dim=$2 ; shift ; shift ; goto top
345                       
346    case -O:
347        set optim="$2" ; set optim90="$2" ; set optimtru90="$2" ; shift ; shift ; goto top
348
349     case -p
350        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
351
[148]352     case -s
353        set scatterers="$2" ; shift ; goto top
354
[38]355     case -g
356        set grille="$2" ; shift ; shift ; goto top
357
358     case -t
359        set ntrac=$2 ; shift ; shift ; goto top
360
361     case -include
362        set include="$include -I$2" ; shift ; shift ; goto top
363
364     case -adjnt
365        set opt_dep="$opt_dep adjnt" ; set adjnt="-ladjnt -ldyn3d "
366
367     case -olddyn
368        set dyntype="olddyn" ; shift; goto top
369
370     case -filtre
371        set filtre=$2 ; shift ; shift ; goto top
372
373     case -link
374        set opt_link="$opt_link $2" ; shift ; shift ; goto top
375
376     case -debug
377        if $HP then
378           set optim90=" -g "
379        else if $SUN then
380           setenv PARALLEL 4
381           set optim90=" -g -C "
382           set optimtru90=" -g -C "
383        else if $CRAY then
384           set optim90="$optim90"" -G1 "
385        else if $LINUX then
386           set optim="-g -Mbounds -Kieee -Ktrap=fp -traceback"
387           set optim90="-g -Mbounds -Kieee -Ktrap=fp -traceback"
388           set optimtru90="-g -Mbounds -Kieee -Ktrap=fp -traceback"
389        else
390           echo "pas d option debug predefinie pour cette machine"
391           exit
392        endif
393        shift ; goto top
394
395     default
396        set code="$1" ; shift ; goto top
397
398   endsw
399endif
400
401echo "apres les opts dim $dim"
402
403########################################################################
404# cas special sans physique
405########################################################################
406if ( "$physique" == 'nophys' ) then
407   set phys="L_PHY= LIBPHY="
408endif
409
410########################################################################
411# choix du nombre de traceur par defaut si il n'a pas ete choisi,
412# suivant la physique
413########################################################################
414
415if ( $ntrac == 0  ) then
416    if ( "$physique" == 'nophys' ) then
417        set ntrac=1
418    else if ( "$physique" == 'lmd' ) then
419        set ntrac=2
420    else if ( "$physique" == 'lmd_test_li' ) then
421        set ntrac=2
422    else if ( "$physique" == 'ec' ) then
423        set ntrac=1
424    else
425        set ntrac = 1
426    endif
427endif
428
429########################################################################
430#subtilites sur le nom de la librairie
431########################################################################
432
433\rm tmp ; touch tmp
434\rm tmp90 ; touch tmp90
435foreach i ( $optim90 )
436   echo $i | sed -e 's/\"//g' -e "s/\'//g" -e 's/-//g' -e 's/://g' -e 's/=//g' -e 's/%//g' >> tmp
437end
438set suf=
439foreach i ( `sort tmp | uniq ` )
440   set suf=$suf$i
441end
442if ( ! $IBM ) then
443   set nomlib="$nomlib$suf"
444endif
445if ( $DEC ) then
446   set nomlib=DEC
447endif
448
449# dimension
450
451echo "dimension avant sed $dim"
452if ( $IBM ) then
453   set dim=`echo $dim | sed -en 's/[^0-9]/ /g'`
454   set dim_=`echo $dim | sed -en 's/[^0-9]/_/g'`
455else if ( $SUN || $XNEC ) then
456   set dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
457   set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
458else
459#   set dim=`echo $dim | sed -n -e 's/[^0-9]/ /gp'`
460#   set dim_=`echo $dim | sed -n -e 's/[^0-9]/_/gp'`
461     set dim=`echo $dim | sed -e 's/[^0-9]/ /g'`
462     set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
463endif
464
465# build final name of libraries directory:
466if ( "$dyntype" == "olddyn" ) then
[148]467  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn
[38]468else
[148]469  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}
[38]470endif
471
472# Append 'physique' type, if it is not mars, to nomlib
473if ( "$physique" != "mars" ) then
474  set nomlib=${nomlib}_${physique}
475endif
476
477## M-A-F nomlib trop long sur CRAY pour ar
478if ( $CRAY ) then
479    set nomlib=F90_${dim_}_t${ntrac}
480endif
481if ( $NEC || $XNEC ) then
482    set nomlib=F90_${dim_}_t${ntrac}
483endif
484
485echo "calcul de la dimension"
486set dimc=`echo $dim | wc -w`
487
488if ( "$dimc" == "2" ) then
489  set include="$include "'-I$(LIBF)/dyn2d '
490  set dimh=$dim
491else
492  if ( "$dyntype" == "olddyn" ) then
493    set include="$include "'-I$(LIBF)/olddyn3d '
494  else
495    set include="$include "'-I$(LIBF)/dyn3d '
496  endif
497  set dimh=`echo $dim | awk ' { print $1 "." $2 } '`
498endif
499echo "dimc is $dimc"
500
501########################################################################
502# path pour les #include
503########################################################################
504
505set include="$include -I$NCDFINC "
506echo $include
507
508########################################################################
509# Gestion des dimensions du modele.
510# on cree ou remplace le fichier des dimensions/nombre de traceur
511########################################################################
512
513cd $libf/grid
514if ( -f dimensions.h ) then
[148]515  echo "WARNING: you are probably already compiling the model (perhaps"
516  echo " elsewhere). Wait until the first compilation ends before "
517  echo " compiling a different configuration."
518  echo "If you are sure that you are not already compiling, then you"
519  echo " may continue this compilation by answering yes."
520  echo "Do you want to continue?"
521  if ( $< == "yes" ) then
[38]522    #remove old dimensions.h file
523    \rm -f $libf/grid/dimensions.h
[148]524    #remove old scatterers.h file
525    \rm -f $libf/phymars/scatterers.h
[38]526  else
527    exit
528  endif
529endif
530
531# Build the appropriate 'dimensions.h' file
532cd dimension
533./makdim $ntrac $dim
534# echo contents of dimensions.h to standard output
535cat $libf/grid/dimensions.h
536
[148]537cd $libf/phymars/scatterers
538# Build the appropriate 'scatterers.h' file
539./make_scatterers $scatterers
540# echo contents of scatterers.h to standard output
541cat $libf/phymars/scatterers.h
542
[38]543cd $LMDGCM
544# set path to objects directory
545set libo=$libo/$nomlib
546# create objects directory, if it doesn't exist
547if ( ! -d $libo )  then
548   mkdir $libo
549   cd $model
550endif
551
552########################################################################
553# Differentes dynamiques (3d, 2d, 1d)
554########################################################################
555
556set dimension=`echo $dim | wc -w`
557echo dimension $dimension dim $dim
558if ( $dimension == 1 ) then
559  echo pas de dynamique
560  set dyn="L_DYN= DYN= L_FILTRE= DIRMAIN=phy$physique "
561endif
562endif
563
564cd $model
565if ( $dimension == 3 ) then
566  cd libf/grid
567  \rm fxyprim.h
568  cp -p fxy_${grille}.h fxyprim.h
569endif
570
571######################################################################
572#   Traitement special pour le nouveau rayonnement de Laurent Li.
573######################################################################
574
575if ( -f $libf/phy$physique/raddim.h ) then
576  if ( -f $libf/phy$physique/raddim.$dimh.h ) then
577    \rm $libf/phy$physique/raddim.h
578    cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
579    echo $libf/phy$physique/raddim.$dimh.h
580    cat $libf/phy$physique/raddim.$dimh.h
581    cat $libf/phy$physique/raddim.h
582  else
583    echo On peut diminuer la taille de l executable en creant
584    echo le fichier $libf/phy$physique/raddim.$dimh.h
585    \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
586  endif
587endif
588
589######################################################################
590# Gestion du filtre qui n'existe qu'en 3d.
591######################################################################
592
593# set filtre to 'oldfiltrez' if using -olddyn option
594if ( "$dyntype" == "olddyn" ) then
595  set filtre="oldfiltrez"
596endif
597
598if ( `expr $dimc \> 2` == 1 ) then
599   set filtre="FILTRE=$filtre"
600else
601   set filtre="FILTRE= L_FILTRE= "
602endif
603echo "MACRO FILTRE $filtre"
604
605echo "dimc $dimc"
606
607########################################################################
608#  Avant de lancer le make, on recree le makefile si necessaire
609########################################################################
610# c'est a dire dans 3 cas:
611# 1. si la liste des fichiers .F et .h a ete modifiee depuis la
612#    derniere creation du makefile
613# 2. si le fichier contenant cette liste "liste_des_sources"
614#    n'existe pas.
615# 3. Si le makefile n'existe pas.
616########################################################################
617
618cd $model
619find libf -name '*.[Fh]' -print >! tmp77
620#find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print >! tmp90
621find libf -name '*.[Fh]90' -print >> tmp90
622
623if (    `diff tmp77 liste_des_sources_f77 | wc -w` \
624     || `diff tmp90 liste_des_sources_f90 | wc -w` \
625     || ! -f makefile \
626     || ! -f liste_des_sources_f90 \
627     || ! -f liste_des_sources_f77 ) then
628        echo "les fichiers suivants ont ete crees ou detruits"
629        echo "ou les fichiers suivants sont passes ou ne sont plus en Fortran 90"
630        diff liste_des_sources_f77 tmp77
631        diff liste_des_sources_f90 tmp90
632        \cp tmp77 liste_des_sources_f77
633        \cp tmp90 liste_des_sources_f90
634        echo "On recree le makefile"
635        if ("$dyntype" == "olddyn") then
636          ./create_make_gcm olddyn3d grid bibio aeronomars phy$physique >! tmp
637        else
638          ./create_make_gcm dyn3d grid bibio aeronomars phy$physique >! tmp
639        endif
640        \mv tmp makefile
641        echo "Nouveau makefile cree."
642endif
643
644########################################################################
645#  Execution de la comande make
646########################################################################
647
648echo PHYSIQUE $phys
649echo dynamique $dyn $dimension
650echo OPTIM90="$optim90" $filtre LIBO=$libo $dyn PHYS=$phys DIM=$dimc PROG=$code
651echo PATH pour les fichiers INCLUDE $include
652echo OPLINK="$oplink"
653
654if $HP then
655   set f77='fort77 +OP'
656   set f90='jensaisrien'
657   set opt_link="$opt_link -lm"
658else  if $VPP then
659   set f77=frt
660   set f90=$f77
661else if $CRAY then
662   set f77=f90
663   set f90=f90
664else if $LINUX then
665   set f77=pgf95
666   set f90=pgf95
667else if $SUN then
668   set f77=f90
669   set f90=f90
670else if $NEC then
671   set f77=f90
672   set f90=f90
673else if $XNEC then
674   set f77=sxmpif90
675   set f90=sxmpif90
676else
677   set f77=f77
678   set f90=f90
679endif
680
681cd $model
682
683if $VPP then
684  set make="gmake RANLIB=ls"
685else if $CRAY then
686  set make="make RANLIB=ls"
687else if $NEC then
688  set make="make RANLIB=ls"
689else if $LINUX then
690  set make="make -k RANLIB=ranlib"
691else if $XNEC then
692  set make="/usr/local/bin/gmake RANLIB=ls"
693  set make="/usr/freeware/bin/gmake RANLIB=ls"
694else
695  set make="make RANLIB=ranlib"
696endif
697
698set include="$include"" -I$libf/phy$physique"
699
700
701#################################################################
702# Execution de la comande make... ENFIN!
703#################################################################
704
705if $VPP then
706  set optim90=" $optim90 -Am -M$libo"
707  set optimtru90="$optim90"
708else if $SUN then
709 set optim90=" $optim90 -M$libo"
710 set optimtru90=" $optimtru90 "
711else if $NEC then
712 set optim90=" $optim90 -I$libo "
713else if $XNEC then
714 set optim90=" $optim90 -I$libo "
715 set optimtru90=" $optimtru90 -I$libo "
716else if $LINUX then
717 set optim="$optim -module $libo"
718 set optim90="$optim90 -module $libo"
719 set optimtru90="$optimtru90 -module $libo"
720# Ehouarn: remove set mod_loc_dir def below; mod_loc_dir=$localdir (set above)
721# set mod_loc_dir=$libo
722endif
723
724set link="$f90 $optim90"
725
726set ar=ar
727
728if $XNEC then
729  set link="sxld $opt_link"
730  set link="$f90 "
731#  set ar=sxar
732endif
733
734
735cd $localdir
736
737echo $make -f $LMDGCM/makefile \
738OPTION_DEP="$opt_dep" OPTION_LINK="$opt_link" \
739OPTIM="$optim" \
740OPTIM90="$optim90" \
741OPTIMTRU90="$optimtru90" \
742INCLUDE="$include" \
743$filtre \
744LIBO=$libo \
745$dyn \
746$phys \
747DIM=$dimc \
748DYNTYPE="$dyntype" \
749L_ADJNT="$adjnt" \
750LOCAL_DIR="$localdir"  \
751F77="$f77" \
752F90="$f90" \
753OPLINK="$oplink" \
754LINK="$link" \
755GCM="$LMDGCM" \
756MOD_LOC_DIR=$mod_loc_dir \
757MOD_SUFFIX=$mod_suffix \
758AR=$ar \
759PROG=$code
760
761
762$make -f $LMDGCM/makefile \
763OPTION_DEP="$opt_dep" OPTION_LINK="$opt_link" \
764OPTIM="$optim" \
765OPTIM90="$optim90" \
766OPTIMTRU90="$optimtru90" \
767INCLUDE="$include" \
768$filtre \
769LIBO=$libo \
770$dyn \
771$phys \
772DIM=$dimc \
773DYNTYPE="$dyntype" \
774L_ADJNT="$adjnt" \
775LOCAL_DIR="$localdir"  \
776F77="$f77" \
777F90="$f90" \
778OPLINK="$oplink" \
779LINK="$link" \
780GCM="$LMDGCM" \
781MOD_LOC_DIR=$mod_loc_dir \
782MOD_SUFFIX=$mod_suffix \
783AR=$ar \
784PROG=$code
785
[148]786# cleanup, remove dimensions.h and scatterers.h
787\rm -f $libf/grid/dimensions.h
788\rm -f $libf/phymars/scatterers.h
Note: See TracBrowser for help on using the repository browser.