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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.