[697] | 1 | #!/bin/ksh |
---|
| 2 | ##set -vx |
---|
| 3 | ############################################################ |
---|
| 4 | # |
---|
| 5 | # Purpose : |
---|
| 6 | # This script aims to create create the AA_make file |
---|
| 7 | # in the WORK directory. |
---|
| 8 | # AA_make contains : |
---|
| 9 | # - compilation options speccific to NEMO |
---|
| 10 | # - compilation rules |
---|
| 11 | # - dependancies |
---|
| 12 | # Running the modipsl/util/ins_make command is needed AFTER |
---|
| 13 | # fait_AA_make. |
---|
| 14 | # |
---|
| 15 | # Method : |
---|
| 16 | # We use temporary files to perform the following steps : |
---|
| 17 | # 1- search all CPP keys in the code |
---|
| 18 | # 2- write compilation rules |
---|
| 19 | # 3- add compilation options add the beginning of AA_make |
---|
| 20 | # 4- search and write dependancies |
---|
| 21 | # 5- add some specific rules (links creation in the WORK) |
---|
| 22 | # |
---|
| 23 | ############################################################ |
---|
| 24 | #- |
---|
| 25 | echo "This script must be run from the ../modipsl/config/CONFIG_NAME directory" |
---|
| 26 | echo "" |
---|
| 27 | |
---|
| 28 | #- Save the previous BB_make file before its rebuild |
---|
| 29 | echo "Save the previous BB_make file before its rebuild" |
---|
| 30 | cp scripts/BB_make scripts/BB_make_save |
---|
| 31 | |
---|
| 32 | #- Start the BB_make rebuild step |
---|
| 33 | echo "Start the BB_make rebuild step" |
---|
| 34 | |
---|
| 35 | cd WORK |
---|
| 36 | pwd |
---|
| 37 | |
---|
| 38 | #- |
---|
| 39 | #- Search CPP keys --- |
---|
| 40 | liste_cle=$(egrep '^# *if[!( &]*def|^# *elif' *.[Fh] *.[Fh]90 2> /dev/null | grep key_ | sed 's/||/\ |
---|
| 41 | /' | sed 's/\&\&/\ |
---|
| 42 | /' | sed 's/^.*key_/key_/' | sed 's/ *[) ] *$//' | sort -u ) |
---|
| 43 | |
---|
| 44 | #- |
---|
| 45 | #- Write main compilation rules --- |
---|
| 46 | cat > tampon <<end |
---|
| 47 | |
---|
| 48 | .SUFFIXES: .f90 .F90 .F |
---|
| 49 | |
---|
| 50 | # Target |
---|
| 51 | all : diroce libioipsl key keyverif src_file_list libagrif \$(IOIPSL_LIB) \$(AGRIF_LIB) |
---|
| 52 | @echo -------------------------------------------- |
---|
| 53 | time gmake \$(EXEC_BIN) -j \$(NBPRC) |
---|
| 54 | @echo -------------------------------------------- |
---|
| 55 | @cp SRC_FILE_LIST.temp SRC_FILE_LIST |
---|
| 56 | @echo OPA model is OK |
---|
| 57 | |
---|
| 58 | # Cleaning objects, libraries and executables |
---|
| 59 | clean: |
---|
| 60 | ifeq (\$(AGRIF),use) |
---|
| 61 | -@(cd OPAFILES; ./efface) |
---|
| 62 | endif |
---|
| 63 | \$(RM) model.o \$(EXEC_BIN) |
---|
| 64 | \$(RM) \$(MODDIR)/oce_\$(NEMOLIB)/\$(COMP)/*.mod |
---|
| 65 | \$(RM) \$(MODEL_LIB)/*.o |
---|
| 66 | \$(RM) ../../../tmp/tmp_\$(NEMOLIB)/\$(COMP)/* |
---|
| 67 | @echo OPA model \(.o .mod libraries and executables are removed\) |
---|
| 68 | |
---|
| 69 | # Dependancies |
---|
| 70 | diroce: |
---|
| 71 | @if [ ! -d ../../../lib/oce_\$(NEMOLIB) ] ; then mkdir ../../../lib/oce_\$(NEMOLIB) ; fi |
---|
| 72 | @if [ ! -d ../../../tmp/tmp_\$(NEMOLIB) ] ; then mkdir ../../../tmp/tmp_\$(NEMOLIB) ; fi |
---|
| 73 | @if [ ! -d ../../../lib/oce_\$(NEMOLIB)/\$(COMP) ] ; then mkdir ../../../lib/oce_\$(NEMOLIB)/\$(COMP) ; fi |
---|
| 74 | @if [ ! -d ../../../tmp/tmp_\$(NEMOLIB)/\$(COMP) ] ; then mkdir ../../../tmp/tmp_\$(NEMOLIB)/\$(COMP) ; fi |
---|
| 75 | |
---|
| 76 | \$(EXEC_BIN) : \$(MODEL_LIB) agrif2model.o model.o |
---|
| 77 | ifeq (\$(AGRIF),use) |
---|
| 78 | \$(F_L) \$(L_X) -o \$(EXEC_BIN) model.o agrif2model.o \$(MODEL_LIB)/*.o \$(OASISMPI2_LIB) \$(IOIPSL_LIB) \$(AGRIF_LIB) \$(NCDF_LIB) \$(LIBMPI) \$(LIBMP) |
---|
| 79 | else |
---|
| 80 | \$(F_L) \$(L_X) -o \$(EXEC_BIN) model.o \$(MODEL_LIB)/*.o \$(OASISMPI2_LIB) \$(IOIPSL_LIB) \$(NCDF_LIB) \$(LIBMPI) \$(LIBMP) |
---|
| 81 | endif |
---|
| 82 | |
---|
| 83 | # Agrif library and conv |
---|
| 84 | libagrif : firstagrif mpiagrif |
---|
| 85 | ifeq (\$(AGRIF),use) |
---|
| 86 | @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) |
---|
| 87 | @( if [ ! -d OPAFILES/AGRIF_INC ]; then mkdir OPAFILES/AGRIF_INC ; fi ) |
---|
| 88 | @( if [ ! -d OPAFILES/AGRIF_MODELFILES ]; then mkdir OPAFILES/AGRIF_MODELFILES ; fi ) |
---|
| 89 | @(cd ../../../modeles/AGRIF ; \$(M_K) -f Makefile P_P="\$(AGRIF_MPI)" ) |
---|
| 90 | @cp -rf ../../../modeles/AGRIF/agrif_opa.in OPAFILES/. |
---|
| 91 | @cp -rf ../../../modeles/AGRIF/conv OPAFILES/. |
---|
| 92 | @cp -rf ../../../modeles/AGRIF/efface OPAFILES/. |
---|
| 93 | endif |
---|
| 94 | |
---|
| 95 | # Agrif interface with NEMO |
---|
| 96 | agrif2model.o : |
---|
| 97 | ifeq (\$(AGRIF),use) |
---|
| 98 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC \$*.F90 > OPAFILES/\$*.F90 |
---|
| 99 | @\$(F_C) \\ |
---|
| 100 | #-Q- aix -qsuffix=f=F90 \\ |
---|
| 101 | #-Q- ax_mono -qsuffix=f=F90 \\ |
---|
| 102 | #-Q- osxxlf -qsuffix=f=F90 \\ |
---|
| 103 | \$(P_P) \$(F_O) \\ |
---|
| 104 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 105 | #-Q- sxnec -R2 \\ |
---|
| 106 | #-Q- sx6nec -R2 \\ |
---|
| 107 | #-Q- sx8brodie -R2 \\ |
---|
| 108 | #-Q- sxdkrz -R2 \\ |
---|
| 109 | #-Q- eshpux -R2 \\ |
---|
| 110 | #-Q- aix -qsource \\ |
---|
| 111 | #-Q- ax_mono -qsource \\ |
---|
| 112 | OPAFILES/\$*.F90 || { mv \$(PREF).L \$(TMP) ; false ; exit ; } |
---|
| 113 | endif |
---|
| 114 | |
---|
| 115 | # IOIPSL library |
---|
| 116 | libioipsl : |
---|
| 117 | (cd ../../../modeles/IOIPSL/src ; \$(M_K) -f Makefile ) |
---|
| 118 | |
---|
| 119 | # Main program |
---|
| 120 | model.o : \$(MODEL_LIB) model.f90 |
---|
| 121 | @\$(F_C) \$(F_O) -c model.f90 |
---|
| 122 | |
---|
| 123 | # if the make script is stopped, one doesn't destroy library |
---|
| 124 | .PRECIOUS : \$(MODEL_LIB) |
---|
| 125 | #-Q- sxnec .PRECIOUS : \$(SXMODEL_LIB) |
---|
| 126 | #-Q- sx6nec .PRECIOUS : \$(SXMODEL_LIB) |
---|
| 127 | #-Q- sx8brodie .PRECIOUS : \$(SXMODEL_LIB) |
---|
| 128 | #-Q- sxdkrz .PRECIOUS : \$(SXMODEL_LIB) |
---|
| 129 | #-Q- eshpux .PRECIOUS : \$(SXMODEL_LIB) |
---|
| 130 | |
---|
| 131 | # library dependancies |
---|
| 132 | \$(MODEL_LIB): \$(LIB_OBJ) |
---|
| 133 | @echo |
---|
| 134 | @echo La bibliotheque est a jour |
---|
| 135 | @echo |
---|
| 136 | |
---|
| 137 | # Default rules |
---|
| 138 | .DEFAULTS: |
---|
| 139 | |
---|
| 140 | # rules for the .f90 files |
---|
| 141 | \$(MODEL_LIB)/%.o : %.f90 |
---|
| 142 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 143 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 144 | #-Q- sxnec -R2 \\ |
---|
| 145 | #-Q- sx6nec -R2 \\ |
---|
| 146 | #-Q- sx8brodie -R2 \\ |
---|
| 147 | #-Q- sxdkrz -R2 \\ |
---|
| 148 | #-Q- eshpux -R2 \\ |
---|
| 149 | #-Q- aix -qsource \\ |
---|
| 150 | #-Q- ax_mono -qsource \\ |
---|
| 151 | \$*.f90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 152 | @mv \$*.o \$(MODEL_LIB)/. |
---|
| 153 | @\$(RM) \$*.[f] |
---|
| 154 | @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce_\$(NEMOLIB)/\$(COMP) ; fi |
---|
| 155 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 156 | #-Q- ax_mono @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 157 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 158 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 159 | @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi |
---|
| 160 | |
---|
| 161 | # rules for the .F90 files |
---|
| 162 | \$(MODEL_LIB)/%.o : %.F90 |
---|
| 163 | ifeq (\$(AGRIF),use) |
---|
| 164 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC \$*.F90 > OPAFILES/\$*.F90 |
---|
| 165 | @(cd OPAFILES ; ./conv agrif_opa.in -rm \\ |
---|
| 166 | #-Q- linux -SubloopScalar \\ |
---|
| 167 | #-Q- lxiv8 -SubloopScalar \\ |
---|
| 168 | #-Q- g95 -SubloopScalar \\ |
---|
| 169 | #-Q- f95 -SubloopScalar \\ |
---|
| 170 | #-Q- osf1 -SubloopScalar \\ |
---|
| 171 | -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile \$*.F90) |
---|
| 172 | -@mv -f OPAFILES/AGRIF_MODELFILES/\$*.F90 OPAFILES/\$*.F90 |
---|
| 173 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC OPAFILES/\$*.F90 > OPAFILES/AGRIF_MODELFILES/\$*.F90 |
---|
| 174 | -@mv -f OPAFILES/AGRIF_MODELFILES/\$*.F90 OPAFILES/\$*.F90 |
---|
| 175 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 176 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 177 | #-Q- sxnec -R2 \\ |
---|
| 178 | #-Q- sx6nec -R2 \\ |
---|
| 179 | #-Q- sx8brodie -R2 \\ |
---|
| 180 | #-Q- sxdkrz -R2 \\ |
---|
| 181 | #-Q- eshpux -R2 \\ |
---|
| 182 | #-Q- aix -qsource \\ |
---|
| 183 | #-Q- ax_mono -qsource \\ |
---|
| 184 | OPAFILES/\$*.F90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 185 | else |
---|
| 186 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 187 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 188 | #-Q- sxnec -R2 \\ |
---|
| 189 | #-Q- sx6nec -R2 \\ |
---|
| 190 | #-Q- sx8brodie -R2 \\ |
---|
| 191 | #-Q- sxdkrz -R2 \\ |
---|
| 192 | #-Q- eshpux -R2 \\ |
---|
| 193 | #-Q- aix -qsource \\ |
---|
| 194 | #-Q- ax_mono -qsource \\ |
---|
| 195 | \$*.F90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 196 | endif |
---|
| 197 | @mv \$*.o \$(MODEL_LIB)/. |
---|
| 198 | @\$(RM) \$*.[f] |
---|
| 199 | @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce_\$(NEMOLIB)/\$(COMP) ; fi |
---|
| 200 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 201 | #-Q- ax_mono @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 202 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 203 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 204 | @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi |
---|
| 205 | |
---|
| 206 | # rules for the .F files |
---|
| 207 | \$(MODEL_LIB)/%.o : %.F |
---|
| 208 | @\$(F_C) \$(P_P) \$(F_F) \\ |
---|
| 209 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 210 | #-Q- sxnec -R2 \\ |
---|
| 211 | #-Q- sx6nec -R2 \\ |
---|
| 212 | #-Q- sx8brodie -R2 \\ |
---|
| 213 | #-Q- sxdkrz -R2 \\ |
---|
| 214 | #-Q- eshpux -R2 \\ |
---|
| 215 | #-Q- aix -qsource \\ |
---|
| 216 | #-Q- ax_mono -qsource \\ |
---|
| 217 | \$*.F || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 218 | @mv \$*.o \$(MODEL_LIB)/. |
---|
| 219 | @\$(RM) \$*.[f] |
---|
| 220 | @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce_\$(NEMOLIB)/\$(COMP) ; fi |
---|
| 221 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 222 | #-Q- ax_mono @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 223 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 224 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 225 | @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi |
---|
| 226 | |
---|
| 227 | # rules for the library from the .f files |
---|
| 228 | \$(MODEL_LIB)/%.o : %.f |
---|
| 229 | @\$(F_C) \$(F_O) \\ |
---|
| 230 | #-Q- fjvpp -Z \$*.L \\ |
---|
| 231 | #-Q- sxnec -R2 \\ |
---|
| 232 | #-Q- sx6nec -R2 \\ |
---|
| 233 | #-Q- sx8brodie -R2 \\ |
---|
| 234 | #-Q- sxdkrz -R2 \\ |
---|
| 235 | #-Q- eshpux -R2 \\ |
---|
| 236 | #-Q- aix -qsource \\ |
---|
| 237 | #-Q- ax_mono -qsource \\ |
---|
| 238 | \$*.f|| { if [ -f \$(PREF)\$*.L ] ; then mv \$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 239 | @mv \$*.o \$(MODEL_LIB)/. |
---|
| 240 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 241 | #-Q- ax_mono @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 242 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 243 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
| 244 | @if [ -f \$(PREF)\$*.L ] ; then mv \$*.L \$(TMP) ; fi |
---|
| 245 | |
---|
| 246 | end |
---|
| 247 | #- |
---|
| 248 | #- Compilation options --- |
---|
| 249 | exec 1> AA_make |
---|
| 250 | MAIN="model" |
---|
| 251 | echo '# $Header: /home/opalod/NEMOCVSROOT/VALID/fait_AA_make,v 1.22 2006/03/13 13:59:10 opalod Exp $' |
---|
| 252 | echo '# some variables' |
---|
| 253 | echo 'TMP = ../../../tmp/tmp_$(NEMOLIB)/$(COMP)' |
---|
| 254 | echo '#-Q- sxnec # Compiler options for NEMO (IDRIS SX5-NEC) ' |
---|
| 255 | echo '#-Q- sxnec F_O = -dw -Wf\"-A idbl4\" -sx5 -ftrace -C vsafe -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 256 | echo '#-Q- sx6nec # Compiler options NEMO (CEA SX6-NEC) ' |
---|
| 257 | echo '#-Q- sx6nec F_O = -size_t64 -dw -Wf\"-A dbl4\" -sx6 -C vsafe -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 -L transform' -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 258 | echo '#-Q- sx6nec F_O = -size_t64 -dw -Wf\"-A dbl4\" -sx6 -ftrace -C vsafe -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 259 | echo '#-Q- sx6nec F_F = $(F_O)' |
---|
| 260 | echo '#-Q- sx6nec L_X = $(L_O) -ftrace' |
---|
| 261 | echo '#-Q- sx8brodie # Compiler options NEMO (CEA SX6-NEC) ' |
---|
| 262 | echo '#-Q- sx8brodie F_O = -dw -Wf\"-A idbl4\" -sx8 -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 263 | echo '#-Q- sx8brodie F_F = $(F_O) -f3' |
---|
| 264 | echo '#-Q- sx8brodie L_X = $(L_O)' |
---|
| 265 | echo '#-Q- sxdkrz # Compiler options for NEMO (DKRZ SX6-NEC) ' |
---|
| 266 | echo '#-Q- sxdkrz F_O = -ew -sx6 -ftrace -C vsafe -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh" -Wf"-pvctl noassume loopcnt=10000" -L transform -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 267 | echo '#-Q- sxdkrz F_F = $(F_O)' |
---|
| 268 | echo '#-Q- sxdkrz L_X = $(L_O) -ftrace' |
---|
| 269 | echo '#-Q- eshpux # Compiler options for NEMO (Earth Simulator)' |
---|
| 270 | echo '#-Q- eshpux # for super perfs!' |
---|
| 271 | echo '#-Q- eshpux # F_O = $(FTRACE) -pi nest=5 line=10000 expin=Fmpplib.F -Wf,-A idbl4 -C hopt -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 272 | echo '#-Q- eshpux # regular options!' |
---|
| 273 | echo '#-Q- eshpux F_O = $(FTRACE) -Wf,-A idbl4 -C vsafe -P stack -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -Wf,-pvctl nomsg -Wf"-O nomsg" -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 274 | echo '#-Q- eshpux F_F = $(F_O)' |
---|
| 275 | echo '#-Q- eshpux L_X = $(L_O)' |
---|
| 276 | echo '#-Q- linux # Compiler options for NEMO (pgf version)' |
---|
| 277 | echo '#-Q- linux F_O = -Mlist -O3 -byteswapio -r8 -I $(MODDIR) -I$(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 278 | echo '#-Q- linux F_F = $(F_O)' |
---|
| 279 | echo '#-Q- linux L_X = -r8 -O3' |
---|
| 280 | echo '#-Q- lxiv7 # Compiler options for NEMO (ifc version)' |
---|
| 281 | echo '#-Q- lxiv7 F_O = -O3 -r8 -I $(MODDIR) -I$(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 282 | echo '#-Q- lxiv7 L_X = -r8 -O3' |
---|
| 283 | echo '#-Q- lxiv8 # Compiler options for NEMO (ifort version)' |
---|
| 284 | echo '#-Q- lxiv8 F_O = -O3 -r8 -I $(MODDIR) -I$(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 285 | echo '#-Q- lxiv8 F_F = $(F_O) ' |
---|
| 286 | echo '#-Q- lxiv8 L_X = -r8 -O3' |
---|
| 287 | echo '#-Q- g95 # Compiler options for NEMO (g95 version)' |
---|
| 288 | echo '#-Q- g95 F_O = -O3 -fno-second-underscore -r8 -funroll-all-loops -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 289 | echo '#-Q- g95 F_F = $(F_O)' |
---|
| 290 | echo '#-Q- g95 L_X = -r8 -O3' |
---|
| 291 | echo '#-Q- aix # Compiler options for NEMO (aix version)' |
---|
| 292 | echo '#-Q- aix F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 293 | echo '#-Q- aix F_F = -O3 -qsave -qrealsize=8 -qsuffix=f=f -qsuffix=cpp=F -qfixed=132 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 294 | echo '#-Q- aix L_O = $(F_P) -q64 -O3' |
---|
| 295 | echo '#-Q- aix L_X = $(L_O)' |
---|
| 296 | echo '#-Q- ax_mono # Compiler options for NEMO (aix version)' |
---|
| 297 | echo '#-Q- ax_mono F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 298 | echo '#-Q- ax_mono F_F = -O3 -qsave -qrealsize=8 -qsuffix=f=f -qsuffix=cpp=F -qfixed=132 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 299 | echo '#-Q- ax_mono L_O = $(F_P) -q64 -O3' |
---|
| 300 | echo '#-Q- ax_mono L_X = $(L_O)' |
---|
| 301 | echo '#-Q- osxxlf # Compiler options for NEMO (osxxlf version)' |
---|
| 302 | echo '#-Q- osxxlf F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -qextname -qstrict -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 303 | echo '#-Q- osxxlf F_F = -O3 -qsave -qrealsize=8 -qsuffix=f=f -qsuffix=cpp=F -qfixed=132 -qsource -qextname -qstrict -qmaxmem=-1 -I $(MODDIR) -I $(MODEL_LIB) -I $(NCDF_INC)' |
---|
| 304 | echo '#-Q- osxxlf L_X = -qrealsize=8 -O3' |
---|
| 305 | |
---|
| 306 | |
---|
| 307 | echo 'PREF=' |
---|
| 308 | echo '#-Q- sxnec PREF=i.' |
---|
| 309 | echo '#-Q- sx6nec PREF=i.' |
---|
| 310 | echo '#-Q- sx8brodie PREF=i.' |
---|
| 311 | echo '#-Q- sxdkrz PREF=i.' |
---|
| 312 | echo '#-Q- eshpux PREF=i.' |
---|
| 313 | echo '' |
---|
| 314 | echo '#Run type: mon, mpi or omp ' |
---|
| 315 | echo 'ifeq ($(COMP),mon)' |
---|
| 316 | echo '#-Q- osxxlf override F_C = xlf90 -c' |
---|
| 317 | echo '#-Q- osxxlf override F_L = xlf90' |
---|
| 318 | echo 'endif' |
---|
| 319 | echo '' |
---|
| 320 | echo 'ifeq ($(COMP),memo)' |
---|
| 321 | echo '#-Q- sx8brodie F_O := $(F_O) -P static' |
---|
| 322 | echo '#-Q- ax_mono F_O := $(F_O) -qnosave' |
---|
| 323 | echo '#-Q- osxxlf F_O := $(F_O) -qnosave' |
---|
| 324 | echo 'endif' |
---|
| 325 | echo '' |
---|
| 326 | echo 'ifeq ($(COMP),mpi)' |
---|
| 327 | echo 'P_P := $(P_P) key_mpp_mpi' |
---|
| 328 | echo '#-Q- osxxlf override F_C = mpif90 -c' |
---|
| 329 | echo '#-Q- osxxlf override F_L = mpif90' |
---|
| 330 | echo 'endif' |
---|
| 331 | echo '' |
---|
| 332 | echo 'ifeq ($(COMP),omp)' |
---|
| 333 | echo 'P_P := $(P_P) key_mpp_omp' |
---|
| 334 | echo '#-Q- sx8brodie F_O := $(F_O) -P auto' |
---|
| 335 | echo '#-Q- sx8brodie override F_F = $(F_O) ' |
---|
| 336 | echo '#-Q- sx8brodie L_X := $(L_X) -P auto' |
---|
| 337 | echo 'endif' |
---|
| 338 | echo '' |
---|
| 339 | echo '# add suffix to P_P' |
---|
| 340 | echo 'P_P := $(P_P:%=$(prefix)%)' |
---|
| 341 | echo '' |
---|
| 342 | echo '# Some tests to define variables related to Agrif compilation' |
---|
| 343 | echo '# Please do not change ' |
---|
| 344 | echo 'ifneq (,$(findstring key_agrif,$(P_P)))' |
---|
| 345 | echo 'AGRIF=use' |
---|
| 346 | echo 'else' |
---|
| 347 | echo 'AGRIF=notuse' |
---|
| 348 | echo 'AGRIF_LIB=' |
---|
| 349 | echo 'endif' |
---|
| 350 | echo 'ifneq (,$(findstring key_mpp_mpi,$(P_P)))' |
---|
| 351 | echo 'AGRIF_MPI=-DAGRIF_MPI' |
---|
| 352 | echo 'else' |
---|
| 353 | echo 'AGRIF_MPI=' |
---|
| 354 | echo 'endif' |
---|
| 355 | |
---|
| 356 | echo '' |
---|
| 357 | # Write the cpp key list with one key by line |
---|
| 358 | echo 'KEY_LIST = \c' |
---|
| 359 | for i in ${liste_cle} |
---|
| 360 | do |
---|
| 361 | echo "\\" |
---|
| 362 | echo " $i \c" |
---|
| 363 | done |
---|
| 364 | |
---|
| 365 | echo '' |
---|
| 366 | echo '# .o file list in the library' |
---|
| 367 | echo 'LIB_OBJ = \c' |
---|
| 368 | # |
---|
| 369 | # find all .f in the current directory |
---|
| 370 | # build object files list LIB_OBJ |
---|
| 371 | # one dependancy by line |
---|
| 372 | |
---|
| 373 | for i in `ls *.f 2> /dev/null` |
---|
| 374 | do |
---|
| 375 | bn=`basename $i .f` |
---|
| 376 | if [ "${bn}" != "${MAIN}" ] |
---|
| 377 | then |
---|
| 378 | if [ "${bn}" != "agrif2model" ] |
---|
| 379 | then |
---|
| 380 | echo "\\" |
---|
| 381 | echo " \$(MODEL_LIB)/$bn.o\c" |
---|
| 382 | fi |
---|
| 383 | fi |
---|
| 384 | done |
---|
| 385 | |
---|
| 386 | # find all .f90 in the current directory |
---|
| 387 | # build object files list LIB_OBJ |
---|
| 388 | # one dependancy by line |
---|
| 389 | |
---|
| 390 | for i in `ls *.f90 ` |
---|
| 391 | do |
---|
| 392 | bn=`basename $i .f90` |
---|
| 393 | if [ "${bn}" != "${MAIN}" ] |
---|
| 394 | then |
---|
| 395 | if [ "${bn}" != "agrif2model" ] |
---|
| 396 | then |
---|
| 397 | echo "\\" |
---|
| 398 | echo " \$(MODEL_LIB)/$bn.o\c" |
---|
| 399 | fi |
---|
| 400 | fi |
---|
| 401 | done |
---|
| 402 | |
---|
| 403 | # find all .F90 in the current directory |
---|
| 404 | # build object files list LIB_OBJ |
---|
| 405 | # one dependancy by line |
---|
| 406 | |
---|
| 407 | for i in `ls *.F90 ` |
---|
| 408 | do |
---|
| 409 | bn=`basename $i .F90` |
---|
| 410 | if [ "${bn}" != "${MAIN}" ] |
---|
| 411 | then |
---|
| 412 | if [ "${bn}" != "agrif2model" ] |
---|
| 413 | then |
---|
| 414 | echo "\\" |
---|
| 415 | echo " \$(MODEL_LIB)/$bn.o\c" |
---|
| 416 | fi |
---|
| 417 | fi |
---|
| 418 | done |
---|
| 419 | |
---|
| 420 | # find all .F in the current directory |
---|
| 421 | # build object files list LIB_OBJ |
---|
| 422 | # one dependancy by line |
---|
| 423 | |
---|
| 424 | for i in `ls *.F 2> /dev/null ` |
---|
| 425 | do |
---|
| 426 | bn=`basename $i .F` |
---|
| 427 | if [ "${bn}" != "${MAIN}" ] |
---|
| 428 | then |
---|
| 429 | if [ "${bn}" != "agrif2model" ] |
---|
| 430 | then |
---|
| 431 | echo "\\" |
---|
| 432 | echo " \$(MODEL_LIB)/$bn.o\c" |
---|
| 433 | fi |
---|
| 434 | fi |
---|
| 435 | done |
---|
| 436 | |
---|
| 437 | echo "" |
---|
| 438 | |
---|
| 439 | cat tampon |
---|
| 440 | rm tampon |
---|
| 441 | #- |
---|
| 442 | #- Write all dependancies --- |
---|
| 443 | |
---|
| 444 | for fic in `ls *.f90 *.F90 *.F 2> /dev/null ` |
---|
| 445 | do |
---|
| 446 | if [ "${fic}" != "agrif2model.F90" ] |
---|
| 447 | then |
---|
| 448 | if [ "${fic}" != "${MAIN}.[Ff]" ] |
---|
| 449 | then |
---|
| 450 | i=0 |
---|
| 451 | j=0 |
---|
| 452 | dep="" |
---|
| 453 | inc="" |
---|
| 454 | inc2="" |
---|
| 455 | inc3="" |
---|
| 456 | luse0="" |
---|
| 457 | luse1="" |
---|
| 458 | luse2="" |
---|
| 459 | luse3="" |
---|
| 460 | key="" |
---|
| 461 | #- search include files (old ice model form, should it be suppressed ?) |
---|
| 462 | for inc in `sed -n 's/^[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 463 | do |
---|
| 464 | dep="$dep\n$inc" |
---|
| 465 | done |
---|
| 466 | |
---|
| 467 | #- take into account CPP dependancies keys only (par_trc_trp example) |
---|
| 468 | for key in `sed -n 's/^#[ eElL]*[iF][fF][ ]*[dD][eE][fF][iI][nN][eE][dD][ ]*//p' $fic | sort -u` |
---|
| 469 | do |
---|
| 470 | j=1 |
---|
| 471 | done |
---|
| 472 | |
---|
| 473 | #- search include files on 3 levels |
---|
| 474 | for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 475 | do |
---|
| 476 | j=1 |
---|
| 477 | dep="$dep\n$inc" |
---|
| 478 | for inc2 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` |
---|
| 479 | do |
---|
| 480 | dep="$dep\n$inc2" |
---|
| 481 | #- search include in include (third level !!!) |
---|
| 482 | for inc3 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc2 | sort -u` |
---|
| 483 | do |
---|
| 484 | dep="$dep\n$inc3" |
---|
| 485 | done |
---|
| 486 | done |
---|
| 487 | done |
---|
| 488 | |
---|
| 489 | #- search USE in include files |
---|
| 490 | for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 491 | do |
---|
| 492 | for fuse0 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $inc | sort -u` |
---|
| 493 | do |
---|
| 494 | if [ $fuse0 != "ioipsl" ] |
---|
| 495 | then |
---|
| 496 | if [ $fuse0 != "netcdf" ] |
---|
| 497 | then |
---|
| 498 | if [ $fuse0 != "Agrif_Util" ] |
---|
| 499 | then |
---|
| 500 | if [ $fuse0 != "Agrif_Types" ] |
---|
| 501 | then |
---|
| 502 | lfuse0=$fuse0.f90 |
---|
| 503 | [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90 |
---|
| 504 | luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)/$fuse0.o" |
---|
| 505 | fi |
---|
| 506 | fi |
---|
| 507 | fi |
---|
| 508 | fi |
---|
| 509 | done |
---|
| 510 | |
---|
| 511 | #- search USE in files included in included files and add to luse0 |
---|
| 512 | |
---|
| 513 | for inc2 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` |
---|
| 514 | do |
---|
| 515 | for fuse0 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $inc2 | sort -u` |
---|
| 516 | do |
---|
| 517 | if [ $fuse0 != "ioipsl" ] |
---|
| 518 | then |
---|
| 519 | if [ $fuse0 != "netcdf" ] |
---|
| 520 | then |
---|
| 521 | if [ $fuse0 != "Agrif_Util" ] |
---|
| 522 | then |
---|
| 523 | if [ $fuse0 != "Agrif_Types" ] |
---|
| 524 | then |
---|
| 525 | lfuse0=$fuse0.f90 |
---|
| 526 | [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90 |
---|
| 527 | luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)/$fuse0.o" |
---|
| 528 | fi |
---|
| 529 | fi |
---|
| 530 | fi |
---|
| 531 | fi |
---|
| 532 | done |
---|
| 533 | done |
---|
| 534 | done |
---|
| 535 | |
---|
| 536 | #- search USE (and USE of USE and so on three levels) |
---|
| 537 | for fuse1 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $fic | sort -u` |
---|
| 538 | do |
---|
| 539 | if [ $fuse1 != "ioipsl" ] |
---|
| 540 | then |
---|
| 541 | if [ $fuse1 != "netcdf" ] |
---|
| 542 | then |
---|
| 543 | if [ $fuse1 != "Agrif_Util" ] |
---|
| 544 | then |
---|
| 545 | if [ $fuse1 != "Agrif_Types" ] |
---|
| 546 | then |
---|
| 547 | lfuse1=$fuse1.f90 |
---|
| 548 | [ -f $fuse1.F90 ] && lfuse1=$fuse1.F90 |
---|
| 549 | luse1="$luse1\n$lfuse1\n\$(MODEL_LIB)/$fuse1.o" |
---|
| 550 | for fuse2 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $lfuse1 | sort -u` |
---|
| 551 | do |
---|
| 552 | if [ $fuse2 != "ioipsl" ] |
---|
| 553 | then |
---|
| 554 | if [ $fuse2 != "netcdf" ] |
---|
| 555 | then |
---|
| 556 | if [ $fuse2 != "Agrif_Util" ] |
---|
| 557 | then |
---|
| 558 | if [ $fuse2 != "Agrif_Types" ] |
---|
| 559 | then |
---|
| 560 | lfuse2=$fuse2.f90 |
---|
| 561 | [ -f $fuse2.F90 ] && lfuse2=$fuse2.F90 |
---|
| 562 | luse2="$luse2\n$lfuse2\n\$(MODEL_LIB)/$fuse2.o" |
---|
| 563 | # on cherche les USE dans le fichier deja USE (3eme niveau! balaise!) |
---|
| 564 | for fuse3 in `sed -n 's/^#[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $lfuse2 | sort -u` |
---|
| 565 | do |
---|
| 566 | if [ $fuse3 != "ioipsl" ] |
---|
| 567 | then |
---|
| 568 | if [ $fuse3 != "netcdf" ] |
---|
| 569 | then |
---|
| 570 | if [ $fuse3 != "Agrif_Util" ] |
---|
| 571 | then |
---|
| 572 | if [ $fuse3 != "Agrif_Types" ] |
---|
| 573 | then |
---|
| 574 | luse3="$luse3\n$lfuse3\n\$(MODEL_LIB)/$fuse3.o" |
---|
| 575 | fi |
---|
| 576 | fi |
---|
| 577 | fi |
---|
| 578 | fi |
---|
| 579 | done |
---|
| 580 | fi |
---|
| 581 | fi |
---|
| 582 | fi |
---|
| 583 | fi |
---|
| 584 | done |
---|
| 585 | fi |
---|
| 586 | fi |
---|
| 587 | fi |
---|
| 588 | fi |
---|
| 589 | done |
---|
| 590 | #- |
---|
| 591 | #- dep contains all dependancies |
---|
| 592 | echo "\$(MODEL_LIB)/`echo $fic|awk -F. '{print $1}'`.o : \c" |
---|
| 593 | for depele in `echo $luse3 | sort -u` `echo $luse2 | sort -u` `echo $luse1 | sort -u` `echo $luse0 | sort -u` `echo $dep | sort -u` |
---|
| 594 | do |
---|
| 595 | echo "\\" |
---|
| 596 | echo " $depele \c" |
---|
| 597 | let i=i+1 # pour signaler le premier |
---|
| 598 | done |
---|
| 599 | |
---|
| 600 | #- |
---|
| 601 | #- add dependancies with IOIPSL library (if source files contains IOIPSL) |
---|
| 602 | grep -i 'use *ioipsl' ${fic} >/dev/null && ( echo "\\" ; echo " \$(IOIPSL_LIB) \c") |
---|
| 603 | |
---|
| 604 | #- |
---|
| 605 | #- add dependancies with IOIPSL library (if source files contains Agrif_*) |
---|
| 606 | grep -i 'use Agrif_*' ${fic} >/dev/null && ( echo "\\" ; echo " \$(AGRIF_LIB) \c") |
---|
| 607 | |
---|
| 608 | #- |
---|
| 609 | #- on ajoute la dependance avecadd dependancies with KEY_CPP (if source file inclides cp keys) |
---|
| 610 | if [ ${j} != "0" ] |
---|
| 611 | then |
---|
| 612 | echo "\\" |
---|
| 613 | echo " KEY_CPP \c" |
---|
| 614 | fi |
---|
| 615 | #- |
---|
| 616 | #- end with the file itself |
---|
| 617 | echo "\\" |
---|
| 618 | echo " $fic" |
---|
| 619 | fi |
---|
| 620 | fi |
---|
| 621 | echo $fic done >/dev/tty |
---|
| 622 | done |
---|
| 623 | #- |
---|
| 624 | #- Write some special rules --- |
---|
| 625 | echo '# agrif previous use' |
---|
| 626 | echo "firstagrif:" |
---|
| 627 | echo "ifeq (\$(AGRIF),use)" |
---|
| 628 | echo ' @if [ -z "`cat KEY_CPP | grep key_agrif`" ]; then $(RM) model.o $(MODDIR)/oce_$(NEMOLIB)/$(COMP)/*.mod $(SXMODEL_LIB); fi' |
---|
| 629 | echo "else" |
---|
| 630 | echo ' @if [ -n "`cat KEY_CPP | grep key_agrif`" ]; then $(RM) -r OPAFILES model.o $(MODDIR)/oce_$(NEMOLIB)/$(COMP)/*.mod $(SXMODEL_LIB); fi' |
---|
| 631 | echo "endif" |
---|
| 632 | #- |
---|
| 633 | echo '#- RB : this rule is a pretty miserable trick to be able to re-compile NEMP-AGRIF-mono after NEMO-AGRIF-mpp' |
---|
| 634 | echo '#- I guess the good correction should be in AGRIF/LIB/toamr.c for the conv, to remove useless allocation declarations in AGRIF_INC' |
---|
| 635 | echo '# recompile all in this case' |
---|
| 636 | echo "mpiagrif:" |
---|
| 637 | echo "ifeq (\$(AGRIF),use)" |
---|
| 638 | echo "ifeq (,\$(AGRIF_MPI))" |
---|
| 639 | echo ' @if [ -n "`cat KEY_CPP | grep key_mpp_mpi`" ]; then $(RM) -r OPAFILES model.o $(MODDIR)/oce_$(NEMOLIB)/$(COMP)/*.mod $(SXMODEL_LIB); fi' |
---|
| 640 | echo "endif" |
---|
| 641 | echo "endif" |
---|
| 642 | #- |
---|
| 643 | echo '# key changing control' |
---|
| 644 | echo "key: " |
---|
| 645 | echo " @echo CHANGE of CPP KEYS yes/no ?" |
---|
| 646 | echo " -@if [ \"\`cat KEY_CPP\`\" != \"\$(P_P:\$(prefix)%=%)\" ] ; then \\" |
---|
| 647 | echo " echo CPP options changed ; echo \"\$(P_P:\$(prefix)%=%)\" > KEY_CPP ; fi " |
---|
| 648 | #- |
---|
| 649 | echo '# check key values' |
---|
| 650 | echo "keyverif:" |
---|
| 651 | echo ' @echo CHECKING KEY' |
---|
| 652 | echo ' @echo KEY USED : ' |
---|
| 653 | echo ' @for v in ` echo $(P_P:$(prefix)%=%) ` ; \' |
---|
| 654 | echo ' do \' |
---|
| 655 | echo ' echo $$v ;\' |
---|
| 656 | echo ' w=`echo $$v | cut -c1-3` ; \' |
---|
| 657 | echo ' if [ $$w = `echo "key"` ] ; then \' |
---|
| 658 | echo ' r=n ; \' |
---|
| 659 | echo ' echo " $(KEY_LIST) " | (grep $$v >/dev/null 2>&1) || r=o ; \' |
---|
| 660 | echo ' if [ $$r != "n" ] ; then \' |
---|
| 661 | echo ' echo "UNKNOWN KEY" ;\' |
---|
| 662 | echo ' false ; \' |
---|
| 663 | echo ' exit ; \' |
---|
| 664 | echo ' fi \' |
---|
| 665 | echo ' fi \' |
---|
| 666 | echo ' done' |
---|
| 667 | echo '# Checking the number of routines' |
---|
| 668 | echo "src_file_list: EMPTY" |
---|
| 669 | echo ' @echo CHECKING THE NUMBER AND NAMES OF SOURCE FILES ' |
---|
| 670 | echo ' @$(RM) `ls | fgrep -v -f .patron` ' |
---|
| 671 | echo ' @check=`grep OPA_SRC .config` ; \' |
---|
| 672 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 673 | echo ' echo " use OPA_SRC files" ; \' |
---|
| 674 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/*.[Ffh]90 . ; \' |
---|
| 675 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/DYN/*.[Ffh]90 . ; \' |
---|
| 676 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/TRA/*.[Ffh]90 . ; \' |
---|
| 677 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/TRD/*.[Ffh]90 . ; \' |
---|
| 678 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/DIA/*.[Ffh]90 . ; \' |
---|
| 679 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/DOM/*.[Ffh]90 . ; \' |
---|
| 680 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/OBC/*.[Ffh]90 . ; \' |
---|
| 681 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/FLO/*.[Ffh]90 . ; \' |
---|
| 682 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/LDF/*.[Ffh]90 . ; \' |
---|
| 683 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/ZDF/*.[Ffh]90 . ; \' |
---|
| 684 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/SOL/*.[Ffh]90 . ; \' |
---|
| 685 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/DTA/*.[Ffh]90 . ; \' |
---|
| 686 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/SBC/*.[Ffh]90 . ; \' |
---|
| 687 | echo ' ln -sf ../../../modeles/NEMO/OPA_SRC/IOM/*.[Ffh]90 . ; \' |
---|
| 688 | echo ' fi ' |
---|
| 689 | echo ' @check=`grep LIM_SRC .config` ; \' |
---|
| 690 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 691 | echo ' echo " use LIM_SRC files" ; \' |
---|
| 692 | echo ' ln -sf ../../../modeles/NEMO/LIM_SRC/*.[Ffh]90 . ; \' |
---|
| 693 | echo ' fi ' |
---|
| 694 | echo ' @check=`grep NST_SRC .config` ; \' |
---|
| 695 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 696 | echo ' echo " use NST_SRC files" ; \' |
---|
| 697 | echo ' \$(RM) agrif_opa_interp.F90 ; \' |
---|
| 698 | echo ' \$(RM) agrif_opa_sponge.F90 ; \' |
---|
| 699 | echo ' \$(RM) agrif_opa_update.F90 ; \' |
---|
| 700 | echo ' ln -sf ../../../modeles/NEMO/NST_SRC/*.[Ffh]90 . ; \' |
---|
| 701 | echo ' fi ' |
---|
| 702 | echo ' @check=`grep C1D_SRC .config` ; \' |
---|
| 703 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 704 | echo ' echo " use C1D_SRC files" ; \' |
---|
| 705 | echo ' ln -sf ../../../modeles/NEMO/C1D_SRC/*.[Ffh]90 . ; \' |
---|
| 706 | echo ' fi ' |
---|
| 707 | echo ' @check=`grep TOP_SRC .config` ; \' |
---|
| 708 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 709 | echo ' echo " use TOP_SRC files" ; \' |
---|
| 710 | echo ' \$(RM) trcstp.F90 ; \' |
---|
| 711 | echo ' \$(RM) sms.F90 ; \' |
---|
| 712 | echo ' \$(RM) initrc.F90 ; \' |
---|
| 713 | echo ' ln -sf ../../../modeles/NEMO/TOP_SRC/*.[Ffh]90 . ; \' |
---|
| 714 | echo ' ln -sf ../../../modeles/NEMO/TOP_SRC/SMS/*.[Ffh] . ; \' |
---|
| 715 | echo ' ln -sf ../../../modeles/NEMO/TOP_SRC/SMS/*.[Ffh]90 . ; \' |
---|
| 716 | echo ' ln -sf ../../../modeles/NEMO/TOP_SRC/TRP/*.[Ffh]90 . ; \' |
---|
| 717 | echo ' fi ' |
---|
| 718 | echo ' @check=`grep OFF_SRC .config` ; \' |
---|
| 719 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 720 | echo ' echo " use OFF_SRC files" ; \' |
---|
| 721 | echo ' ln -sf ../../../modeles/NEMO/OFF_SRC/*.[Ffh]90 . ; \' |
---|
| 722 | echo ' ln -sf ../../../modeles/NEMO/OFF_SRC/*/*.[Ffh]90 . ; \' |
---|
| 723 | echo ' fi ' |
---|
| 724 | echo ' ' |
---|
| 725 | echo ' @mn=`awk '"'"'{ print $$1 }'"'"' .config ` ; \' |
---|
| 726 | echo ' myrep=../../../config/$$mn/MY_SRC ; \' |
---|
| 727 | echo ' echo "*** Dealing with my modified source code, located in" $$myrep ; \' |
---|
| 728 | echo ' for i in `ls $$myrep` ; do \' |
---|
| 729 | echo ' [ -f $$i ] && \$(RM) $$i ;\' |
---|
| 730 | echo ' done ; \' |
---|
| 731 | echo ' myrep_list=`(cd $$myrep ; ls *.[Ffh]90 *.[Ffh] *.mk)` ; \' |
---|
| 732 | echo ' if [ -n "$$myrep_list" ] ; then \' |
---|
| 733 | echo ' for F in $$myrep_list; do \' |
---|
| 734 | echo ' echo "---> Reconstruct link to MY_SRC/$$F" ; \' |
---|
| 735 | echo ' ln -sf $$myrep/$$F . ; \' |
---|
| 736 | echo ' done ; \' |
---|
| 737 | echo ' fi ' |
---|
| 738 | echo ' ' |
---|
| 739 | echo ' @\$(RM) tmplist' |
---|
| 740 | echo ' @ls -1 | fgrep -v -f .patron >tmplist' |
---|
| 741 | echo ' @cmp tmplist SRC_FILE_LIST.temp || { echo some routines have been added or suppressed ; \' |
---|
| 742 | echo ' sdiff -s tmplist SRC_FILE_LIST.temp ; cp tmplist SRC_FILE_LIST.temp ; \' |
---|
| 743 | echo ' \$(RM) model.o \$(MODEL_LIB)/*.o \$(EXEC_BIN) ; \' |
---|
| 744 | echo ' echo "Rebuilding the AA_make files" ; \' |
---|
| 745 | echo ' cd .. ; ../VALID/fait_AA_make ; echo " " ; \' |
---|
| 746 | echo ' echo "THE ins_make COMMAND in modipsl/util MUST BE RERUN PLEASE DO SO BEFORE gmake" ; \' |
---|
| 747 | echo ' echo "========================================== " ; \' |
---|
| 748 | echo ' ../../util/ins_make -w \$(NEMOLIB) ; echo " " ; false ; exit ; }' |
---|
| 749 | echo "EMPTY: " |
---|
| 750 | exec > /dev/null |
---|
| 751 | |
---|