Changeset 671 for trunk/LMDZ.GENERIC/makegcm_ifort
- Timestamp:
- May 25, 2012, 11:11:42 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.