Changeset 671 for trunk/LMDZ.GENERIC/makegcm_pgf90
- Timestamp:
- May 25, 2012, 11:11:42 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.