source: LMDZ.3.3/branches/unlabeled-1.4.2/makegcm @ 546

Last change on this file since 546 was 119, checked in by lmdzadmin, 24 years ago

changement option sur Nec
LF

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