source: LMDZ.3.3/branches/rel-LF/makegcm @ 136

Last change on this file since 136 was 135, checked in by lmdzadmin, 24 years ago

Pb de chemin pour les *mod dans le cas modipsl sur rhodes
LF

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