source: trunk/WRF.COMMON/WRFV2/mars_lmd/makegcm_ifort

Last change on this file was 69, checked in by aslmd, 14 years ago

README-000-svn: quelques ajouts

LMD_MM_MARS: serie de changements mineurs

A 0 mesoscale/TESTS/TESTCONVEC.tar.gz
ajout cas test convection bubble [tests nuages CO2]

A 0 mesoscale/LMD_MM_MARS/SIMU/deftank/POLAR_NEST_appere.tar.gz
M 68 mesoscale/LMD_MM_MARS/SRC/WPS/wps_mars/geogrid/GEOGRID.TBL.ARW_Mars
A 0 mesoscale/LMD_MM_MARS/SRC/WPS/wps_mars/geogrid/GEOGRID.TBL.ARW_Mars_POLARTESTS
ajout def avec 3 nests dans les regions polaires
changement de GEOGRID.TBL pour prendre en compte valeurs manquantes polaires pour ALB et TI

M 68 mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars/compile
M 68 mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars/myGCM/launch_gcm
M 68 mesoscale/LMDZ.MARS/myGCM/callphys.def
par defaut pointe desormais vers initialisation GCM avec cycle de l'eau

M 68 mesoscale/LMD_MM_MARS/SRC/PREP_MARS/readmeteo.F90
pour passer les champ de traceurs eau vapeur et glace a la surface

M 68 mesoscale/LMD_MM_MARS/SRC/WRFV2/mars_lmd/makegcm_*
M 68 mesoscale/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new/makegcm_*
ajout de l'option csh -f pour importer les options de l'environnement courant

D 68 mesoscale/LMDZ.MARS/myGCM/startfi.nc
D 68 mesoscale/LMDZ.MARS/myGCM/start.nc
ne plus synchroniser (change a chaque run... et cree par launch_gcm de toute facon)

  • Property svn:executable set to *
File size: 22.7 KB
Line 
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
14########################################################################
15# path a changer contenant les sources et les objets du modele
16########################################################################
17
18###### VERSION LMDZ.3.3
19# set LMDGCM=$HOME/LMDZ.3.3
20#
21
22setenv localdir "`pwd`"
23set MODIPSL=0
24echo $localdir | grep modipsl >& /dev/null
25if ( ! $status ) then
26  set MODIPSL=1
27  setenv LMDGCM $localdir
28  cd ../..
29  setenv LIBOGCM "`pwd`/lib"
30  cd $localdir
31  if ( `hostname` == rhodes ) then
32    set NCDFINC=`grep sxnec ../../util/AA_make.gdef| grep NCDF_INC|sed -e "s/^.* =//"`
33    set NCDFLIB=`grep sxnec ../../util/AA_make.gdef| grep NCDF_LIB|sed -e 's/^.* =//'`
34  else
35    if ( `hostname` == nymphea0 ) then
36      set NCDFINC=`grep fjvpp ../../util/AA_make.gdef| grep NCDF_INC|sed -e "s/^.* =//"`
37      set NCDFLIB=`grep fjvpp ../../util/AA_make.gdef| grep NCDF_LIB|sed -e 's/^.* =//'`
38    else
39      echo 'Probleme de definition des variables NCDFINC et NCDFLIB'
40    endif
41  endif
42else
43  if ( ! $?LMDGCM ) then
44    echo You must initialize the variable LMDGCM in your environnement
45    echo for instance: "setenv LMDGCM /usr/myself/supergcm" in .cshrc
46    exit
47  endif
48  if ( ! $?LIBOGCM ) then
49    set LIBOGCM=$LMDGCM/libo
50  endif
51  if ( ! $?NCDFLIB ) then
52    echo You must initialize the variable NCDFLIB in your environnement
53    echo for instance: "setenv NCDFLIB /usr/myself/netcdf" in .cshrc
54    exit
55  endif
56  if ( ! $?NCDFINC ) then
57    echo You must initialize the variable NCDFINC in your environnement
58    echo for instance: "setenv NCDFINC /usr/myself/netcdf" in .cshrc
59    exit
60  endif
61endif
62set model=$LMDGCM
63set libo=$LIBOGCM
64
65########################################################################
66#  Les differentes platformes reconnues
67########################################################################
68
69set HP=0
70set IBM=0
71set SUN=0
72set VPP=0
73set CRAY=0
74set DEC=0
75set LINUX=0
76set NEC=0
77set XNEC=0
78echo "coucou"
79echo `uname`
80if ( `uname` == HP-UX ) then
81   set machine=HP
82   set HP=1
83else if (`uname` == UNIX_System_V ) then
84   set machine=VPP
85   set VPP=1
86else if (`uname` == SunOS ) then
87   set machine=SUN
88   set SUN=1
89else if ( `uname` == AIX ) then
90   set machine=IBM
91   set IBM=1
92else if ( `uname` == OSF1 ) then
93   set machine=ALPHA
94   set DEC=1
95else if ( `uname` == Linux ) then
96   set machine=LINUX
97   set LINUX=1
98else if ( `hostname` == atlas || `hostname` == axis  || `hostname` == etoile ) then
99   set machine=CRAY
100   set CRAY=1
101else if ( `uname` == SUPER-UX ) then
102   set machine=NEC
103   set NEC=1
104else if ( `hostname` == rhodes) then
105   set machine=XNEC
106   set XNEC=1
107else
108   echo Vous travaillez sur une machine non prevue par le reglement
109   exit
110endif
111
112if ( ! -d $libo )  then
113   mkdir $libo
114endif
115
116
117if $VPP then
118set netcdf=netcdf_v
119else
120set netcdf=netcdf
121endif
122########################################################################
123#  Quelques initialisations de variables du shell.
124########################################################################
125
126set dyn=
127set opt_link=""
128set adjnt=""
129set opt_dep=""
130
131set optim90=""
132set oplink=""
133
134########################################################################
135#  Optimisations par defaut suivant les machines
136########################################################################
137
138echo "Optimisations par defaut suivant les machines"
139set libf=$model/libf
140#setenv localdir "LOCAL_DIR=`pwd`"
141#setenv localdir "`pwd`"
142cd $model
143if $CRAY then
144   set optim90="-Wp'-P' -DCRAY "'-p$(LIBO) -eiv '
145   set oplink="-Wl'-DSTACK=128 -f indef' -L$NCDFLIB -lnetcdf "
146   set mod_loc_dir=" "
147   set mod_suffix=" "
148else if $SUN then
149   set optim90=" -fast"
150   set optimtru90=" -fast -free"
151   set opt_link="-L$NCDFLIB -lnetcdf"
152   set mod_loc_dir=$localdir
153   set mod_suffix=mod
154else if $HP then
155else if $IBM then
156else if $VPP then
157   set optim90="$optim -X9 -w"
158   if $COUPLE then
159     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"
160     set oplink="-Wl,-t,-P,-dy "
161   else
162     set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc.a -L$IOIPSLDIR -lioipsl"
163     set oplink="-Wl,-t,-dy "
164   endif
165   set mod_loc_dir=$IOIPSLDIR
166   set mod_suffix=mod
167else if $DEC then
168else if $LINUX then
169
170#--------------------------------------------------------
171#   set optim90=" -fast -I."
172#   set optimtru90=" -fast -c -Mfree "
173##   set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -Wl,-Bstatic"
174#   set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf"
175#   set mod_loc_dir=""
176#   set mod_suffix=mod
177#
178#-ffixed-form
179#   
180set optim=" -O2 -static -zero -align commons"
181#-ffree-line-length-huge"
182set optim90=" -O2 -static -zero -align commons"
183#-ffree-line-length-huge"
184set optimtru90=" -O2 -static -zero -align commons"
185#-ffree-line-length-huge"
186set opt_link=" -L$NCDFLIB -lnetcdf"
187set mod_loc_dir=""
188set mod_suffix=mod
189#--------------------------------------------------------
190   
191else if $NEC then
192   set optim90=' -clear -C hopt -float0 -ew -P static -Wf,"-pvctl fullmsg noassume "'
193   set optimtru90=' -clear -f4 -C hopt -float0 -ew -P static -Wf,"-pvctl fullmsg noassume "'
194###   set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lioipsl  -L/u/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v "
195   set opt_link=" -C hopt -float0 -ew -P static -L/SX/usr/local/lib  -lnetcdf_i8r8 "
196   set mod_loc_dir="."
197   set mod_suffix="mod"
198else if $XNEC then
199   set optim90=' -clear -R5 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
200   set optimtru90=' -clear -R5 -f4 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
201   if $MODIPSL then
202     if $COUPLE then
203       set opt_link="-L$IOIPSLDIR -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static -I$NCDFINC $NCDFLIB "
204     else
205       set opt_link="-L$IOIPSLDIR -lsxioipsl -float0 -ew -P static -I$NCDFINC $NCDFLIB "
206     endif
207     set mod_loc_dir="./"
208   else
209####     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"
210     set opt_link=" -C hopt -float0 -ew -P static -I$NCDFINC -L/SX/usr/local/lib -lnetcdf_i8r8"
211     set mod_loc_dir="."
212   endif
213   set mod_suffix="mod"
214
215endif
216
217set nomlib=$machine
218
219########################################################################
220# lecture des options de mymake
221########################################################################
222
223top:
224if ($#argv > 0) then
225    switch ($1:q)
226
227    case -h:
228
229########################################################################
230# Manuel en ligne
231########################################################################
232more <<eod
233
234
235makegcm [Options] prog
236
237
238
239
240Par default, la commande makegcm:
241---------------------------------
242
2431. compile une serie de sous programmes se trouvant dans des sous-repertoires
244de $LMDGCM/libf.
245Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN
246sur $LIBOGCM.
247
2482. Ensuite, makegcm compile le programme prog.f se trouvant par default sur
249$LMDGCM/libf/dyn3d et effectue le lien avec l ensemble des librairies.
250
251La variable '$LMDGCM' doit etre initialisee dans votre .cshrc ou en dur
252dans la comande makegcm.
253
254La commande makegcm est faite pour permettre de gerer en parallele des
255versions differentes du modele, compilees avec des options de compilation
256et des dimensions differentes sans avoir a chaque fois a recompiler tout
257le modele.
258
259Les librairies FORTRAN sont stoquees sur le directory $LIBOGCM.
260
261
262OPTIONS:
263--------
264
265Les options suivantes peuvent etre definies soit par defaut en editant le
266"script" makegcm, soit en interactif:
267
268-d imxjmxlm  ou im, jm, et lm sont resp. le nombre de longitudes, latitudes
269             et couches verticales.
270
271-t ntrac   selectionne le nombre de traceur advectes par la dynamique.
272           Dans les versions courantes du modele terrestre on a par exemple
273           ntrac=2 pour l'eau vapeur et liquide
274
275             L'effet des options -d et -t est d'ecraser le fichier
276             $LMDGCM/libf/grid/dimensions.h
277             qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions
278             de la grille horizontale im, jm, lm plus le nombre de traceurs
279             advectes passivement par la dynamique ntrac, par un nouveu fichier
280             $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac
281             Si ce fichier n'existe pas encore, il est cree par le script
282             $LMDGCM/libf/grid/dimension/makdim
283
284-p PHYS    pour selectionner le jeu de parametrisations physiques avec
285           lequel on veut compiler le modele.
286           Le modele sera alors compile en prenant les sources des
287           parametrisations physiques dans le repertoire:
288            $LMDGCM/libf/phyPHYS
289
290-g grille  selectionne le type de grille qu'on veut utiliser.
291           L'effet de cette option est d'ecraser le fichier
292           $LMDGCM/libf/grid/fxyprim.h
293           avec le fichier
294           $LMDGCM/libf/grid/fxy_grille.h
295           grille peut prendre les valeurs:
296           1. reg pour la grille reguliere
297           2. sin pour avoir des points equidistants en sinus de la latitude
298           3. new pour pouvoir zoomer sur une partie du globe
299
300-O "optimisation fortran" ou les optimisations fortran sont les options de la
301            commande f77
302
303-include path
304           Dans le cas ou on a dans des sous programmes des fichiers
305           #include (cpp) qui se trouve sur des repertoires non references
306           par defaut
307
308-adjnt     Pour compiler la l'adjoint du code dynamique
309
310-filtre  filtre
311           Pour choisir le filtre en longitude dans les regions polaires.
312           "filtre" correspond au nom d'un repertoire se trouvant sur
313           $LMDGCM/libf. Le filtre standard du modele est "filtrez" qui peut
314           etre utilise aussi bien pour une grille reguliere que pour une
315           grille zoomee en longitude.
316
317-link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..."
318          Pour rajouter un lien avec les librairies FORTRAN
319          libfile1.a, libfile2.a ... se trouvant respectivement sur les
320          repertoires dir1, dir2 ...
321          Si dirn est un repertoire dont le chemin est automatique (comme
322          par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.
323
324Auteur: Frederic Hourdin  (hourdin@lmd.jussieu.fr)
325eod
326exit
327
328########################################################################
329# Lecture des differentes options
330########################################################################
331
332    case -d:
333        set dim=$2 ; shift ; shift ; goto top
334                       
335    case -O:
336        set optim90="$2" ; shift ; shift ; goto top
337
338     case -p
339        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
340
341     case -g
342        set grille="$2" ; shift ; shift ; goto top
343
344     case -t
345        set ntrac=$2 ; shift ; shift ; goto top
346
347     case -include
348        set include="$include -I$2" ; shift ; shift ; goto top
349
350     case -adjnt
351        set opt_dep="$opt_dep adjnt" ; set adjnt="-ladjnt -ldyn3d "
352
353     case -filtre
354        set filtre=$2 ; shift ; shift ; goto top
355
356     case -link
357        set opt_link="$opt_link $2" ; shift ; shift ; goto top
358
359     case -debug
360        if $HP then
361           set optim90=" -g "
362        else if $SUN then
363           setenv PARALLEL 4
364           set optim90=" -g -C "
365           set optimtru90=" -g -C "
366        else if $CRAY then
367           set optim90="$optim90"" -G1 "
368        else if $LINUX then
369#           set optim90="-g -Mbounds "
370##           set optim90="-mcmodel=medium"
371#-------------------------------------------------------------------
372          set optim="$optim"" -g -fbounds-check "
373          set optim90="$optim90"" -g -fbounds-check "
374          set optimtru90="$optimtru90"" -g -fbounds-check "
375#-------------------------------------------------------------------
376        else
377           echo pas d option debug predefinie pour cette machine
378           exit
379        endif
380        shift ; goto top
381
382     default
383        set code="$1" ; shift ; goto top
384
385   endsw
386endif
387
388echo apres les opts dim $dim
389
390########################################################################
391# cas special sans physique
392########################################################################
393if ( "$physique" == 'nophys' ) then
394   set phys="L_PHY= LIBPHY="
395endif
396
397########################################################################
398# choix du nombre de traceur par defaut si il n'a pas ete choisi,
399# suivant la physique
400########################################################################
401
402if ( $ntrac == 0  ) then
403    if ( "$physique" == 'nophys' ) then
404        set ntrac=1
405    else if ( "$physique" == 'lmd' ) then
406        set ntrac=2
407    else if ( "$physique" == 'lmd_test_li' ) then
408        set ntrac=2
409    else if ( "$physique" == 'ec' ) then
410        set ntrac=1
411    else
412        set ntrac = 1
413    endif
414endif
415
416########################################################################
417#subtilites sur le nom de la librairie
418########################################################################
419
420\rm tmp ; touch tmp
421\rm tmp90 ; touch tmp90
422foreach i ( $optim90 )
423   echo $i | sed -e 's/\"//g' -e "s/\'//g" -e 's/-//g' -e 's/://g' -e 's/=//g' -e 's/%//g' >> tmp
424end
425set suf=
426foreach i ( `sort tmp | uniq ` )
427   set suf=$suf$i
428end
429if ( ! $IBM ) then
430   set nomlib="$nomlib$suf"
431endif
432if ( $DEC ) then
433   set nomlib=DEC
434endif
435echo dimension avant sed $dim
436if ( $IBM ) then
437   set dim=`echo $dim | sed -en 's/[^0-9]/ /g'`
438   set dim_=`echo $dim | sed -en 's/[^0-9]/_/g'`
439else if ( $SUN || $XNEC ) then
440   set dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
441   set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
442else
443#   set dim=`echo $dim | sed -n -e 's/[^0-9]/ /gp'`
444#   set dim_=`echo $dim | sed -n -e 's/[^0-9]/_/gp'`
445     set dim=`echo $dim | sed -e 's/[^0-9]/ /g'`
446     set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
447endif
448set nomlib=${nomlib}_${dim_}_t${ntrac}_$grille
449## M-A-F nomlib trop long sur CRAY pour ar
450if ( $CRAY ) then
451    set nomlib=F90_${dim_}_t${ntrac}
452endif
453if ( $NEC || $XNEC ) then
454    set nomlib=F90_${dim_}_t${ntrac}
455endif
456echo calcul de la dimension
457set dimc=`echo $dim | wc -w`
458
459if ( "$dimc" == "2" ) then
460set include="$include "'-I$(LIBF)/dyn2d '
461set dimh=$dim
462else
463set include="$include "'-I$(LIBF)/dyn3d '
464set dimh=`echo $dim | awk ' { print $1 "." $2 } '`
465endif
466echo $dimc
467
468########################################################################
469# path pour les #include
470########################################################################
471
472set include="$include -I$NCDFINC "
473echo $include
474
475########################################################################
476# Gestion des dimensions du modele.
477# on cree ou remplace le fichier des dimensions/nombre de traceur
478########################################################################
479
480cd $libf/grid
481if ( -f dimensions.h ) then
482echo 'ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs'
483echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
484echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
485echo  vous pouvez continuer en repondant oui.
486echo "Voulez-vous vraiment continuer?"
487if ( $< == "oui" ) then
488\rm $libf/grid/dimensions.h
489else
490exit
491endif
492endif
493
494cd dimension
495makdim $ntrac $dim
496cat $libf/grid/dimensions.h
497
498cd $LMDGCM
499set libo=$libo/$nomlib
500if ( ! -d $libo )  then
501   mkdir $libo
502   cd $model
503endif
504
505########################################################################
506# Differentes dynamiques (3d, 2d, 1d)
507########################################################################
508
509set dimension=`echo $dim | wc -w`
510echo dimension $dimension dim $dim
511if ( $dimension == 1 ) then
512echo pas de dynamique
513set dyn="L_DYN= DYN= L_FILTRE= DIRMAIN=phy$physique "
514endif
515endif
516cd $model
517if ( $dimension == 3 ) then
518cd libf/grid
519\rm fxyprim.h
520cp -p fxy_${grille}.h fxyprim.h
521endif
522
523######################################################################
524#   Traitement special pour le nouveau rayonnement de Laurent Li.
525######################################################################
526
527if ( -f $libf/phy$physique/raddim.h ) then
528if ( -f $libf/phy$physique/raddim.$dimh.h ) then
529\rm $libf/phy$physique/raddim.h
530cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
531echo $libf/phy$physique/raddim.$dimh.h
532cat $libf/phy$physique/raddim.$dimh.h
533cat $libf/phy$physique/raddim.h
534else
535echo On peut diminuer la taille de l executable en creant
536echo le fichier $libf/phy$physique/raddim.$dimh.h
537\cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
538endif
539endif
540
541######################################################################
542# Gestion du filtre qui n'existe qu'en 3d.
543######################################################################
544
545if ( `expr $dimc \> 2` == 1 ) then
546   set filtre="FILTRE=$filtre"
547else
548   set filtre="FILTRE= L_FILTRE= "
549endif
550echo MACRO FILTRE $filtre
551
552echo $dimc
553
554########################################################################
555#  Avant de lancer le make, on recree le makefile si necessaire
556########################################################################
557# c'est a dire dans 3 cas:
558# 1. si la liste des fichiers .F et .h a ete modifiee depuis la
559#    derniere creation du makefile
560# 2. si le fichier contenant cette liste "liste_des_sources"
561#    n'existe pas.
562# 3. Si le makefile n'existe pas.
563########################################################################
564
565cd $model
566find libf -name '*.[Fh]' -print >! tmp77
567#find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print >! tmp90
568find libf -name '*.[Fh]90' -print >> tmp90
569
570if (    `diff tmp77 liste_des_sources_f77 | wc -w` \
571     || `diff tmp90 liste_des_sources_f90 | wc -w` \
572     || ! -f makefile \
573     || ! -f liste_des_sources_f90 \
574     || ! -f liste_des_sources_f77 ) then
575        echo les fichiers suivants ont ete crees ou detruits
576        echo ou les fichiers suivants sont passes ou ne sont plus en Fortran 90
577        diff liste_des_sources_f77 tmp77
578        diff liste_des_sources_f90 tmp90
579        \cp tmp77 liste_des_sources_f77
580        \cp tmp90 liste_des_sources_f90
581        echo On recree le makefile
582        ./create_make_gcm >! tmp
583        \mv tmp makefile
584        echo Nouveau makefile cree.
585endif
586
587########################################################################
588#  Execution de la comande make
589########################################################################
590
591echo PHYSIQUE $phys
592echo dynamique $dyn $dimension
593echo OPTIM90="$optim90" $filtre LIBO=$libo $dyn PHYS=$phys DIM=$dimc PROG=$code
594echo PATH pour les fichiers INCLUDE $include
595echo OPLINK="$oplink"
596
597if $HP then
598   set f77='fort77 +OP'
599   set f90='jensaisrien'
600   set opt_link="$opt_link -lm"
601else  if $VPP then
602   set f77=frt
603   set f90=$f77
604else if $CRAY then
605   set f77=f90
606   set f90=f90
607else if $LINUX then
608   set f77=ifort
609   set f90=ifort
610else if $SUN then
611   set f77=f90
612   set f90=f90
613else if $NEC then
614   set f77=f90
615   set f90=f90
616else if $XNEC then
617   set f77=sxmpif90
618   set f90=sxmpif90
619else
620   set f77=f77
621   set f90=f90
622endif
623
624cd $model
625
626if $VPP then
627set make="gmake RANLIB=ls"
628else if $CRAY then
629set make="make RANLIB=ls"
630else if $NEC then
631set make="make RANLIB=ls"
632else if $LINUX then
633set make="make -k RANLIB=ranlib"
634else if $XNEC then
635set make="/usr/local/bin/gmake RANLIB=ls"
636set make="/usr/freeware/bin/gmake RANLIB=ls"
637else
638set make="make RANLIB=ranlib"
639endif
640
641
642
643#
644# les deux test suivants sont "temporaires" pour pallier des "faiblesses" du
645# compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1
646#
647#if ($code == 'create_limit' && $SUN) then
648#   set link=f77
649#   set opt_link="-L$NCDFLIB -lnetcdf"
650#endif
651
652#if ($code == 'create_etat0' && $SUN) then
653#   if ( ! -f $libo/libdyn3d.a ) then
654#     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
655#     \rm $libf/grid/dimensions.h
656#     exit
657#   endif
658#   set optim90=" -dalign -fixed "
659#   set opt_link="-L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
660#   set link="$f90 $optim90"
661#   touch $LMDGCM/libf/dyn3d/startvar.F
662#   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
663#endif
664
665#
666# Encore un test temporaire: probleme de compilation sur VPP
667# l'optimisation de startvar se passe mal
668#
669if ($code == 'create_etat0' && $VPP) then
670   if ( ! -f $libo/libdyn3d.a ) then
671     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
672     \rm $libf/grid/dimensions.h                                             
673     exit                       
674   endif
675   set optim90="$optim90"" -X9 -w"
676   set opt_link="-L$NCDFLIB -lnetcdf"
677   touch $LMDGCM/libf/dyn3d/startvar.F
678   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
679endif
680
681#
682# etat0_netcdf a besoin d'info de la physique
683# A revoir
684set include="$include"" -I$libf/phy$physique"
685
686
687#################################################################
688# Execution de la comande make... ENFIN!
689#################################################################
690
691if $VPP then
692  set optim90=" $optim90 -Am -M$libo"
693  set optimtru90="$optim90"
694else if $SUN then
695 set optim90=" $optim90 -M$libo"
696 set optimtru90=" $optimtru90 "
697else if $NEC then
698 set optim90=" $optim90 -I$libo "
699else if $XNEC then
700 set optim90=" $optim90 -I$libo "
701 set optimtru90=" $optimtru90 -I$libo "
702else if $LINUX then
703#----------------------------------------------
704 set optim90="$optim90 -module $libo"
705 set mod_loc_dir=$libo
706 #set optimtru90=" $optimtru90 -fmod=$libo  "
707 #set optim90=" $optim90 -fmod=$libo  "
708 #set mod_loc_dir=$libo
709#----------------------------------------------
710endif
711
712set link="$f90 $optim90"
713
714set ar=ar
715
716if $XNEC then
717  set link="sxld $opt_link"
718  set link="$f90 "
719#  set ar=sxar
720endif
721
722
723cd $localdir
724
725echo $make -f $LMDGCM/makefile \
726OPTION_DEP="$opt_dep" OPTION_LINK="$opt_link" \
727OPTIM90="$optim90" \
728OPTIMTRU90="$optimtru90" \
729INCLUDE="$include" \
730$filtre \
731LIBO=$libo \
732$dyn \
733$phys \
734DIM=$dimc \
735L_ADJNT="$adjnt" \
736LOCAL_DIR="$localdir"  \
737F77="$f77" \
738F90="$f90" \
739OPLINK="$oplink" \
740LINK="$link" \
741GCM="$LMDGCM" \
742MOD_LOC_DIR=$mod_loc_dir \
743MOD_SUFFIX=$mod_suffix \
744AR=$ar \
745PROG=$code
746
747
748$make -f $LMDGCM/makefile \
749OPTION_DEP="$opt_dep" OPTION_LINK="$opt_link" \
750OPTIM90="$optim90" \
751OPTIMTRU90="$optimtru90" \
752INCLUDE="$include" \
753$filtre \
754LIBO=$libo \
755$dyn \
756$phys \
757DIM=$dimc \
758L_ADJNT="$adjnt" \
759LOCAL_DIR="$localdir"  \
760F77="$f77" \
761F90="$f90" \
762OPLINK="$oplink" \
763LINK="$link" \
764GCM="$LMDGCM" \
765MOD_LOC_DIR=$mod_loc_dir \
766MOD_SUFFIX=$mod_suffix \
767AR=$ar \
768PROG=$code
769
770\rm $libf/grid/dimensions.h
Note: See TracBrowser for help on using the repository browser.