Changeset 1212 for trunk/MESOSCALE


Ignore:
Timestamp:
Mar 24, 2014, 9:46:50 AM (11 years ago)
Author:
aslmd
Message:

LMDZ.MARS + MESOSCALE

A quite major commit, at least for MESOSCALE.
In a word: any ngrid deserves to be free.

  • no need to recompile when changing number of horizontal grid points or number of processors
  • latest version of LMDZ.MARS physics can be used
  • WARNING! Nesting is still yet to be fixed (since r1027)

Also some small bug fixes to LMDZ.MARS.

Changes in LMDZ.MARS


--> fixed a potential bug in thermal plume model because zlmax was computed both in thermcell_main_mars and calltherm_interface... so made it an OUT argument of calltherm_interface. also: changed the name to limz. and added precompiling flags to avoid the use of planetwide in MESOSCALE. in MESOSCALE we just go high enough (nlayer-5) and do not care about computational cost (although we certainly gain from not using MAXVAL).
--> moved allocations upward in inifis. does not change anything for GCM, but make MESOSCALE modifications simpler, and overall make inifis better organized: first allocations, then reading callphys.def file.
--> added precompiling flags around lines that are both useless for MESOSCALE (notably I/O) and recently adapted to parallel computations in the GCM
--> tidied up what is MESOSCALE vs. GCM in surfini

Changes in MESOSCALE


--> changed makemeso to allow dynamically set nx ny nprocs
--> changed makemeso to remove links to Fortran code adapted to parallel GCM and useless for mesoscale
--> changed ngridmx to ngrid in inifis includes

Location:
trunk/MESOSCALE/LMD_MM_MARS
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis1.inc

    r1038 r1212  
    55
    66
    7        CALL inifis(ngridmx,nlayer,         &
     7       CALL inifis(ngrid,nlayer,         &
    88#ifdef NEWPHYS
    99               nq,  &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis2.inc

    r1038 r1212  
    88
    99       CASE(1)
    10        CALL inifis(ngridmx,nlayer, &
     10       CALL inifis(ngrid,nlayer, &
    1111#ifdef NEWPHYS
    1212               nq,  &
     
    3535
    3636       CASE(2)
    37        CALL d2_inifis(ngridmx,nlayer, &
     37       CALL d2_inifis(ngrid,nlayer, &
    3838#ifdef NEWPHYS
    3939               nq,  &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis3.inc

    r1038 r1212  
    88
    99       CASE(1)
    10        CALL inifis(ngridmx,nlayer, &
     10       CALL inifis(ngrid,nlayer, &
    1111#ifdef NEWPHYS
    1212               nq,  &
     
    3434
    3535       CASE(2)
    36        CALL d2_inifis(ngridmx,nlayer, &
     36       CALL d2_inifis(ngrid,nlayer, &
    3737#ifdef NEWPHYS
    3838               nq,  &
     
    6060
    6161       CASE(3)
    62        CALL d3_inifis(ngridmx,nlayer, &
     62       CALL d3_inifis(ngrid,nlayer, &
    6363#ifdef NEWPHYS
    6464               nq,  &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis4.inc

    r1038 r1212  
    88
    99       CASE(1)
    10        CALL inifis(ngridmx,nlayer, &
     10       CALL inifis(ngrid,nlayer, &
    1111#ifdef NEWPHYS
    1212               nq,  &
     
    3434
    3535       CASE(2)
    36        CALL d2_inifis(ngridmx,nlayer, &
     36       CALL d2_inifis(ngrid,nlayer, &
    3737#ifdef NEWPHYS
    3838               nq,  &
     
    6060
    6161       CASE(3)
    62        CALL d3_inifis(ngridmx,nlayer, &
     62       CALL d3_inifis(ngrid,nlayer, &
    6363#ifdef NEWPHYS
    6464               nq,  &
     
    8686
    8787       CASE(4)
    88        CALL d4_inifis(ngridmx,nlayer, &
     88       CALL d4_inifis(ngrid,nlayer, &
    8989#ifdef NEWPHYS
    9090               nq,  &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis5.inc

    r1095 r1212  
    88
    99       CASE(1)
    10        CALL inifis(ngridmx,nlayer, &
     10       CALL inifis(ngrid,nlayer, &
    1111#ifdef NEWPHYS
    1212               nq,  &
     
    3434
    3535       CASE(2)
    36        CALL d2_inifis(ngridmx,nlayer, &
     36       CALL d2_inifis(ngrid,nlayer, &
    3737#ifdef NEWPHYS
    3838               nq,  &
     
    6060
    6161       CASE(3)
    62        CALL d3_inifis(ngridmx,nlayer, &
     62       CALL d3_inifis(ngrid,nlayer, &
    6363#ifdef NEWPHYS
    6464               nq,  &
     
    8686
    8787       CASE(4)
    88        CALL d4_inifis(ngridmx,nlayer, &
     88       CALL d4_inifis(ngrid,nlayer, &
    8989#ifdef NEWPHYS
    9090               nq,  &
     
    112112
    113113       CASE(5)
    114        CALL d5_inifis(ngridmx,nlayer, &
     114       CALL d5_inifis(ngrid,nlayer, &
    115115#ifdef NEWPHYS
    116116               nq,  &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r1128 r1212  
    388388wappel_phys = RADT
    389389ptimestep = dt*wappel_phys            ! physical timestep (s)
    390 ngrid=(ipe-ips+1)*(jpe-jps+1)         ! size of the horizontal grid: ngridmx = wiim * wjjm
     390ngrid=(ipe-ips+1)*(jpe-jps+1)         ! size of the horizontal grid
    391391nlayer = kpe-kps+1                    ! number of vertical layers: nlayermx
    392392nsoil = NUM_SOIL_LAYERS               ! number of soil layers: nsoilmx
  • trunk/MESOSCALE/LMD_MM_MARS/makemeso

    r1060 r1212  
    134134  echo Grid points in longitude ? ; read lon
    135135  echo Grid points in latitude ? ; read lat
     136  # ngrid: now dynamically set in newphys 03/2014
     137   if [[ "${phys}" == "newphys_" ]]
     138   then
     139      lon=999
     140      lat=999
     141      numproc=999
     142   fi
    136143  echo Number of vertical levels ? ; read level
    137144  fi
     
    174181         else
    175182            echo Number of tracers ? ; read tra
    176             # tracers: no dynamically set in newphys 09/2013
     183            # tracers: now dynamically set in newphys 09/2013
    177184            if [[ "${phys}" == "newphys_" ]]
    178185            then
     
    243250     #ln -sf meso_callkeys_newphys.h meso_callkeys.h
    244251     cd Registry ; Registry.bash ; cd ..
     252
     253     # remove files adapted to parallel GCM and useless for mesoscale
     254     cd mars_lmd
     255     cd libf/phymars
     256     \rm tabfi* soil_settings* phyetat0* phyredem* iostart* writediagfi* mkstat* writediagsoil* eofdump* wstats* inistats* mod_*
     257     mv ../dyn3d/control_mod.F90 .
     258     cd ../..
     259     cd ..
     260
    245261    else
    246262         if [[ "${config}" == "les" ]]
     
    594610  cd mars_lmd/
    595611
     612 if [[ "${phys}" == "newphys_" ]]
     613 then
     614  divx=1
     615  divy=1
     616 else
    596617  # required size
    597618  #----------------
     
    611632      *) echo not yet supported ; exit ;;
    612633  esac
     634 fi
    613635  physx=$(expr ${lon} - 1)
    614636  restex=$(expr ${physx} \% ${divx})   
     
    629651  if [[ "${phys}" == "newphys_" ]]
    630652  then
    631      soilsize=18 ## nouvelle physique
     653     soilsize=18 ## nouvelle physique. ne sert a rien ici. voir comsoil.
    632654  else
    633655     soilsize=10
Note: See TracChangeset for help on using the changeset viewer.