Changeset 671
- Timestamp:
- May 25, 2012, 11:11:42 AM (13 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r651 r671 668 668 - Moved 1d water initialization from physiqu to rcm1d 669 669 - All enertests in physiq written in a matricial (F90) way. The rest of physiqu should follow soon 670 671 == 25/05/2012 == EM 672 - Significant update on how the number of scatterers is managed: 673 Instead of having to manualy change 'nearkind' in radinc_h.F90, the 674 number of scatterers must now be set when compiling, using makegcm 675 "makegcm -s 1" for one scatterer or "makegcm -s 2" for two (e.g. dust 676 and water ice), default behaviour (ie not specifying -s #) is -s 1 677 Modified phystd/radinc_h.F90 , added directory phystd/scatterers 678 with script make_scatterers , and adapted makegcm* scripts. -
trunk/LMDZ.GENERIC/libf/phystd/radinc_h.F90
r543 r671 5 5 #include "dimensions.h" 6 6 #include "bands.h" 7 #include"scatterers.h" 7 8 8 9 !====================================================================== … … 50 51 ! can in princple be anything: currently it's H2O. 51 52 ! 52 ! NAERKIND The number of radiatively active aerosol types53 ! 53 ! NAERKIND The number of radiatively active species 54 ! (set in scatterers.h ; built when compiling with makegcm -s #) 54 55 ! NSIZEMAX The maximum number of aerosol particle sizes 55 56 ! … … 69 70 integer, parameter :: L_NSPECTV = NBvisible 70 71 71 integer, parameter :: NAERKIND = 2 72 ! integer, parameter :: NAERKIND = 2 ! set in scatterers.h 72 73 real, parameter :: L_TAUMAX = 35 73 74 -
trunk/LMDZ.GENERIC/makegcm_g95
r646 r671 6 6 ######################################################################## 7 7 set dim="64x48x32" 8 set physique= mars8 set physique=std 9 9 set phys="PHYS=$physique" 10 set include='-I$(LIBF)/grid -I$(LIBF)/bibio -I. -I$(LIBF)/aeronomars'10 set include='-I$(LIBF)/grid -I$(LIBF)/bibio -I.' 11 11 set ntrac = 1 12 12 set filtre=filtrez 13 13 set grille=reg 14 14 set dyntype="dyn" 15 set bands="32x36" 16 set scatterers="1" 15 17 ######################################################################## 16 18 # path a changer contenant les sources et les objets du modele … … 25 27 setenv LIBOGCM $LMDGCM/libo 26 28 # NetCDF 27 # 64 bit machines 28 # setenv NCDFLIB /donnees/emlmd/netcdf64_g95/netcdf-3.6.1/lib29 # setenv NCDFINC /donnees/emlmd/netcdf64_g95/netcdf-3.6.1/include29 # 64 bit machines what is below is OK on LMD machines 30 setenv NCDFLIB /donnees/emlmd/netcdf64-4.0.1_g95/lib 31 setenv NCDFINC /donnees/emlmd/netcdf64-4.0.1_g95/include 30 32 #else 31 33 # setenv NCDFLIB /distrib/local/netcdf/g95_32bits/lib … … 180 182 else if $LINUX then 181 183 # Ehouarn 'g95' compiler 182 set optim90=" -O2 -fstatic -fzero -Wall"183 set optimtru90=" -O2 -fstatic -fzero -Wall"184 set optim90="-O3 -fstatic -funroll-loops " 185 set optimtru90="-O3 -fstatic -funroll-loops " 184 186 # set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -Wl,-Bstatic " 185 187 # Ehouarn: there is no /usr/local/pgi/linux86/lib, but it doesn't matter … … 241 243 242 244 243 244 245 Par default, la commande makegcm: 246 --------------------------------- 247 248 1. compile une serie de sous programmes se trouvant dans des sous-repertoires 249 de $LMDGCM/libf. 250 Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN 251 sur $LIBOGCM. 252 253 2. Ensuite, makegcm compile le programme prog.f se trouvant par default sur 254 $LMDGCM/libf/dyn3d et effectue le lien avec l ensemble des librairies. 255 256 La variable '$LMDGCM' doit etre initialisee dans votre .cshrc ou en dur 257 dans la comande makegcm. 258 259 La commande makegcm est faite pour permettre de gerer en parallele des 260 versions differentes du modele, compilees avec des options de compilation 261 et des dimensions differentes sans avoir a chaque fois a recompiler tout 262 le modele. 263 264 Les librairies FORTRAN sont stoquees sur le directory $LIBOGCM. 245 The makegcm script: 246 ------------------- 247 248 1. compiles a series of subroutines located in the $LMDGCM/libf 249 sub-directories. 250 The objects are then stored in the libraries in $LIBOGCM. 251 252 2. then, makegcm compiles program prog.f located by default in 253 $LMDGCM/libf/dyn3d and makes the link with the libraries. 254 255 Environment Variables '$LMDGCM' and '$LIBOGCM' 256 must be set as environment variables or directly 257 in the makegcm file. 258 259 The makegcm command is used to control the different versions of the model 260 in parallel, compiled using the compilation options 261 and the various dimensions, without having to recompile the whole model. 262 263 The FORTRAN libraries are stored in directory $LIBOGCM. 265 264 266 265 … … 268 267 -------- 269 268 270 Les options suivantes peuvent etre definies soit par defaut en editant le 271 "script" makegcm, soit en interactif: 272 273 -d imxjmxlm ou im, jm, et lm sont resp. le nombre de longitudes, latitudes 274 et couches verticales. 275 276 -t ntrac selectionne le nombre de traceur advectes par la dynamique. 277 Dans les versions courantes du modele terrestre on a par exemple 278 ntrac=2 pour l'eau vapeur et liquide 279 280 L'effet des options -d et -t est d'ecraser le fichier 269 The following options can either be defined by default by editing the 270 makegcm "script", or in interactive mode: 271 272 -d imxjmxlm where im, jm, and lm are the number of longitudes, 273 latitudes and vertical layers respectively. 274 275 -t ntrac Selects the number of tracers present in the model 276 277 Options -d and -t overwrite file 281 278 $LMDGCM/libf/grid/dimensions.h 282 qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions 283 de la grille horizontale im, jm, lm plus le nombre de traceurs 284 advectes passivement par la dynamique ntrac, par un nouveu fichier 279 which contains the 3 dimensions of the 280 horizontal grid 281 im, jm, lm plus the number of tracers passively advected 282 by the dynamics ntrac, 283 in 4 PARAMETER FORTRAN format 284 with a new file: 285 285 $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac 286 Si ce fichier n'existe pas encore, il est cree par le script 286 If the file does not exist already 287 it is created by the script 287 288 $LMDGCM/libf/grid/dimension/makdim 288 289 289 -p PHYS pour selectionner le jeu de parametrisations physiques avec 290 lequel on veut compiler le modele. 291 Le modele sera alors compile en prenant les sources des 292 parametrisations physiques dans le repertoire: 290 -s nscat Number of radiatively active scatterers 291 292 -p PHYS Selects the set of physical parameterizations 293 you want to compile the model with. 294 The model is then compiled using the physical 295 parameterization sources in directory: 293 296 $LMDGCM/libf/phyPHYS 294 297 295 -g grille selectionne le type de grille qu'on veut utiliser.296 L'effet de cette option est d'ecraser le fichier298 -g grille Selects the grid type. 299 This option overwrites file 297 300 $LMDGCM/libf/grid/fxyprim.h 298 avec le fichier301 with file 299 302 $LMDGCM/libf/grid/fxy_grille.h 300 grille peut prendre les valeurs: 301 1. reg pour la grille reguliere 302 2. sin pour avoir des points equidistants en sinus de la latitude 303 3. new pour pouvoir zoomer sur une partie du globe 304 305 -O "optimisation fortran" ou les optimisations fortran sont les options de la 306 commande f77 303 the grid can take the following values: 304 1. reg - the regular grid 305 2. sin - to obtain equidistant points in terms of sin(latitude) 306 3. new - to zoom into a part of the globe 307 308 -O "compilation options" set of fortran compilation options to use 307 309 308 310 -include path 309 Dans le cas ou on a dans des sous programmes des fichiers 310 #include (cpp) qui se trouve sur des repertoires non references 311 par defaut 312 313 -adjnt Pour compiler la l'adjoint du code dynamique 311 Used if the subroutines contain #include files (ccp) that 312 are located in directories that are not referenced by default. 313 314 -adjnt Compiles the adjoint model to the dynamical code. 314 315 315 316 -olddyn To compile GCM with "old dynamics" 316 317 317 -filtre filt re318 Pour choisir le filtre en longitude dans les regions polaires.319 "filt re" correspond au nom d'un repertoire se trouvant sur320 $LMDGCM/libf. Le filtre standard du modele est "filtrez" qui peut321 etre utilise aussi bien pour une grille reguliere que pour une322 gri lle zoomee en longitude.318 -filtre filter 319 To select the longitudinal filter in the polar regions. 320 "filter" corresponds to the name of a directory located in 321 $LMDGCM/libf. The standard filter for the model is "filtrez" 322 which can be used for a regular grid and for a 323 grid with longitudinal zoom. 323 324 324 325 -link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..." 325 Pour rajouter un lien avec les librairies FORTRAN326 libfile1.a, libfile2.a ... se trouvant respectivement sur les327 repertoires dir1, dir2 ...328 Si dirn est un repertoire dont le chemin est automatique (comme329 par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.330 331 Auteur: Frederic Hourdin (hourdin@lmd.jussieu.fr) 326 Adds a link to FORTRAN libraries 327 libfile1.a, libfile2.a ... 328 located in directories dir1, dir2 ...respectively 329 If dirn is a directory with an automatic path 330 (/usr/lib ... for example) 331 there is no need to specify -Ldirn. 332 332 333 eod 333 334 exit … … 346 347 set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top 347 348 349 case -s 350 set scatterers="$2" ; shift ; goto top 351 348 352 case -g 349 353 set grille="$2" ; shift ; shift ; goto top 350 354 355 case -b 356 set bands=$2 ; shift ; shift ; goto top 357 351 358 case -t 352 359 set ntrac=$2 ; shift ; shift ; goto top … … 377 384 set optim90="$optim90"" -G1 " 378 385 else if $LINUX then 379 set optim90="-g -Mbounds " 386 ## for g95 387 set optim="-g -Wall -ftrace=full -fbounds-check" 388 set optim90="-g -Wall -ftrace=full -fbounds-check" 389 set optimtru90="-g -Wall -ftrace=full -fbounds-check" 380 390 else 381 391 echo "pas d option debug predefinie pour cette machine" … … 397 407 if ( "$physique" == 'nophys' ) then 398 408 set phys="L_PHY= LIBPHY=" 399 endif400 401 ########################################################################402 # choix du nombre de traceur par defaut si il n'a pas ete choisi,403 # suivant la physique404 ########################################################################405 406 if ( $ntrac == 0 ) then407 if ( "$physique" == 'nophys' ) then408 set ntrac=1409 else if ( "$physique" == 'lmd' ) then410 set ntrac=2411 else if ( "$physique" == 'lmd_test_li' ) then412 set ntrac=2413 else if ( "$physique" == 'ec' ) then414 set ntrac=1415 else416 set ntrac = 1417 endif418 409 endif 419 410 … … 439 430 440 431 # dimension 441 442 432 echo "dimension avant sed $dim" 443 433 if ( $IBM ) then … … 448 438 set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'` 449 439 else 450 # set dim=`echo $dim | sed -n -e 's/[^0-9]/ /gp'`451 # set dim_=`echo $dim | sed -n -e 's/[^0-9]/_/gp'`452 440 set dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 453 441 set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'` 454 442 endif 455 443 444 # bands 445 echo "bands avant sed $bands" 446 if ( $IBM ) then 447 set bands=`echo $bands | sed -en 's/[^0-9]/ /g'` 448 set bands_=`echo $bands | sed -en 's/[^0-9]/_/g'` 449 else if ( $SUN || $XNEC ) then 450 set bands=`echo $bands | sed -e 's/[^0-9]/ /g'` 451 set bands_=`echo $bands | sed -e 's/[^0-9]/_/g'` 452 else 453 set bands=`echo $bands | sed -e 's/[^0-9]/ /g'` 454 set bands_=`echo $bands | sed -e 's/[^0-9]/_/g'` 455 endif 456 457 456 458 # build final name of libraries directory: 457 459 if ( "$dyntype" == "olddyn" ) then 458 set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}_olddyn 459 else 460 set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille} 461 endif 460 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn 461 else 462 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille} 463 endif 464 465 # Append number of bands to nomlib (new for universal model) 466 set nomlib=${nomlib}_${bands_} 462 467 463 468 # Append 'physique' type, if it is not mars, to nomlib … … 504 509 cd $libf/grid 505 510 if ( -f dimensions.h ) then 506 echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs" 507 echo "Attendez que la premiere compilation soit terminee pour relancer la suivante." 508 echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs," 509 echo "vous pouvez continuer en repondant oui." 510 echo "Voulez-vous vraiment continuer?" 511 if ( $< == "oui" ) then 512 #remove old dimensions.h file 513 \rm $libf/grid/dimensions.h 511 echo "WARNING: you are already compiling the model somewhere else" 512 echo "Wait until the first compilation is finished before starting." 513 echo "If you are sure that you are not compiling elsewhere, you can" 514 echo "type [yes] to continue." 515 echo "Do you want to continue?" 516 if ( $< == "yes" ) then 517 #remove old dimensions.h , bands.h and scatterers.h files 518 \rm -f $libf/grid/dimensions.h 519 \rm -f $libf/grid/bands.h 520 \rm -f $libf/phy${physique}/scatterers.h 514 521 else 515 522 exit … … 522 529 # echo contents of dimensions.h to standard output 523 530 cat $libf/grid/dimensions.h 531 532 # Build the appropriate 'bands.h' file 533 makbands $bands 534 # echo contents of bands.h to standard output 535 cat $libf/grid/bands.h 536 537 # Build the appropriate 'scatterers.h' file 538 cd $libf/phy$physique/scatterers 539 ./make_scatterers $scatterers 540 # echo contents of scatterers.h to standard output 541 cat $libf/phy$physique/scatterers.h 524 542 525 543 cd $LMDGCM … … 549 567 \rm fxyprim.h 550 568 cp -p fxy_${grille}.h fxyprim.h 551 endif552 553 ######################################################################554 # Traitement special pour le nouveau rayonnement de Laurent Li.555 ######################################################################556 557 if ( -f $libf/phy$physique/raddim.h ) then558 if ( -f $libf/phy$physique/raddim.$dimh.h ) then559 \rm $libf/phy$physique/raddim.h560 cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h561 echo $libf/phy$physique/raddim.$dimh.h562 cat $libf/phy$physique/raddim.$dimh.h563 cat $libf/phy$physique/raddim.h564 else565 echo On peut diminuer la taille de l executable en creant566 echo le fichier $libf/phy$physique/raddim.$dimh.h567 \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h568 endif569 569 endif 570 570 … … 680 680 endif 681 681 682 683 684 #685 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du686 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1687 #688 #if ($code == 'create_limit' && $SUN) then689 # set link=f77690 # set opt_link="-L$NCDFLIB -lnetcdf"691 #endif692 693 #if ($code == 'create_etat0' && $SUN) then694 # if ( ! -f $libo/libdyn3d.a ) then695 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"696 # \rm $libf/grid/dimensions.h697 # exit698 # endif699 # set optim90=" -dalign -fixed "700 # set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"701 # set link="$f90 $optim90"702 # touch $LMDGCM/libf/dyn3d/startvar.F703 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F704 #endif705 706 #707 # Encore un test temporaire: probleme de compilation sur VPP708 # l'optimisation de startvar se passe mal709 #710 if ($code == 'create_etat0' && $VPP) then711 if ( ! -f $libo/libdyn3d.a ) then712 echo "Priere de compiler gcm en premier pour des raisons d'optimisation"713 \rm $libf/grid/dimensions.h714 exit715 endif716 set optim90="$optim90"" -X9 -w"717 set opt_link="-L$NCDFLIB -lnetcdf"718 touch $LMDGCM/libf/dyn3d/startvar.F719 touch $LMDGCM/libf/dyn3d/etat0_netcdf.F720 endif721 722 682 # 723 683 # etat0_netcdf a besoin d'info de la physique … … 815 775 PROG=$code 816 776 817 \rm $libf/grid/dimensions.h 777 \rm -f $libf/grid/dimensions.h 778 \rm -f $libf/grid/bands.h 779 \rm -f $libf/phy$physique/scatterers.h -
trunk/LMDZ.GENERIC/makegcm_gfortran
r646 r671 14 14 set dyntype="dyn" 15 15 set bands="32x36" 16 set scatterers="1" 16 17 ######################################################################## 17 18 # path a changer contenant les sources et les objets du modele … … 243 244 244 245 245 246 247 Par default, la commande makegcm: 248 --------------------------------- 249 250 1. compile une serie de sous programmes se trouvant dans des sous-repertoires 251 de $LMDGCM/libf. 252 Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN 253 sur $LIBOGCM. 254 255 2. Ensuite, makegcm compile le programme prog.f se trouvant par default sur 256 $LMDGCM/libf/dyn3d et effectue le lien avec l ensemble des librairies. 257 258 La variable '$LMDGCM' doit etre initialisee dans votre .cshrc ou en dur 259 dans la comande makegcm. 260 261 La commande makegcm est faite pour permettre de gerer en parallele des 262 versions differentes du modele, compilees avec des options de compilation 263 et des dimensions differentes sans avoir a chaque fois a recompiler tout 264 le modele. 265 266 Les librairies FORTRAN sont stoquees sur le directory $LIBOGCM. 246 The makegcm script: 247 ------------------- 248 249 1. compiles a series of subroutines located in the $LMDGCM/libf 250 sub-directories. 251 The objects are then stored in the libraries in $LIBOGCM. 252 253 2. then, makegcm compiles program prog.f located by default in 254 $LMDGCM/libf/dyn3d and makes the link with the libraries. 255 256 Environment Variables '$LMDGCM' and '$LIBOGCM' 257 must be set as environment variables or directly 258 in the makegcm file. 259 260 The makegcm command is used to control the different versions of the model 261 in parallel, compiled using the compilation options 262 and the various dimensions, without having to recompile the whole model. 263 264 The FORTRAN libraries are stored in directory $LIBOGCM. 267 265 268 266 … … 270 268 -------- 271 269 272 Les options suivantes peuvent etre definies soit par defaut en editant le 273 "script" makegcm, soit en interactif: 274 275 -d imxjmxlm ou im, jm, et lm sont resp. le nombre de longitudes, latitudes 276 et couches verticales. 277 278 -t ntrac selectionne le nombre de traceur advectes par la dynamique. 279 Dans les versions courantes du modele terrestre on a par exemple 280 ntrac=2 pour l'eau vapeur et liquide 281 282 L'effet des options -d et -t est d'ecraser le fichier 270 The following options can either be defined by default by editing the 271 makegcm "script", or in interactive mode: 272 273 -d imxjmxlm where im, jm, and lm are the number of longitudes, 274 latitudes and vertical layers respectively. 275 276 -t ntrac Selects the number of tracers present in the model 277 278 Options -d and -t overwrite file 283 279 $LMDGCM/libf/grid/dimensions.h 284 qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions 285 de la grille horizontale im, jm, lm plus le nombre de traceurs 286 advectes passivement par la dynamique ntrac, par un nouveu fichier 280 which contains the 3 dimensions of the 281 horizontal grid 282 im, jm, lm plus the number of tracers passively advected 283 by the dynamics ntrac, 284 in 4 PARAMETER FORTRAN format 285 with a new file: 287 286 $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac 288 Si ce fichier n'existe pas encore, il est cree par le script 287 If the file does not exist already 288 it is created by the script 289 289 $LMDGCM/libf/grid/dimension/makdim 290 290 291 -p PHYS pour selectionner le jeu de parametrisations physiques avec 292 lequel on veut compiler le modele. 293 Le modele sera alors compile en prenant les sources des 294 parametrisations physiques dans le repertoire: 291 -s nscat Number of radiatively active scatterers 292 293 -p PHYS Selects the set of physical parameterizations 294 you want to compile the model with. 295 The model is then compiled using the physical 296 parameterization sources in directory: 295 297 $LMDGCM/libf/phyPHYS 296 298 297 -g grille selectionne le type de grille qu'on veut utiliser.298 L'effet de cette option est d'ecraser le fichier299 -g grille Selects the grid type. 300 This option overwrites file 299 301 $LMDGCM/libf/grid/fxyprim.h 300 avec le fichier302 with file 301 303 $LMDGCM/libf/grid/fxy_grille.h 302 grille peut prendre les valeurs: 303 1. reg pour la grille reguliere 304 2. sin pour avoir des points equidistants en sinus de la latitude 305 3. new pour pouvoir zoomer sur une partie du globe 306 307 -O "optimisation fortran" ou les optimisations fortran sont les options de la 308 commande f77 304 the grid can take the following values: 305 1. reg - the regular grid 306 2. sin - to obtain equidistant points in terms of sin(latitude) 307 3. new - to zoom into a part of the globe 308 309 -O "compilation options" set of fortran compilation options to use 309 310 310 311 -include path 311 Dans le cas ou on a dans des sous programmes des fichiers 312 #include (cpp) qui se trouve sur des repertoires non references 313 par defaut 314 315 -adjnt Pour compiler la l'adjoint du code dynamique 312 Used if the subroutines contain #include files (ccp) that 313 are located in directories that are not referenced by default. 314 315 -adjnt Compiles the adjoint model to the dynamical code. 316 316 317 317 -olddyn To compile GCM with "old dynamics" 318 318 319 -filtre filt re320 Pour choisir le filtre en longitude dans les regions polaires.321 "filt re" correspond au nom d'un repertoire se trouvant sur322 $LMDGCM/libf. Le filtre standard du modele est "filtrez" qui peut323 etre utilise aussi bien pour une grille reguliere que pour une324 gri lle zoomee en longitude.319 -filtre filter 320 To select the longitudinal filter in the polar regions. 321 "filter" corresponds to the name of a directory located in 322 $LMDGCM/libf. The standard filter for the model is "filtrez" 323 which can be used for a regular grid and for a 324 grid with longitudinal zoom. 325 325 326 326 -link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..." 327 Pour rajouter un lien avec les librairies FORTRAN328 libfile1.a, libfile2.a ... se trouvant respectivement sur les329 repertoires dir1, dir2 ...330 Si dirn est un repertoire dont le chemin est automatique (comme331 par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.332 333 Auteur: Frederic Hourdin (hourdin@lmd.jussieu.fr) 327 Adds a link to FORTRAN libraries 328 libfile1.a, libfile2.a ... 329 located in directories dir1, dir2 ...respectively 330 If dirn is a directory with an automatic path 331 (/usr/lib ... for example) 332 there is no need to specify -Ldirn. 333 334 334 eod 335 335 exit … … 347 347 case -p 348 348 set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top 349 350 case -s 351 set scatterers="$2" ; shift ; goto top 349 352 350 353 case -g … … 408 411 if ( "$physique" == 'nophys' ) then 409 412 set phys="L_PHY= LIBPHY=" 410 endif411 412 ########################################################################413 # choix du nombre de traceur par defaut si il n'a pas ete choisi,414 # suivant la physique415 ########################################################################416 417 if ( $ntrac == 0 ) then418 if ( "$physique" == 'nophys' ) then419 set ntrac=1420 else if ( "$physique" == 'lmd' ) then421 set ntrac=2422 else if ( "$physique" == 'lmd_test_li' ) then423 set ntrac=2424 else if ( "$physique" == 'ec' ) then425 set ntrac=1426 else427 set ntrac = 1428 endif429 413 endif 430 414 … … 479 463 # build final name of libraries directory: 480 464 if ( "$dyntype" == "olddyn" ) then 481 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}_olddyn482 else 483 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}465 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn 466 else 467 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille} 484 468 endif 485 469 … … 536 520 echo "Do you want to continue?" 537 521 if ( $< == "yes" ) then 538 #remove old dimensions.h file 539 \rm $libf/grid/dimensions.h 540 \rm $libf/grid/bands.h 522 #remove old dimensions.h , bands.h and scatterers.h files 523 \rm -f $libf/grid/dimensions.h 524 \rm -f $libf/grid/bands.h 525 \rm -f $libf/phy${physique}/scatterers.h 541 526 else 542 527 exit … … 554 539 # echo contents of bands.h to standard output 555 540 cat $libf/grid/bands.h 541 542 # Build the appropriate 'scatterers.h' file 543 cd $libf/phy$physique/scatterers 544 ./make_scatterers $scatterers 545 # echo contents of scatterers.h to standard output 546 cat $libf/phy$physique/scatterers.h 556 547 557 548 cd $LMDGCM … … 582 573 cp -p fxy_${grille}.h fxyprim.h 583 574 endif 584 585 ######################################################################586 # Traitement special pour le nouveau rayonnement de Laurent Li.587 ######################################################################588 #if ( -f $libf/phy$physique/raddim.h ) then589 # if ( -f $libf/phy$physique/raddim.$dimh.h ) then590 # \rm $libf/phy$physique/raddim.h591 # cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h592 # echo $libf/phy$physique/raddim.$dimh.h593 # cat $libf/phy$physique/raddim.$dimh.h594 # cat $libf/phy$physique/raddim.h595 # else596 # echo On peut diminuer la taille de l executable en creant597 # echo le fichier $libf/phy$physique/raddim.$dimh.h598 # \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h599 # endif600 #endif601 575 602 576 ###################################################################### … … 710 684 set make="make RANLIB=ranlib" 711 685 endif 712 713 714 715 #716 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du717 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1718 #719 #if ($code == 'create_limit' && $SUN) then720 # set link=f77721 # set opt_link="-L$NCDFLIB -lnetcdf"722 #endif723 724 #if ($code == 'create_etat0' && $SUN) then725 # if ( ! -f $libo/libdyn3d.a ) then726 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"727 # \rm $libf/grid/dimensions.h728 # exit729 # endif730 # set optim90=" -dalign -fixed "731 # set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"732 # set link="$f90 $optim90"733 # touch $LMDGCM/libf/dyn3d/startvar.F734 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F735 #endif736 737 #738 # Encore un test temporaire: probleme de compilation sur VPP739 # l'optimisation de startvar se passe mal740 #741 #if ($code == 'create_etat0' && $VPP) then742 # if ( ! -f $libo/libdyn3d.a ) then743 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"744 # \rm $libf/grid/dimensions.h745 # exit746 # endif747 # set optim90="$optim90"" -X9 -w"748 # set opt_link="-L$NCDFLIB -lnetcdf"749 # touch $LMDGCM/libf/dyn3d/startvar.F750 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F751 #endif752 686 753 687 # … … 854 788 PROG=$code 855 789 856 \rm $libf/grid/dimensions.h 857 \rm $libf/grid/bands.h 790 \rm -f $libf/grid/dimensions.h 791 \rm -f $libf/grid/bands.h 792 \rm -f $libf/phy$physique/scatterers.h -
trunk/LMDZ.GENERIC/makegcm_ifort
r646 r671 14 14 set dyntype="dyn" 15 15 set bands="32x36" 16 set scatterers="1" 16 17 ######################################################################## 17 18 # path a changer contenant les sources et les objets du modele … … 236 237 237 238 238 239 240 Par default, la commande makegcm: 241 --------------------------------- 242 243 1. compile une serie de sous programmes se trouvant dans des sous-repertoires 244 de $LMDGCM/libf. 245 Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN 246 sur $LIBOGCM. 247 248 2. Ensuite, makegcm compile le programme prog.f se trouvant par default sur 249 $LMDGCM/libf/dyn3d et effectue le lien avec l ensemble des librairies. 250 251 La variable '$LMDGCM' doit etre initialisee dans votre .cshrc ou en dur 252 dans la comande makegcm. 253 254 La commande makegcm est faite pour permettre de gerer en parallele des 255 versions differentes du modele, compilees avec des options de compilation 256 et des dimensions differentes sans avoir a chaque fois a recompiler tout 257 le modele. 258 259 Les librairies FORTRAN sont stoquees sur le directory $LIBOGCM. 239 The makegcm script: 240 ------------------- 241 242 1. compiles a series of subroutines located in the $LMDGCM/libf 243 sub-directories. 244 The objects are then stored in the libraries in $LIBOGCM. 245 246 2. then, makegcm compiles program prog.f located by default in 247 $LMDGCM/libf/dyn3d and makes the link with the libraries. 248 249 Environment Variables '$LMDGCM' and '$LIBOGCM' 250 must be set as environment variables or directly 251 in the makegcm file. 252 253 The makegcm command is used to control the different versions of the model 254 in parallel, compiled using the compilation options 255 and the various dimensions, without having to recompile the whole model. 256 257 The FORTRAN libraries are stored in directory $LIBOGCM. 260 258 261 259 … … 263 261 -------- 264 262 265 Les options suivantes peuvent etre definies soit par defaut en editant le 266 "script" makegcm, soit en interactif: 267 268 -d imxjmxlm ou im, jm, et lm sont resp. le nombre de longitudes, latitudes 269 et couches verticales. 270 271 -t ntrac selectionne le nombre de traceur advectes par la dynamique. 272 Dans les versions courantes du modele terrestre on a par exemple 273 ntrac=2 pour l'eau vapeur et liquide 274 275 L'effet des options -d et -t est d'ecraser le fichier 263 The following options can either be defined by default by editing the 264 makegcm "script", or in interactive mode: 265 266 -d imxjmxlm where im, jm, and lm are the number of longitudes, 267 latitudes and vertical layers respectively. 268 269 -t ntrac Selects the number of tracers present in the model 270 271 Options -d and -t overwrite file 276 272 $LMDGCM/libf/grid/dimensions.h 277 qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions 278 de la grille horizontale im, jm, lm plus le nombre de traceurs 279 advectes passivement par la dynamique ntrac, par un nouveu fichier 273 which contains the 3 dimensions of the 274 horizontal grid 275 im, jm, lm plus the number of tracers passively advected 276 by the dynamics ntrac, 277 in 4 PARAMETER FORTRAN format 278 with a new file: 280 279 $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac 281 Si ce fichier n'existe pas encore, il est cree par le script 280 If the file does not exist already 281 it is created by the script 282 282 $LMDGCM/libf/grid/dimension/makdim 283 283 284 -p PHYS pour selectionner le jeu de parametrisations physiques avec 285 lequel on veut compiler le modele. 286 Le modele sera alors compile en prenant les sources des 287 parametrisations physiques dans le repertoire: 284 -s nscat Number of radiatively active scatterers 285 286 -p PHYS Selects the set of physical parameterizations 287 you want to compile the model with. 288 The model is then compiled using the physical 289 parameterization sources in directory: 288 290 $LMDGCM/libf/phyPHYS 289 291 290 -g grille selectionne le type de grille qu'on veut utiliser.291 L'effet de cette option est d'ecraser le fichier292 -g grille Selects the grid type. 293 This option overwrites file 292 294 $LMDGCM/libf/grid/fxyprim.h 293 avec le fichier295 with file 294 296 $LMDGCM/libf/grid/fxy_grille.h 295 grille peut prendre les valeurs: 296 1. reg pour la grille reguliere 297 2. sin pour avoir des points equidistants en sinus de la latitude 298 3. new pour pouvoir zoomer sur une partie du globe 299 300 -O "optimisation fortran" ou les optimisations fortran sont les options de la 301 commande f77 297 the grid can take the following values: 298 1. reg - the regular grid 299 2. sin - to obtain equidistant points in terms of sin(latitude) 300 3. new - to zoom into a part of the globe 301 302 -O "compilation options" set of fortran compilation options to use 302 303 303 304 -include path 304 Dans le cas ou on a dans des sous programmes des fichiers 305 #include (cpp) qui se trouve sur des repertoires non references 306 par defaut 307 308 -adjnt Pour compiler la l'adjoint du code dynamique 305 Used if the subroutines contain #include files (ccp) that 306 are located in directories that are not referenced by default. 307 308 -adjnt Compiles the adjoint model to the dynamical code. 309 309 310 310 -olddyn To compile GCM with "old dynamics" 311 311 312 -filtre filt re313 Pour choisir le filtre en longitude dans les regions polaires.314 "filt re" correspond au nom d'un repertoire se trouvant sur315 $LMDGCM/libf. Le filtre standard du modele est "filtrez" qui peut316 etre utilise aussi bien pour une grille reguliere que pour une317 gri lle zoomee en longitude.312 -filtre filter 313 To select the longitudinal filter in the polar regions. 314 "filter" corresponds to the name of a directory located in 315 $LMDGCM/libf. The standard filter for the model is "filtrez" 316 which can be used for a regular grid and for a 317 grid with longitudinal zoom. 318 318 319 319 -link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..." 320 Pour rajouter un lien avec les librairies FORTRAN321 libfile1.a, libfile2.a ... se trouvant respectivement sur les322 repertoires dir1, dir2 ...323 Si dirn est un repertoire dont le chemin est automatique (comme324 par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.325 326 Auteur: Frederic Hourdin (hourdin@lmd.jussieu.fr) 320 Adds a link to FORTRAN libraries 321 libfile1.a, libfile2.a ... 322 located in directories dir1, dir2 ...respectively 323 If dirn is a directory with an automatic path 324 (/usr/lib ... for example) 325 there is no need to specify -Ldirn. 326 327 327 eod 328 328 exit … … 340 340 case -p 341 341 set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top 342 343 case -s 344 set scatterers="$2" ; shift ; goto top 342 345 343 346 case -g … … 401 404 402 405 ######################################################################## 403 # choix du nombre de traceur par defaut si il n'a pas ete choisi,404 # suivant la physique405 ########################################################################406 407 if ( $ntrac == 0 ) then408 if ( "$physique" == 'nophys' ) then409 set ntrac=1410 else if ( "$physique" == 'lmd' ) then411 set ntrac=2412 else if ( "$physique" == 'lmd_test_li' ) then413 set ntrac=2414 else if ( "$physique" == 'ec' ) then415 set ntrac=1416 else417 set ntrac = 1418 endif419 endif420 421 ########################################################################422 406 #subtilites sur le nom de la librairie 423 407 ######################################################################## … … 469 453 # build final name of libraries directory: 470 454 if ( "$dyntype" == "olddyn" ) then 471 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}_olddyn472 else 473 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}455 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn 456 else 457 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille} 474 458 endif 475 459 … … 525 509 echo "type [yes] to continue." 526 510 echo "Do you want to continue?" 527 # echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"528 # echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."529 # echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"530 # echo "vous pouvez continuer en repondant oui."531 # echo "Voulez-vous vraiment continuer?"532 511 if ( $< == "yes" ) then 533 #remove old dimensions.h file 534 \rm $libf/grid/dimensions.h 535 \rm $libf/grid/bands.h 512 #remove old dimensions.h , bands.h and scatterers.h files 513 \rm -f $libf/grid/dimensions.h 514 \rm -f $libf/grid/bands.h 515 \rm -f $libf/phy${physique}/scatterers.h 536 516 else 537 517 exit … … 549 529 # echo contents of bands.h to standard output 550 530 cat $libf/grid/bands.h 531 532 # Build the appropriate 'scatterers.h' file 533 cd $libf/phy$physique/scatterers 534 ./make_scatterers $scatterers 535 # echo contents of scatterers.h to standard output 536 cat $libf/phy$physique/scatterers.h 551 537 552 538 cd $LMDGCM … … 577 563 cp -p fxy_${grille}.h fxyprim.h 578 564 endif 579 580 ######################################################################581 # Traitement special pour le nouveau rayonnement de Laurent Li.582 ######################################################################583 #if ( -f $libf/phy$physique/raddim.h ) then584 # if ( -f $libf/phy$physique/raddim.$dimh.h ) then585 # \rm $libf/phy$physique/raddim.h586 # cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h587 # echo $libf/phy$physique/raddim.$dimh.h588 # cat $libf/phy$physique/raddim.$dimh.h589 # cat $libf/phy$physique/raddim.h590 # else591 # echo On peut diminuer la taille de l executable en creant592 # echo le fichier $libf/phy$physique/raddim.$dimh.h593 # \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h594 # endif595 #endif596 565 597 566 ###################################################################### … … 708 677 endif 709 678 710 711 712 #713 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du714 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1715 #716 #if ($code == 'create_limit' && $SUN) then717 # set link=f77718 # set opt_link="-L$NCDFLIB -lnetcdf"719 #endif720 721 #if ($code == 'create_etat0' && $SUN) then722 # if ( ! -f $libo/libdyn3d.a ) then723 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"724 # \rm $libf/grid/dimensions.h725 # exit726 # endif727 # set optim90=" -dalign -fixed "728 # set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"729 # set link="$f90 $optim90"730 # touch $LMDGCM/libf/dyn3d/startvar.F731 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F732 #endif733 734 #735 # Encore un test temporaire: probleme de compilation sur VPP736 # l'optimisation de startvar se passe mal737 #738 #if ($code == 'create_etat0' && $VPP) then739 # if ( ! -f $libo/libdyn3d.a ) then740 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"741 # \rm $libf/grid/dimensions.h742 # exit743 # endif744 # set optim90="$optim90"" -X9 -w"745 # set opt_link="-L$NCDFLIB -lnetcdf"746 # touch $LMDGCM/libf/dyn3d/startvar.F747 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F748 #endif749 750 679 # 751 680 # etat0_netcdf a besoin d'info de la physique … … 844 773 PROG=$code 845 774 846 \rm $libf/grid/dimensions.h 847 \rm $libf/grid/bands.h 775 \rm -f $libf/grid/dimensions.h 776 \rm -f $libf/grid/bands.h 777 \rm -f $libf/phy$physique/scatterers.h -
trunk/LMDZ.GENERIC/makegcm_pgf90
r646 r671 14 14 set dyntype="dyn" 15 15 set bands="32x36" 16 set scatterers="1" 16 17 ######################################################################## 17 18 # path a changer contenant les sources et les objets du modele … … 240 241 241 242 242 243 244 Par default, la commande makegcm: 245 --------------------------------- 246 247 1. compile une serie de sous programmes se trouvant dans des sous-repertoires 248 de $LMDGCM/libf. 249 Les sous programmes sont ensuite stokes sur dans des librairies FORTRAN 250 sur $LIBOGCM. 251 252 2. Ensuite, makegcm compile le programme prog.f se trouvant par default sur 253 $LMDGCM/libf/dyn3d et effectue le lien avec l ensemble des librairies. 254 255 La variable '$LMDGCM' doit etre initialisee dans votre .cshrc ou en dur 256 dans la comande makegcm. 257 258 La commande makegcm est faite pour permettre de gerer en parallele des 259 versions differentes du modele, compilees avec des options de compilation 260 et des dimensions differentes sans avoir a chaque fois a recompiler tout 261 le modele. 262 263 Les librairies FORTRAN sont stoquees sur le directory $LIBOGCM. 243 The makegcm script: 244 ------------------- 245 246 1. compiles a series of subroutines located in the $LMDGCM/libf 247 sub-directories. 248 The objects are then stored in the libraries in $LIBOGCM. 249 250 2. then, makegcm compiles program prog.f located by default in 251 $LMDGCM/libf/dyn3d and makes the link with the libraries. 252 253 Environment Variables '$LMDGCM' and '$LIBOGCM' 254 must be set as environment variables or directly 255 in the makegcm file. 256 257 The makegcm command is used to control the different versions of the model 258 in parallel, compiled using the compilation options 259 and the various dimensions, without having to recompile the whole model. 260 261 The FORTRAN libraries are stored in directory $LIBOGCM. 264 262 265 263 … … 267 265 -------- 268 266 269 Les options suivantes peuvent etre definies soit par defaut en editant le 270 "script" makegcm, soit en interactif: 271 272 -d imxjmxlm ou im, jm, et lm sont resp. le nombre de longitudes, latitudes 273 et couches verticales. 274 275 -t ntrac selectionne le nombre de traceur advectes par la dynamique. 276 Dans les versions courantes du modele terrestre on a par exemple 277 ntrac=2 pour l'eau vapeur et liquide 278 279 L'effet des options -d et -t est d'ecraser le fichier 267 The following options can either be defined by default by editing the 268 makegcm "script", or in interactive mode: 269 270 -d imxjmxlm where im, jm, and lm are the number of longitudes, 271 latitudes and vertical layers respectively. 272 273 -t ntrac Selects the number of tracers present in the model 274 275 Options -d and -t overwrite file 280 276 $LMDGCM/libf/grid/dimensions.h 281 qui contient sous forme de 4 PARAMETER FORTRAN les 3 dimensions 282 de la grille horizontale im, jm, lm plus le nombre de traceurs 283 advectes passivement par la dynamique ntrac, par un nouveu fichier 277 which contains the 3 dimensions of the 278 horizontal grid 279 im, jm, lm plus the number of tracers passively advected 280 by the dynamics ntrac, 281 in 4 PARAMETER FORTRAN format 282 with a new file: 284 283 $LMDGCM/libf/grid/dimension/dimensions.im.jm.lm.tntrac 285 Si ce fichier n'existe pas encore, il est cree par le script 284 If the file does not exist already 285 it is created by the script 286 286 $LMDGCM/libf/grid/dimension/makdim 287 287 288 -p PHYS pour selectionner le jeu de parametrisations physiques avec 289 lequel on veut compiler le modele. 290 Le modele sera alors compile en prenant les sources des 291 parametrisations physiques dans le repertoire: 288 -s nscat Number of radiatively active scatterers 289 290 -p PHYS Selects the set of physical parameterizations 291 you want to compile the model with. 292 The model is then compiled using the physical 293 parameterization sources in directory: 292 294 $LMDGCM/libf/phyPHYS 293 295 294 -g grille selectionne le type de grille qu'on veut utiliser.295 L'effet de cette option est d'ecraser le fichier296 -g grille Selects the grid type. 297 This option overwrites file 296 298 $LMDGCM/libf/grid/fxyprim.h 297 avec le fichier299 with file 298 300 $LMDGCM/libf/grid/fxy_grille.h 299 grille peut prendre les valeurs: 300 1. reg pour la grille reguliere 301 2. sin pour avoir des points equidistants en sinus de la latitude 302 3. new pour pouvoir zoomer sur une partie du globe 303 304 -O "optimisation fortran" ou les optimisations fortran sont les options de la 305 commande f77 301 the grid can take the following values: 302 1. reg - the regular grid 303 2. sin - to obtain equidistant points in terms of sin(latitude) 304 3. new - to zoom into a part of the globe 305 306 -O "compilation options" set of fortran compilation options to use 306 307 307 308 -include path 308 Dans le cas ou on a dans des sous programmes des fichiers 309 #include (cpp) qui se trouve sur des repertoires non references 310 par defaut 311 312 -adjnt Pour compiler la l'adjoint du code dynamique 309 Used if the subroutines contain #include files (ccp) that 310 are located in directories that are not referenced by default. 311 312 -adjnt Compiles the adjoint model to the dynamical code. 313 313 314 314 -olddyn To compile GCM with "old dynamics" 315 315 316 -filtre filt re317 Pour choisir le filtre en longitude dans les regions polaires.318 "filt re" correspond au nom d'un repertoire se trouvant sur319 $LMDGCM/libf. Le filtre standard du modele est "filtrez" qui peut320 etre utilise aussi bien pour une grille reguliere que pour une321 gri lle zoomee en longitude.316 -filtre filter 317 To select the longitudinal filter in the polar regions. 318 "filter" corresponds to the name of a directory located in 319 $LMDGCM/libf. The standard filter for the model is "filtrez" 320 which can be used for a regular grid and for a 321 grid with longitudinal zoom. 322 322 323 323 -link "-Ldir1 -lfile1 -Ldir2 -lfile2 ..." 324 Pour rajouter un lien avec les librairies FORTRAN325 libfile1.a, libfile2.a ... se trouvant respectivement sur les326 repertoires dir1, dir2 ...327 Si dirn est un repertoire dont le chemin est automatique (comme328 par exemple /usr/lib ...) il n'est pas besoin de specifier -Ldirn.329 330 Auteur: Frederic Hourdin (hourdin@lmd.jussieu.fr) 324 Adds a link to FORTRAN libraries 325 libfile1.a, libfile2.a ... 326 located in directories dir1, dir2 ...respectively 327 If dirn is a directory with an automatic path 328 (/usr/lib ... for example) 329 there is no need to specify -Ldirn. 330 331 331 eod 332 332 exit … … 344 344 case -p 345 345 set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top 346 347 case -s 348 set scatterers="$2" ; shift ; goto top 346 349 347 350 case -g … … 408 411 409 412 ######################################################################## 410 # choix du nombre de traceur par defaut si il n'a pas ete choisi,411 # suivant la physique412 ########################################################################413 414 if ( $ntrac == 0 ) then415 if ( "$physique" == 'nophys' ) then416 set ntrac=1417 else if ( "$physique" == 'lmd' ) then418 set ntrac=2419 else if ( "$physique" == 'lmd_test_li' ) then420 set ntrac=2421 else if ( "$physique" == 'ec' ) then422 set ntrac=1423 else424 set ntrac = 1425 endif426 endif427 428 ########################################################################429 413 #subtilites sur le nom de la librairie 430 414 ######################################################################## … … 476 460 # build final name of libraries directory: 477 461 if ( "$dyntype" == "olddyn" ) then 478 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}_olddyn479 else 480 set nomlib=${nomlib}_${dim_}_t${ntrac}_ ${grille}462 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn 463 else 464 set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille} 481 465 endif 482 466 … … 532 516 echo "type [yes] to continue." 533 517 echo "Do you want to continue?" 534 # echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"535 # echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."536 # echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"537 # echo "vous pouvez continuer en repondant oui."538 # echo "Voulez-vous vraiment continuer?"539 518 if ( $< == "yes" ) then 540 #remove old dimensions.h file 541 \rm $libf/grid/dimensions.h 542 \rm $libf/grid/bands.h 519 #remove old dimensions.h , bands.h and scatterers.h files 520 \rm -f $libf/grid/dimensions.h 521 \rm -f $libf/grid/bands.h 522 \rm -f $libf/phy${physique}/scatterers.h 543 523 else 544 524 exit … … 556 536 # echo contents of bands.h to standard output 557 537 cat $libf/grid/bands.h 538 539 # Build the appropriate 'scatterers.h' file 540 cd $libf/phy$physique/scatterers 541 ./make_scatterers $scatterers 542 # echo contents of scatterers.h to standard output 543 cat $libf/phy$physique/scatterers.h 558 544 559 545 cd $LMDGCM … … 584 570 cp -p fxy_${grille}.h fxyprim.h 585 571 endif 586 587 ######################################################################588 # Traitement special pour le nouveau rayonnement de Laurent Li.589 ######################################################################590 #if ( -f $libf/phy$physique/raddim.h ) then591 # if ( -f $libf/phy$physique/raddim.$dimh.h ) then592 # \rm $libf/phy$physique/raddim.h593 # cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h594 # echo $libf/phy$physique/raddim.$dimh.h595 # cat $libf/phy$physique/raddim.$dimh.h596 # cat $libf/phy$physique/raddim.h597 # else598 # echo On peut diminuer la taille de l executable en creant599 # echo le fichier $libf/phy$physique/raddim.$dimh.h600 # \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h601 # endif602 #endif603 572 604 573 ###################################################################### … … 715 684 endif 716 685 717 718 719 #720 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du721 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1722 #723 #if ($code == 'create_limit' && $SUN) then724 # set link=f77725 # set opt_link="-L$NCDFLIB -lnetcdf"726 #endif727 728 #if ($code == 'create_etat0' && $SUN) then729 # if ( ! -f $libo/libdyn3d.a ) then730 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"731 # \rm $libf/grid/dimensions.h732 # exit733 # endif734 # set optim90=" -dalign -fixed "735 # set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"736 # set link="$f90 $optim90"737 # touch $LMDGCM/libf/dyn3d/startvar.F738 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F739 #endif740 741 #742 # Encore un test temporaire: probleme de compilation sur VPP743 # l'optimisation de startvar se passe mal744 #745 #if ($code == 'create_etat0' && $VPP) then746 # if ( ! -f $libo/libdyn3d.a ) then747 # echo "Priere de compiler gcm en premier pour des raisons d'optimisation"748 # \rm $libf/grid/dimensions.h749 # exit750 # endif751 # set optim90="$optim90"" -X9 -w"752 # set opt_link="-L$NCDFLIB -lnetcdf"753 # touch $LMDGCM/libf/dyn3d/startvar.F754 # touch $LMDGCM/libf/dyn3d/etat0_netcdf.F755 #endif756 757 686 # 758 687 # etat0_netcdf a besoin d'info de la physique … … 856 785 PROG=$code 857 786 858 \rm $libf/grid/dimensions.h 859 \rm $libf/grid/bands.h 787 \rm -f $libf/grid/dimensions.h 788 \rm -f $libf/grid/bands.h 789 \rm -f $libf/phy$physique/scatterers.h
Note: See TracChangeset
for help on using the changeset viewer.