New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
fait_AA_make in trunk/UTIL – NEMO

source: trunk/UTIL/fait_AA_make @ 368

Last change on this file since 368 was 368, checked in by opalod, 18 years ago

nemo_v1_compil_009 : CT : Add compilation options for hpux plateform

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 16.7 KB
Line 
1#!/bin/ksh
2#set -xv
3#-
4echo "This script must be run while in the modipsl/modeles/OPA directory"
5cd WORK
6pwd
7#MODEL_LIB=../../../lib/libopa.a
8#MODEL_LIB=`grep MODEL_LIB AA_make.ldef | sed 's/ //g' | sed 's/MODEL_LIB=//g' `
9liste_cle=$(egrep '^# *if[!( &]*def|^# *elif' *.[Fh] *.[Fh]90 | grep key_ | sed 's/||/\
10/' | sed 's/\&\&/\
11/' | sed 's/^.*key_/key_/' | sed 's/ *[) ] *$//' | sort -u )
12#-
13#-
14#- 3) Ecriture du AA_make
15#-
16#- enteteFait_AA_make     
17#-
18cat > tampon <<end
19#
20.SUFFIXES: .f90 .F90 .F
21#
22# Target
23all:     diroce \$(EXEC_BIN)
24      @cp SRC_FILE_LIST.temp SRC_FILE_LIST
25      @echo OPA model is OK
26# cleaning objects, libraries and executables
27clean:
28      \$(RM) model.o \$(MODDIR)/oce/*.mod \$(MODEL_LIB) \$(SXMODEL_LIB) \$(EXEC_BIN)
29      @echo OPA model \(.o .mod libraries and executables are removed\)
30# dependancies
31diroce:
32      @if [ ! -d ../../../lib/oce ] ; then mkdir ../../../lib/oce ; fi
33
34\$(EXEC_BIN) : libioipsl key keyverif src_file_list \$(MODEL_LIB) \$(IOIPSL_LIB) model.o
35      \$(F_L) \$(L_X) -o \$(EXEC_BIN) model.o \$(SXMODEL_LIB) \$(OASISMPI2_LIB) \$(IOIPSL_LIB) \$(NCDF_LIB) \$(LIBMPI) \$(LIBMP)
36
37libioipsl :
38   (cd ../../IOIPSL/src ; \$(M_K) -f Makefile )
39
40# main program
41model.o :   model.f90
42      @\$(F_C) \$(F_O) -c model.f90
43
44# if the make script is stopped, one doesn't destroy library
45.PRECIOUS : \$(MODEL_LIB)
46#-Q- sxnec .PRECIOUS : \$(SXMODEL_LIB)
47#-Q- sx6nec .PRECIOUS : \$(SXMODEL_LIB)
48#-Q- sxdkrz .PRECIOUS : \$(SXMODEL_LIB)
49#-Q- hpux .PRECIOUS : \$(SXMODEL_LIB)
50
51# library dependancies
52\$(MODEL_LIB): \$(LIB_OBJ)
53      @echo
54      @echo La bibliotheque est a jour
55      @echo
56
57# Rules
58.DEFAULTS:
59
60# rules for the .f90 files
61.f90.a :           
62      @\$(F_C) \$(P_P) \$(F_O) \\
63#-Q- fjvpp     -Z \$*.L \\
64#-Q- sxnec     -R2 \\
65#-Q- sx6nec    -R2 \\
66#-Q- sxdkrz    -R2 \\
67#-Q- hpux      -R2 \\
68#-Q- aix    -qsource \\
69      \$*.f90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; }
70#-Q- sxnec     @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
71#-Q- sx6nec    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
72#-Q- sxdkrz    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
73#-Q- hpux      @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
74      @\$(A_C) \$(MODEL_LIB) \$*.o  > /dev/null
75      @\$(RM) \$*.[of]
76      @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce ; fi
77#-Q- aix    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
78#-Q- linux     @mv \$(PREF)\$*.lst \$(PREF)\$*.L
79#-Q- osxxlf    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
80      @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi
81
82# rules for the .F90 files
83.F90.a :           
84      @\$(F_C) \$(P_P) \$(F_O) \\
85#-Q- fjvpp     -Z \$*.L \\
86#-Q- sxnec     -R2 \\
87#-Q- sx6nec    -R2 \\
88#-Q- sxdkrz    -R2 \\
89#-Q- hpux      -R2 \\
90#-Q- aix    -qsource \\
91      \$*.F90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; }
92#-Q- sxnec     @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
93#-Q- sx6nec    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
94#-Q- sxdkrz    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
95#-Q- hpux      @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
96      @\$(A_C) \$(MODEL_LIB) \$*.o  > /dev/null
97      @\$(RM) \$*.[of]
98      @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce ; fi
99#-Q- aix    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
100#-Q- linux     @mv \$(PREF)\$*.lst \$(PREF)\$*.L
101#-Q- osxxlf    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
102      @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi
103
104# rules for the .F files
105.F.a :           
106      @\$(F_C) \$(P_P) \$(F_O) \\
107#-Q- fjvpp     -Z \$*.L \\
108#-Q- sxnec     -R2 \\
109#-Q- sx6nec    -R2 \\
110#-Q- sxdkrz    -R2 \\
111#-Q- hpux      -R2 \\
112#-Q- aix    -qsource \\
113      \$*.F || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; }
114#-Q- sxnec     @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
115#-Q- sx6nec    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
116#-Q- sxdkrz    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
117#-Q- hpux      @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
118      @\$(A_C) \$(MODEL_LIB) \$*.o  > /dev/null
119      @\$(RM) \$*.[of]
120      @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce ; fi
121#-Q- aix    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
122#-Q- linux     @mv \$(PREF)\$*.lst \$(PREF)\$*.L
123#-Q- osxxlf    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
124      @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi
125
126# rules for the library from the .f files
127.f.a :     
128      @\$(F_C) \$(F_O) \\
129#-Q- fjvpp     -Z \$*.L \\
130#-Q- sxnec     -R2 \\
131#-Q- sx6nec    -R2 \\
132#-Q- sxdkrz    -R2 \\
133#-Q- hpux      -R2 \\
134#-Q- aix    -qsource \\
135      \$*.f|| { if [ -f \$(PREF)\$*.L ] ; then mv \$*.L \$(TMP) ; fi ; false ; exit ; }
136#-Q- sxnec     @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
137#-Q- sx6nec    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
138#-Q- sxdkrz    @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
139#-Q- hpux      @\$(A_X) \$(SXMODEL_LIB) \$*.o  > /dev/null
140      @\$(A_C) \$(MODEL_LIB) \$*.o  > /dev/null
141      @\$(RM) -f \$*.o
142#-Q- aix    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
143#-Q- linux  @mv \$(PREF)\$*.lst \$(PREF)\$*.L
144#-Q- osxxlf    @mv \$(PREF)\$*.lst \$(PREF)\$*.L
145      @if [ -f \$(PREF)\$*.L ] ; then mv \$*.L \$(TMP) ; fi
146#
147end
148#-
149#- dependances
150#-
151exec 1> AA_make
152MAIN="model"
153echo '# $Header$'
154echo '# some variables'
155echo 'TMP = ../../../tmp'
156echo '#-Q- sxnec  # Compiler options for the ORCA model   -   std'
157echo '#-Q- sxnec  F_O = -dw -Wf\"-A idbl4\" -sx5 -ftrace -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce'
158echo '#-Q- sxnec  L_X = $(L_O) $(L_C) -ftrace'
159echo '#-Q- sx6nec  # Compiler options for the ORCA model   -   std'
160echo '#-Q- sx6nec  F_O = -size_t64 -dw -Wf\"-A dbl4\" -sx6 -C vopt -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 -L transform' -I $(MODDIR) -I $(MODDIR)/oce'
161echo '#-Q- sx6nec  F_O = -size_t64 -dw -Wf\"-A dbl4\" -sx6 -ftrace -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce'
162echo '#-Q- sx6nec  L_X = $(L_O) $(L_C) -ftrace'
163echo '#-Q- sxdkrz  # Compiler options for the ORCA model for the DKRZ SX6-NEC '
164echo '#-Q- sxdkrz  F_O = -ew -sx6 -ftrace -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh" -Wf"-pvctl noassume loopcnt=10000" -L transform -I $(MODDIR) -I $(MODDIR)/oce'
165echo '#-Q- sxdkrz  L_X = $(L_O) $(L_C) -ftrace'
166echo '#-Q- hpux  # Compiler options for the ORCA model for the ES'
167echo '#-Q- hpux  # for super perfs!'
168echo '#-Q- hpux  # F_O = $(FTRACE) -pi nest=5 line=10000 expin=Fmpplib.F -Wf,-A idbl4 -C hopt -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce'
169echo '#-Q- hpux  # regular options!'
170echo '#-Q- hpux  F_O = $(FTRACE) -Wf,-A idbl4 -C vopt -P stack -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -Wf,-pvctl nomsg -Wf"-O nomsg" -I $(MODDIR) -I $(MODDIR)/oce'
171echo '#-Q- hpux  L_X = $(L_O)'
172echo '#-Q- linux  # Compiler options for the ORCA model (pgf version)'
173echo '#-Q- linux  F_O = -Mlist -O3 -byteswapio -r8  -I $(MODDIR) -I$(MODDIR)/oce'
174echo '#-Q- linux  L_X = -r8 -O3'
175echo '#-Q- lxiv8  # Compiler options for the ORCA model (ifort version)'
176echo '#-Q- lxiv8  F_O = -O3 -r8  -I $(MODDIR) -I$(MODDIR)/oce'
177echo '#-Q- lxiv8  L_X = -r8 -O3'
178echo '#-Q- g95  # Compiler options for the ORCA model (g95 version)'
179echo '#-Q- g95  F_O = -O3 -fno-second-underscore -r8 -funroll-all-loops -I $(MODDIR) -I $(MODDIR)/oce'
180echo '#-Q- g95  L_X = -r8 -O3'
181echo '#-Q- aix    # Compiler options for the ORCA model (aix version)'
182echo '#-Q- aix    F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce' 
183echo '#-Q- aix   L_O = $(F_P) -q64 -O3'
184echo '#-Q- aix   L_X = $(L_O) $(L_C) '
185echo '#-Q- osxxlf    # Compiler options for the ORCA model (osxxlf version)'
186echo '#-Q- osxxlf    F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce' 
187echo '#-Q- osxxlf    L_X = -qrealsize=8 -O3'
188
189echo 'PREF='
190echo '#-Q- sxnec  PREF=i.'
191echo '#-Q- sx6nec PREF=i.'
192echo '#-Q- sxdkrz PREF=i.'
193echo '#-Q- hpux      PREF=i.'
194echo ''
195# Write the cpp key list with one key by line
196echo 'KEY_LIST = \c'
197for i in ${liste_cle}
198do
199 echo "\\"
200 echo "     $i \c"
201done
202
203echo ''
204echo '# .o file list in the library'
205echo 'LIB_OBJ = \c'
206#
207# allons chercher tous les .f du repertoire courant
208# construction de la liste des objets LIB_OBJ
209
210for i in `ls *.f`
211do
212  bn=`basename $i .f`
213  if [ "${bn}" != "${MAIN}" ] 
214  then
215    echo "\\"
216    echo "     \$(MODEL_LIB)($bn.o)\c"
217  fi
218done
219
220# allons chercher tous les .f90 du repertoire courant
221# construction de la liste des objets LIB_OBJ
222# one dependancy by line
223for i in `ls *.f90`
224do
225  bn=`basename $i .f90`
226  if [ "${bn}" != "${MAIN}" ] 
227  then
228    echo "\\"
229    echo "     \$(MODEL_LIB)($bn.o)\c"
230  fi
231done
232
233# allons chercher tous les .F90 du repertoire courant
234# construction de la liste des objets LIB_OBJ
235
236for i in `ls *.F90`
237do
238  bn=`basename $i .F90`
239  if [ "${bn}" != "${MAIN}" ] 
240  then
241    echo "\\"
242    echo "     \$(MODEL_LIB)($bn.o)\c"
243  fi
244done
245
246# allons chercher tous les .F du repertoire courant
247# construction de la liste des objets LIB_OBJ
248
249for i in `ls *.F`
250do
251  bn=`basename $i .F`
252  if [ "${bn}" != "${MAIN}" ] 
253  then
254    echo "\\"
255    echo "     \$(MODEL_LIB)($bn.o)\c"
256  fi
257 done
258
259echo ""
260
261cat tampon
262rm tampon
263
264#
265for fic in `ls *.f90 *.F90  *.F `
266do
267    if [ "${fic}" != "${MAIN}.[Ff]" ]
268    then
269   i=0
270   j=0
271   dep=""
272   inc=""
273   inc2=""
274   inc3=""
275   luse0=""
276   luse1=""
277   luse2=""
278   luse3=""
279# on cherche les includes type modele de glace LLN
280   for inc in `sed -n 's/^[   ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u`
281   do
282       dep="$dep\n$inc"
283   done
284
285# on cherche les includes (et les includes des includes et ainsi de suite pour 3 niveaux max)
286   for inc in `sed -n 's/^#[  ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u`
287   do
288       j=1
289       dep="$dep\n$inc"
290      for inc2 in `sed -n 's/^#[    ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u`
291      do
292          dep="$dep\n$inc2"
293          # on cherche les include  dans le fichier deja include (3eme niveau! balaise!)
294          for inc3 in `sed -n 's/^#[   ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc2 | sort -u`
295          do
296         dep="$dep\n$inc3"
297          done
298      done
299   done
300
301# on cherche les USE dans les include
302   for inc in `sed -n 's/^#[  ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u`
303   do
304      for fuse0 in `sed -n 's/^[    ]*[uU][sS][eE] [  ]*\([^!,;]*\).*/\1/p' $inc | sort -u`
305      do
306           if [ $fuse0 != "ioipsl" ] 
307                then
308          lfuse0=$fuse0.f90
309          [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90
310          luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)($fuse0.o)"
311                fi
312      done
313
314# on cherche aussi les USE dans les include des include on les ajoute a luse0
315
316      for inc2 in `sed -n 's/^#[    ]*[iI][nN][cC][lL][uU][dD][eE][  ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u`
317      do
318          for fuse0 in `sed -n 's/^[   ]*[uU][sS][eE] [  ]*\([^!,;]*\).*/\1/p' $inc2 | sort -u`
319          do
320               if [ $fuse0 != "ioipsl" ] 
321                    then
322              lfuse0=$fuse0.f90
323              [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90
324              luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)($fuse0.o)"
325                    fi
326          done
327           done
328   done
329
330# on cherche les USE (et les USE des USE et ainsi de suite pour 3 niveaux max)
331   for fuse1 in `sed -n 's/^[    ]*[uU][sS][eE] [  ]*\([^!,;]*\).*/\1/p' $fic | sort -u`
332   do
333   if [ $fuse1 != "ioipsl" ] 
334        then
335       lfuse1=$fuse1.f90
336       [ -f $fuse1.F90 ] && lfuse1=$fuse1.F90
337       luse1="$luse1\n$lfuse1\n\$(MODEL_LIB)($fuse1.o)"
338      for fuse2 in `sed -n 's/^[    ]*[uU][sS][eE] [  ]*\([^!,;]*\).*/\1/p' $lfuse1 | sort -u`
339      do
340           if [ $fuse2 != "ioipsl" ] 
341                then
342          lfuse2=$fuse2.f90
343          [ -f $fuse2.F90 ] && lfuse2=$fuse2.F90
344          luse2="$luse2\n$lfuse2\n\$(MODEL_LIB)($fuse2.o)"
345          # on cherche les USE  dans le fichier deja USE (3eme niveau! balaise!)
346          for fuse3 in `sed -n 's/^#[     ]*[uU][sS][eE] [  ]*\([^!,;]*\).*/\1/p' $lfuse2 | sort -u`
347          do
348          if [ $fuse3 != "ioipsl" ] 
349                    then
350         luse3="$luse3\n$lfuse3\n\$(MODEL_LIB)($fuse3.o)"
351                    fi         
352                    done
353                fi
354      done
355        fi
356   done
357#- la variable dep contient l'ensemble des dependances mais peut-etre en double ou plus
358#-
359   for depele in `echo $luse3 | sort -u` `echo $luse2 | sort -u` `echo $luse1 | sort -u` `echo $luse0 | sort -u` `echo $dep | sort -u`
360   do
361       [ ${i} = "0" ] && echo "\$(MODEL_LIB)(`echo $fic|awk -F. '{print $1}'`.o) :  \c"
362       echo "\\"
363       echo "  $depele \c"
364       let i=i+1 # pour signaler le premier
365   done
366
367#-
368#- on ajoute la dependance avec la librairie ioipsl si besoin cad si le source contient use ioipsl
369        grep -i 'use *ioipsl' ${fic} >/dev/null && ( echo "\\" ; echo " ../../../lib/libioipsl.a \c")
370
371#- on ajoute la dependance avec KEY_CPP si il y a des include cpp
372   if [ ${j} != "0" ] 
373        then
374     echo "\\"
375     echo " KEY_CPP \c" 
376   fi
377#- on finit la dependance avec le fichier lui-meme et on ecrit les regles de creation
378   if [ ${i} != "0" ] 
379        then
380        echo "\\"
381              echo " $fic"
382         fi
383    fi
384echo $fic done >/dev/tty
385done
386echo '# key changing control'
387echo "key: "
388echo "   @echo CHANGEMENT de CLES CPP oui/non ?"
389echo "   -@if [ \"\`cat KEY_CPP\`\" != \"\$(P_P)\" ] ; then \\"
390echo "      echo CPP options changed ; echo \"\$(P_P)\" > KEY_CPP ; fi "
391#-
392#
393# regle pour verifier les cles
394# EK novembre 2000
395# adaptation : ED + MAF decembre 2000
396#
397echo
398echo "keyverif:"
399echo '   @echo VERIFICATION DES CLES'
400echo '   @echo CLES UTILISEES  : '
401echo '   @for v in ` echo $(P_P) | sed  -e s/-Wp,-D//g` ; \'
402echo '   do \'
403echo '   echo $$v ;\'
404echo '        w=`echo $$v | cut -c1-3` ; \'
405echo '        if [ $$w = `echo "key"` ] ; then \'
406echo '        r=n ; \'
407echo '        echo " $(KEY_LIST) " | (grep $$v >/dev/null 2>&1) || r=o ; \'
408echo '           if [ $$r != "n" ] ; then \'
409echo '              echo "UNKNOWN KEY" ;\'
410echo '              false ;  \'
411echo '              exit ;  \'
412echo '           fi \'
413echo '        fi \'
414echo '   done'
415# Checking if the number of routines have been changed
416echo '# Checking the number of routines'
417echo "src_file_list: "
418echo '   @echo CHECKING THE NUMBER AND NAMES OF SOURCE FILES '
419echo '   @\$(RM) `ls | fgrep -v -f .patron` '
420echo '   @check=`grep OPA_SRC .config`              ; \'
421echo '   if [ -n "$$check" ] ; then                   \'
422echo '   echo "   use OPA_SRC files"                ; \'
423echo '       ln -sf ../OPA_SRC/*.[Ffh]90          . ; \'
424echo '       ln -sf ../OPA_SRC/DYN/*.[Ffh]90      . ; \'
425echo '       ln -sf ../OPA_SRC/TRA/*.[Ffh]90      . ; \'
426echo '       ln -sf ../OPA_SRC/TRD/*.[Ffh]90      . ; \'
427echo '       ln -sf ../OPA_SRC/DIA/*.[Ffh]90      . ; \'
428echo '       ln -sf ../OPA_SRC/DOM/*.[Ffh]90      . ; \'
429echo '       ln -sf ../OPA_SRC/OBC/*.[Ffh]90      . ; \'
430echo '       ln -sf ../OPA_SRC/FLO/*.[Ffh]90      . ; \'
431echo '       ln -sf ../OPA_SRC/LDF/*.[Ffh]90      . ; \'
432echo '       ln -sf ../OPA_SRC/ZDF/*.[Ffh]90      . ; \'
433echo '       ln -sf ../OPA_SRC/SOL/*.[Ffh]90      . ; \'
434echo '       ln -sf ../OPA_SRC/DTA/*.[Ffh]90      . ; \'
435echo '       ln -sf ../OPA_SRC/SBC/*.[Ffh]90      . ; \'
436echo '  fi '
437echo '   @check=`grep LIM_SRC .config`              ; \'
438echo '   if [ -n "$$check" ] ; then                   \'
439echo '   echo "   use LIM_SRC files"                ; \'
440echo '      ln -sf ../LIM_SRC/*.[Ffh]90          . ; \'
441echo '  fi '
442echo '   @check=`grep C1D_SRC .config`              ; \'
443echo '   if [ -n "$$check" ] ; then                   \'
444echo '   echo "   use C1D_SRC files"                ; \'
445echo '      ln -sf ../C1D_SRC/*.[Ffh]90          . ; \'
446echo '  fi '
447echo '   @check=`grep TOP_SRC .config`              ; \'
448echo '   if [ -n "$$check" ] ; then  \'
449echo '   echo "   use TOP_SRC files"                ; \'
450echo '      \$(RM) trcstp.F90                      ; \'
451echo '      \$(RM) sms.F90                         ; \'
452echo '      \$(RM) initrc.F90                      ; \'
453echo '      ln -sf ../TOP_SRC/*.[Ffh]90          . ; \'
454echo '      ln -sf ../TOP_SRC/SMS/*.[Ffh]        . ; \'
455echo '      ln -sf ../TOP_SRC/SMS/*.[Ffh]90      . ; \'
456echo '      ln -sf ../TOP_SRC/TRP/*.[Ffh]90      . ; \'
457echo '  fi '
458echo '   @check=`grep OFF_SRC .config`              ; \'
459echo '   if [ -n "$$check" ] ; then                   \'
460echo '   echo "   use OFF_SRC files"                ; \'
461echo '      ln -sf ../OFF_SRC/*.[Ffh]90          . ; \'
462echo '      ln -sf ../OFF_SRC/*/*.[Ffh]90        . ; \'
463echo '  fi '
464echo '   @\$(RM) tmplist'
465echo '   @ls -1 | fgrep -v -f .patron  >tmplist'
466echo '   @cmp tmplist SRC_FILE_LIST.temp || { echo some routines have been added or suppressed ; \'
467echo '   sdiff -s tmplist SRC_FILE_LIST.temp ; cp tmplist SRC_FILE_LIST.temp ; \'
468echo '   \$(RM) model.o \$(MODEL_LIB) \$(SXMODEL_LIB) \$(EXEC_BIN) ; \'
469echo '   echo "Rebuilding the AA_make files" ; \'
470echo '   cd ..  ; ../UTIL/fait_AA_make ; echo " " ; \'
471echo '   echo "THE ins_make COMMAND in modipsl/util MUST BE RERUN PLEASE DO SO BEFORE gmake" ; \'
472echo '   echo "========================================== " ; \'
473echo '   ../../util/ins_make ; echo " " ;  false ; exit ; }'
474
Note: See TracBrowser for help on using the repository browser.