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

Last change on this file since 157 was 141, checked in by lmdzadmin, 24 years ago

version modipsl

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