source: LMDZ.3.3/trunk/makegcm @ 104

Last change on this file since 104 was 102, checked in by lmdzadmin, 24 years ago

* empty log message *

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