Changeset 148 for trunk


Ignore:
Timestamp:
Jun 8, 2011, 3:26:57 PM (14 years ago)
Author:
emillour
Message:

Mars GCM:

Significant update on how the number of scatterers is managed:

Instead of having to manualy change 'nearkind' in dimradmars.h, the
number of scatterers must now be set when compiling, using makegcm
"makegcm -s 1" for one scatterer (dust) or "makegcm -s 2" (e.g. dust
and water ice), default behaviour (ie not specifying -s #) is -s 1
Modified phymars/dimradmars.h , added directory phymars/scatterers
with script make_scatterers , and adapted makegcm* scripts.

also removed some superfluous files (tmp, tmp77, ...).

EM

Location:
trunk/LMDZ.MARS
Files:
2 added
5 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r146 r148  
    655655   in file must be initialized by user.
    656656>> minor bug fix in datareadnc.F : 'datafile' path must be initialized.
     657
     658== 08/06/2011 == EM
     659>> Significant update on how the number of scatterers is managed:
     660   Instead of having to manualy change 'nearkind' in dimradmars.h, the
     661   number of scatterers must now be set when compiling, using makegcm
     662   "makegcm -s 1" for one scatterer (dust) or "makegcm -s 2" (e.g. dust
     663   and water ice), default behaviour (ie not specifying -s #) is -s 1
     664   Modified phymars/dimradmars.h , added directory phymars/scatterers
     665   with script make_scatterers , and adapted makegcm* scripts.
  • trunk/LMDZ.MARS/libf/phymars/dimradmars.h

    r147 r148  
    2222      parameter (NDLO2=NDLON)
    2323
    24 ! Number of kind of tracer radiative properties 
     24! Number of kind of tracer radiative properties
    2525! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    26 ! (ex: naerkind=1 if you use one dust mode without ice ...)
    27 ! (ex: naerkind=2 if you use one dust mode and active ice ...)
    28       integer naerkind
    29        parameter (naerkind=1)
    30 !      parameter (naerkind=2)
    31 !!!!!! CHANGE CHANGE nsizemax BELOW BELOW
     26! naerkind is set in scatterers.h (built when compiling with makegcm -s #)
     27
     28#include"scatterers.h"
     29! NB: May have to change value of nsizemax below when changing scatterers
    3230
    3331! Reference wavelengths used to compute reference optical depth (m)
  • trunk/LMDZ.MARS/makegcm

    r38 r148  
    1313set grille=reg
    1414set dyntype="dyn"
     15set scatterers="1"
    1516########################################################################
    1617# path a changer contenant les sources et les objets du modele
     
    290291             $LMDGCM/libf/grid/dimension/makdim
    291292
     293-s nscat   Number of radiatively active scatterers
     294
    292295-p PHYS    Selects the set of physical parameterizations
    293296           you want to compile the model with.
     
    346349     case -p
    347350        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
     351
     352     case -s
     353        set scatterers="$2" ; shift ; goto top
    348354
    349355     case -g
     
    459465# build final name of libraries directory:
    460466if ( "$dyntype" == "olddyn" ) then
    461   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}_olddyn
     467  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn
    462468else
    463   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}
     469  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}
    464470endif
    465471
     
    507513cd $libf/grid
    508514if ( -f dimensions.h ) then
    509   echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"
    510   echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
    511   echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
    512   echo "vous pouvez continuer en repondant oui."
    513   echo "Voulez-vous vraiment continuer?"
    514   if ( $< == "oui" ) then
     515  echo "WARNING: you are probably already compiling the model (perhaps"
     516  echo " elsewhere). Wait until the first compilation ends before "
     517  echo " compiling a different configuration."
     518  echo "If you are sure that you are not already compiling, then you"
     519  echo " may continue this compilation by answering yes."
     520  echo "Do you want to continue?"
     521  if ( $< == "yes" ) then
    515522    #remove old dimensions.h file
    516523    \rm -f $libf/grid/dimensions.h
     524    #remove old scatterers.h file
     525    \rm -f $libf/phymars/scatterers.h
    517526  else
    518527    exit
     
    525534# echo contents of dimensions.h to standard output
    526535cat $libf/grid/dimensions.h
     536
     537cd $libf/phymars/scatterers
     538# Build the appropriate 'scatterers.h' file
     539./make_scatterers $scatterers
     540# echo contents of scatterers.h to standard output
     541cat $libf/phymars/scatterers.h
    527542
    528543cd $LMDGCM
     
    681696endif
    682697
    683 
    684 
    685 #
    686 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du
    687 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1
    688 #
    689 #if ($code == 'create_limit' && $SUN) then
    690 #   set link=f77
    691 #   set opt_link="-L$NCDFLIB -lnetcdf"
    692 #endif
    693 
    694 #if ($code == 'create_etat0' && $SUN) then
    695 #   if ( ! -f $libo/libdyn3d.a ) then
    696 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    697 #     \rm $libf/grid/dimensions.h
    698 #     exit
    699 #   endif
    700 #   set optim90=" -dalign -fixed "
    701 #   set opt_link="-L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
    702 #   set link="$f90 $optim90"
    703 #   touch $LMDGCM/libf/dyn3d/startvar.F
    704 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    705 #endif
    706 
    707 #
    708 # Encore un test temporaire: probleme de compilation sur VPP
    709 # l'optimisation de startvar se passe mal
    710 #
    711 #if ($code == 'create_etat0' && $VPP) then
    712 #   if ( ! -f $libo/libdyn3d.a ) then
    713 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    714 #     \rm $libf/grid/dimensions.h                                             
    715 #     exit                       
    716 #   endif
    717 #   set optim90="$optim90"" -X9 -w"
    718 #   set opt_link="-L$NCDFLIB -lnetcdf"
    719 #   touch $LMDGCM/libf/dyn3d/startvar.F
    720 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    721 #endif
    722 
    723 #
    724 # etat0_netcdf a besoin d'info de la physique
    725 # A revoir
    726698set include="$include"" -I$libf/phy$physique"
    727699
     
    812784PROG=$code
    813785
    814 \rm $libf/grid/dimensions.h
     786# cleanup, remove dimensions.h and scatterers.h
     787\rm -f $libf/grid/dimensions.h
     788\rm -f $libf/phymars/scatterers.h
  • trunk/LMDZ.MARS/makegcm_g95

    r38 r148  
    1313set grille=reg
    1414set dyntype="dyn"
     15set scatterers="1"
    1516########################################################################
    1617# path a changer contenant les sources et les objets du modele
     
    287288             $LMDGCM/libf/grid/dimension/makdim
    288289
     290-s nscat   Number of radiatively active scatterers
     291
    289292-p PHYS    Selects the set of physical parameterizations
    290293           you want to compile the model with.
     
    343346     case -p
    344347        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
     348
     349     case -s
     350        set scatterers="$2" ; shift ; goto top
    345351
    346352     case -g
     
    457463# build final name of libraries directory:
    458464if ( "$dyntype" == "olddyn" ) then
    459   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}_olddyn
     465  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn
    460466else
    461   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}
     467  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}
    462468endif
    463469
     
    505511cd $libf/grid
    506512if ( -f dimensions.h ) then
    507   echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"
    508   echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
    509   echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
    510   echo "vous pouvez continuer en repondant oui."
    511   echo "Voulez-vous vraiment continuer?"
    512   if ( $< == "oui" ) then
     513  echo "WARNING: you are probably already compiling the model (perhaps"
     514  echo " elsewhere). Wait until the first compilation ends before "
     515  echo " compiling a different configuration."
     516  echo "If you are sure that you are not already compiling, then you"
     517  echo " may continue this compilation by answering yes."
     518  echo "Do you want to continue?"
     519  if ( $< == "yes" ) then
    513520    #remove old dimensions.h file
    514521    \rm -f $libf/grid/dimensions.h
     522    #remove old scatterers.h file
     523    \rm -f $libf/phymars/scatterers.h
    515524  else
    516525    exit
     
    523532# echo contents of dimensions.h to standard output
    524533cat $libf/grid/dimensions.h
     534
     535cd $libf/phymars/scatterers
     536# Build the appropriate 'scatterers.h' file
     537./make_scatterers $scatterers
     538# echo contents of scatterers.h to standard output
     539cat $libf/phymars/scatterers.h
    525540
    526541cd $LMDGCM
     
    681696endif
    682697
    683 
    684 
    685 #
    686 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du
    687 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1
    688 #
    689 #if ($code == 'create_limit' && $SUN) then
    690 #   set link=f77
    691 #   set opt_link="-L$NCDFLIB -lnetcdf"
    692 #endif
    693 
    694 #if ($code == 'create_etat0' && $SUN) then
    695 #   if ( ! -f $libo/libdyn3d.a ) then
    696 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    697 #     \rm $libf/grid/dimensions.h
    698 #     exit
    699 #   endif
    700 #   set optim90=" -dalign -fixed "
    701 #   set opt_link="-L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
    702 #   set link="$f90 $optim90"
    703 #   touch $LMDGCM/libf/dyn3d/startvar.F
    704 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    705 #endif
    706 
    707 #
    708 # Encore un test temporaire: probleme de compilation sur VPP
    709 # l'optimisation de startvar se passe mal
    710 #
    711 #if ($code == 'create_etat0' && $VPP) then
    712 #   if ( ! -f $libo/libdyn3d.a ) then
    713 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    714 #     \rm $libf/grid/dimensions.h                                             
    715 #     exit                       
    716 #   endif
    717 #   set optim90="$optim90"" -X9 -w"
    718 #   set opt_link="-L$NCDFLIB -lnetcdf"
    719 #   touch $LMDGCM/libf/dyn3d/startvar.F
    720 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    721 #endif
    722 
    723 #
    724 # etat0_netcdf a besoin d'info de la physique
    725 # A revoir
    726698set include="$include"" -I$libf/phy$physique"
    727699
     
    813785PROG=$code
    814786
    815 \rm $libf/grid/dimensions.h
     787# cleanup, remove dimensions.h and scatterers.h
     788\rm -f $libf/grid/dimensions.h
     789\rm -f $libf/phymars/scatterers.h
  • trunk/LMDZ.MARS/makegcm_gfortran

    r38 r148  
    1313set grille=reg
    1414set dyntype="dyn"
     15set scatterers="1"
    1516########################################################################
    1617# path a changer contenant les sources et les objets du modele
     
    285286             $LMDGCM/libf/grid/dimension/makdim
    286287
     288-s nscat   Number of radiatively active scatterers
     289
    287290-p PHYS    Selects the set of physical parameterizations
    288291           you want to compile the model with.
     
    341344     case -p
    342345        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
     346
     347     case -s
     348        set scatterers="$2" ; shift ; goto top
    343349
    344350     case -g
     
    455461# build final name of libraries directory:
    456462if ( "$dyntype" == "olddyn" ) then
    457   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}_olddyn
     463  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn
    458464else
    459   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}
     465  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}
    460466endif
    461467
     
    503509cd $libf/grid
    504510if ( -f dimensions.h ) then
    505   echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"
    506   echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
    507   echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
    508   echo "vous pouvez continuer en repondant oui."
    509   echo "Voulez-vous vraiment continuer?"
    510   if ( $< == "oui" ) then
     511  echo "WARNING: you are probably already compiling the model (perhaps"
     512  echo " elsewhere). Wait until the first compilation ends before "
     513  echo " compiling a different configuration."
     514  echo "If you are sure that you are not already compiling, then you"
     515  echo " may continue this compilation by answering yes."
     516  echo "Do you want to continue?"
     517  if ( $< == "yes" ) then
    511518    #remove old dimensions.h file
    512519    \rm -f $libf/grid/dimensions.h
     520    #remove old scatterers.h file
     521    \rm -f $libf/phymars/scatterers.h
    513522  else
    514523    exit
     
    521530# echo contents of dimensions.h to standard output
    522531cat $libf/grid/dimensions.h
     532
     533cd $libf/phymars/scatterers
     534# Build the appropriate 'scatterers.h' file
     535./make_scatterers $scatterers
     536# echo contents of scatterers.h to standard output
     537cat $libf/phymars/scatterers.h
    523538
    524539cd $LMDGCM
     
    679694endif
    680695
    681 
    682 
    683 #
    684 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du
    685 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1
    686 #
    687 #if ($code == 'create_limit' && $SUN) then
    688 #   set link=f77
    689 #   set opt_link="-L$NCDFLIB -lnetcdf"
    690 #endif
    691 
    692 #if ($code == 'create_etat0' && $SUN) then
    693 #   if ( ! -f $libo/libdyn3d.a ) then
    694 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    695 #     \rm $libf/grid/dimensions.h
    696 #     exit
    697 #   endif
    698 #   set optim90=" -dalign -fixed "
    699 #   set opt_link="-L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
    700 #   set link="$f90 $optim90"
    701 #   touch $LMDGCM/libf/dyn3d/startvar.F
    702 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    703 #endif
    704 
    705 #
    706 # Encore un test temporaire: probleme de compilation sur VPP
    707 # l'optimisation de startvar se passe mal
    708 #
    709 #if ($code == 'create_etat0' && $VPP) then
    710 #   if ( ! -f $libo/libdyn3d.a ) then
    711 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    712 #     \rm $libf/grid/dimensions.h                                             
    713 #     exit                       
    714 #   endif
    715 #   set optim90="$optim90"" -X9 -w"
    716 #   set opt_link="-L$NCDFLIB -lnetcdf"
    717 #   touch $LMDGCM/libf/dyn3d/startvar.F
    718 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    719 #endif
    720 
    721 #
    722 # etat0_netcdf a besoin d'info de la physique
    723 # A revoir
    724696set include="$include"" -I$libf/phy$physique"
    725697
     
    811783PROG=$code
    812784
    813 \rm $libf/grid/dimensions.h
     785# cleanup, remove dimensions.h and scatterers.h
     786\rm -f $libf/grid/dimensions.h
     787\rm -f $libf/phymars/scatterers.h
  • trunk/LMDZ.MARS/makegcm_ifort

    r141 r148  
    1313set grille=reg
    1414set dyntype="dyn"
     15set scatterers="1"
    1516########################################################################
    1617# path a changer contenant les sources et les objets du modele
     
    279280             $LMDGCM/libf/grid/dimension/makdim
    280281
     282-s nscat   Number of radiatively active scatterers
     283
    281284-p PHYS    Selects the set of physical parameterizations
    282285           you want to compile the model with.
     
    335338     case -p
    336339        set physique="$2" ; set phys="PHYS=$physique" ; shift ; shift ; goto top
     340
     341     case -s
     342        set scatterers="$2" ; shift ; goto top
    337343
    338344     case -g
     
    449455# build final name of libraries directory:
    450456if ( "$dyntype" == "olddyn" ) then
    451   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}_olddyn
     457  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}_olddyn
    452458else
    453   set nomlib=${nomlib}_${dim_}_t${ntrac}_${grille}
     459  set nomlib=${nomlib}_${dim_}_t${ntrac}_s${scatterers}_${grille}
    454460endif
    455461
     
    497503cd $libf/grid
    498504if ( -f dimensions.h ) then
    499   echo "ATTENTION: vous etes sans doute en train de compiler le modele par ailleurs"
    500   echo "Attendez que la premiere compilation soit terminee pour relancer la suivante."
    501   echo "Si vous etes sur que vous ne compilez pas le modele par ailleurs,"
    502   echo "vous pouvez continuer en repondant oui."
    503   echo "Voulez-vous vraiment continuer?"
    504   if ( $< == "oui" ) then
     505  echo "WARNING: you are probably already compiling the model (perhaps"
     506  echo " elsewhere). Wait until the first compilation ends before "
     507  echo " compiling a different configuration."
     508  echo "If you are sure that you are not already compiling, then you"
     509  echo " may continue this compilation by answering yes."
     510  echo "Do you want to continue?"
     511  if ( $< == "yes" ) then
    505512    #remove old dimensions.h file
    506513    \rm -f $libf/grid/dimensions.h
     514    #remove old scatterers.h file
     515    \rm -f $libf/phymars/scatterers.h
    507516  else
    508517    exit
     
    515524# echo contents of dimensions.h to standard output
    516525cat $libf/grid/dimensions.h
     526
     527cd $libf/phymars/scatterers
     528# Build the appropriate 'scatterers.h' file
     529./make_scatterers $scatterers
     530# echo contents of scatterers.h to standard output
     531cat $libf/phymars/scatterers.h
    517532
    518533cd $LMDGCM
     
    672687endif
    673688
    674 
    675 
    676 #
    677 # les deux test suivants sont "temporaires" pour pallier des "faiblesses" du
    678 # compilateur fortran Sun: f90: SC4.0 11 Sep 1995 FORTRAN 90 1.1
    679 #
    680 #if ($code == 'create_limit' && $SUN) then
    681 #   set link=f77
    682 #   set opt_link="-L$NCDFLIB -lnetcdf"
    683 #endif
    684 
    685 #if ($code == 'create_etat0' && $SUN) then
    686 #   if ( ! -f $libo/libdyn3d.a ) then
    687 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    688 #     \rm $libf/grid/dimensions.h
    689 #     exit
    690 #   endif
    691 #   set optim90=" -dalign -fixed "
    692 #   set opt_link="-L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
    693 #   set link="$f90 $optim90"
    694 #   touch $LMDGCM/libf/dyn3d/startvar.F
    695 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    696 #endif
    697 
    698 #
    699 # Encore un test temporaire: probleme de compilation sur VPP
    700 # l'optimisation de startvar se passe mal
    701 #
    702 #if ($code == 'create_etat0' && $VPP) then
    703 #   if ( ! -f $libo/libdyn3d.a ) then
    704 #     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    705 #     \rm $libf/grid/dimensions.h                                             
    706 #     exit                       
    707 #   endif
    708 #   set optim90="$optim90"" -X9 -w"
    709 #   set opt_link="-L$NCDFLIB -lnetcdf"
    710 #   touch $LMDGCM/libf/dyn3d/startvar.F
    711 #   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    712 #endif
    713 
    714 #
    715 # etat0_netcdf a besoin d'info de la physique
    716 # A revoir
    717689set include="$include"" -I$libf/phy$physique"
    718690
     
    804776PROG=$code
    805777
    806 \rm $libf/grid/dimensions.h
     778# cleanup, remove dimensions.h and scatterers.h
     779\rm -f $libf/grid/dimensions.h
     780\rm -f $libf/phymars/scatterers.h
Note: See TracChangeset for help on using the changeset viewer.