Ignore:
Timestamp:
Oct 10, 2011, 11:01:05 PM (13 years ago)
Author:
aslmd
Message:

MESOSCALE: * implemented z0 roughness map from Hebrard et al. 2011

  • also possible to prescribe a constant value in namelist.input through init_Z0
  • if there is a missing value [z0=0] or a problem, default value is 1cm
  • note: in surface.nc and geo_em.d01.nc, z0 is in cm

in wrfinput_d01 and LMD physics integrations, z0 is in m

MODIFIED files in the physics [MESOSCALE ONLY]
M 314 LMDZ.MARS/libf/phymars/meso_inc/meso_inc_ini.F
M 314 LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisini.F
M 314 LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisinvar.F
M 314 LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisvar.F

MODIFIED files in the dynamical core and interface
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis1.inc
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis2.inc
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis3.inc
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
M 314 MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

MODIFIED files for geogrid.exe [interpolation on the domain]
M 314 MESOSCALE/LMD_MM_MARS/SRC/WPS/wps_mars/geogrid/GEOGRID.TBL.ARW_Mars
M 314 MESOSCALE/LMD_MM_MARS/SRC/WPS/wps_mars/namelist.wps_TEST
A 0 MESOSCALE/LMD_MM_MARS/WPS_GEOG/rough_GCM



M 314 MESOSCALE_DEV/TESTS/LMD_MM_MARS_FASTCASEnewphys.tar.gz

The manual does not feature the few indications necessary for simulations
with new physics so we took a few notes, commented for the moment
M 314 MESOSCALE_DEV/MANUAL/SRC

Location:
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r296 r315  
    110110state  real  HFMAX_TH  ij   misc  1  -  rd   "HFMAX_TH"  "MAXIMUM TH HEAT FLUX"            "m.K/s"   #SAVEMARS2 hfmax_th
    111111state  real  WMAX_TH   ij   misc  1  -  rd   "WMAX_TH"   "MAXIMUM TH VERTICAL VELOCITY"    "m/s"     #SAVEMARS2 wmax_th
    112 
     112state  real  Z0SET     ij   misc  1  -  rhd  "Z0SET"     "SET SURFACE ROUGHNESS"           "m"       #SAVEMARS2 z0
    113113
    114114####
     
    194194#### variables dans real
    195195####
     196############# in module_initialize ################# in geo_em.d**.nc ############################################
    196197state  real   albedo_gcm_gc   ij   dyn_em  1  -  i1  "ALBEDO_GCM"       "albedo of naked ground"  "0 - 1 fraction"
    197198state  real   therm_inert_gc  ij   dyn_em  1  -  i1  "THERMAL_INERTIA"  "thermal inertia"         "J/m2/K/s0.5"
     199state  real   z0_gc           ij   dyn_em  1  -  i1  "SURF_ROUGHNESS"   "surface roughness"       "cm"
    198200state  real   slpx_gc         ij   dyn_em  1  -  i1  "SLPX"             "slope x direction"       "rad"
    199201state  real   slpy_gc         ij   dyn_em  1  -  i1  "SLPY"             "slope y direction"       "rad"
     
    208210#### variables dans wrf
    209211####
     212############# in module_initialize ################## in solve_em and lmd_driver ###############################
    210213state  real   albedo_gcm      ij   misc  1  -  i012rd  "MARS_ALB"    "albedo of naked ground"  "0 - 1 fraction"
    211214state  real   therm_inert     ij   misc  1  -  i012rd  "MARS_TI"     "thermal inertia"         "J/m2/K/s0.5"
     215state  real   z0              ij   misc  1  -  i012rd  "MARS_Z0"     "surface roughness"       "cm"
    212216state  real   slpx            ij   misc  1  -  i012rd  "SLOPEX"      "slope x direction"       "rad"
    213217state  real   slpy            ij   misc  1  -  i012rd  "SLOPEY"      "slope y direction"       "rad"
     
    11291133rconfig  real     init_TI   namelist,physics  max_domains  0        irh  "init_TI"   "thermal inertia"         ""
    11301134rconfig  real     init_AL   namelist,physics  max_domains  0        irh  "init_AL"   "albedo"                  ""
     1135rconfig  real     init_Z0   namelist,physics  max_domains  0        irh  "init_Z0"   "surface roughness"       ""
    11311136rconfig  real     init_U    namelist,physics  max_domains  0        irh  "init_U"    "zonal wind"              ""
    11321137rconfig  real     init_V    namelist,physics  max_domains  0        irh  "init_V"    "meridional wind"         ""
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis1.inc

    r234 r315  
    1616               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    1717#ifdef NEWPHYS
    18                walbedodat, wphisfi, wvolcapa,                          &
     18               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    1919#else
    2020               walbedodat, winertiedat, wphisfi,                       &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis2.inc

    r234 r315  
    1919               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    2020#ifdef NEWPHYS
    21                walbedodat, wphisfi, wvolcapa,                          &
     21               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    2222#else
    2323               walbedodat, winertiedat, wphisfi,                       &
     
    3939               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    4040#ifdef NEWPHYS
    41                walbedodat, wphisfi, wvolcapa,                          &
     41               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    4242#else
    4343               walbedodat, winertiedat, wphisfi,                       &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis3.inc

    r234 r315  
    1919               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    2020#ifdef NEWPHYS
    21                walbedodat, wphisfi, wvolcapa,                          &
     21               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    2222#else
    2323               walbedodat, winertiedat, wphisfi,                       &
     
    3838               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    3939#ifdef NEWPHYS
    40                walbedodat, wphisfi, wvolcapa,                          &
     40               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    4141#else
    4242               walbedodat, winertiedat, wphisfi,                       &
     
    5757               wiceradiusN,wiceradiusS,wdtemisiceN,wdtemisiceS,        &
    5858#ifdef NEWPHYS
    59                walbedodat, wphisfi, wvolcapa,                          &
     59               walbedodat, wphisfi, wvolcapa, wz0tab,                  &
    6060#else
    6161               walbedodat, winertiedat, wphisfi,                       &
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r76 r315  
    289289!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    290290#ifdef NEWPHYS
     291
     292              grid%mars_z0(i,j) = 0.
     293              grid%mars_z0(i,j) = grid%em_z0_gc(i,j)*0.01  !! in cm in surface.nc but in m in physiq.F
     294              !IF (config_flags%init_Z0 .ne. 0.) THEN
     295              !   grid%z0 = grid%z0*0. + config_flags%init_Z0
     296              !ENDIF
     297
    291298              ! here, that bit is necessary for new soil model !         
    292299              IF (config_flags%init_TI .ne. 0.) THEN
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r196 r315  
    866866     &        ,MARS_ISOIL=grid%mars_isoil       &
    867867     &        ,MARS_DSOIL=grid%mars_dsoil       &
     868     &        ,MARS_Z0=grid%mars_z0             &
     869     &        ,CST_Z0=config_flags%init_Z0      &
    868870#endif
    869871     &        ,MARS_GW=grid%mars_gw  & 
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r250 r315  
    3535        MARS_ISOIL, &
    3636        MARS_DSOIL, &
     37        MARS_Z0, &
     38        CST_Z0, &
    3739#endif
    3840        MARS_GW, &
     
    127129     MARS_TSOIL
    128130#ifdef NEWPHYS
     131REAL, INTENT(IN  ) :: CST_Z0
    129132REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN   )  :: &
    130133     MARS_ISOIL, MARS_DSOIL         
     134REAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN   )  :: &
     135     MARS_Z0
    131136#endif
    132137REAL, DIMENSION( ims:ime, 5, jms:jme ), INTENT(IN   )  :: &
     
    186191#ifdef NEWPHYS
    187192   REAL,DIMENSION(:),ALLOCATABLE :: isoil_val, dsoil_val
     193   REAL :: z0_val
    188194#endif
    189195   REAL,DIMENSION(:),ALLOCATABLE :: aire_vec,lat_vec,lon_vec
     
    195201   REAL,DIMENSION(:,:),ALLOCATABLE :: wq2,wqsurf,wtsoil
    196202#ifdef NEWPHYS
     203   REAL,DIMENSION(:),ALLOCATABLE :: wz0tab
    197204   REAL,DIMENSION(:,:),ALLOCATABLE :: wisoil,wdsoil
    198205   CHARACTER*20,DIMENSION(:),ALLOCATABLE :: wtnom
     
    568575!----------!
    569576! inputs ...
    570 ALLOCATE(aire_vec(ngrid))
    571 ALLOCATE(lon_vec(ngrid))
    572 ALLOCATE(lat_vec(ngrid))
    573 ALLOCATE(walbedodat(ngrid))
    574 ALLOCATE(winertiedat(ngrid))
    575 ALLOCATE(wphisfi(ngrid))
    576 ALLOCATE(wzmea(ngrid))
    577 ALLOCATE(wzstd(ngrid))
    578 ALLOCATE(wzsig(ngrid))
    579 ALLOCATE(wzgam(ngrid))
    580 ALLOCATE(wzthe(ngrid))
    581 ALLOCATE(wtheta(ngrid))
    582 ALLOCATE(wpsi(ngrid))
    583 ALLOCATE(wtsurf(ngrid))
     577IF (firstcall .EQV. .true.) THEN
     578  ALLOCATE(aire_vec(ngrid))!
     579  ALLOCATE(lon_vec(ngrid))!
     580  ALLOCATE(lat_vec(ngrid))!
     581  ALLOCATE(walbedodat(ngrid))!
     582  ALLOCATE(winertiedat(ngrid))!
     583  ALLOCATE(wphisfi(ngrid))!
     584  ALLOCATE(wzmea(ngrid))!
     585  ALLOCATE(wzstd(ngrid))!
     586  ALLOCATE(wzsig(ngrid))!
     587  ALLOCATE(wzgam(ngrid))!
     588  ALLOCATE(wzthe(ngrid))!
     589  ALLOCATE(wtheta(ngrid))!
     590  ALLOCATE(wpsi(ngrid))!
     591#ifdef NEWPHYS
     592  ALLOCATE(wz0tab(ngrid))!
     593#endif
     594ENDIF
     595ALLOCATE(wtsurf(ngrid))          !!!!!
    584596#ifndef NOPHYS
    585597ALLOCATE(output_tab2d(ngrid,n2d))
    586598ALLOCATE(output_tab3d(ngrid,nlayer,n3d))
    587599#endif
    588 ALLOCATE(wco2ice(ngrid))
    589 ALLOCATE(wemis(ngrid))
     600ALLOCATE(wco2ice(ngrid))         !!!!!
     601ALLOCATE(wemis(ngrid))           !!!!!
    590602ALLOCATE(q2_val(nlayer+1))
    591603ALLOCATE(qsurf_val(nq))
     
    595607ALLOCATE(dsoil_val(nsoil))
    596608#endif
    597 ALLOCATE(wq2(ngrid,nlayer+1))
    598 ALLOCATE(wqsurf(ngrid,nq))
    599 ALLOCATE(wtsoil(ngrid,nsoil))
    600 #ifdef NEWPHYS
    601 ALLOCATE(wisoil(ngrid,nsoil))
    602 ALLOCATE(wdsoil(ngrid,nsoil))
    603 #endif
    604 ALLOCATE(pplev(ngrid,nlayer+1))
    605 ALLOCATE(pplay(ngrid,nlayer))
    606 ALLOCATE(pphi(ngrid,nlayer))
    607 ALLOCATE(pu(ngrid,nlayer))
    608 ALLOCATE(pv(ngrid,nlayer))
    609 ALLOCATE(pt(ngrid,nlayer))
    610 ALLOCATE(pw(ngrid,nlayer))
    611 ALLOCATE(pq(ngrid,nlayer,nq))
     609ALLOCATE(wq2(ngrid,nlayer+1))    !!!!!
     610ALLOCATE(wqsurf(ngrid,nq))       !!!!!
     611ALLOCATE(wtsoil(ngrid,nsoil))    !!!!!
     612#ifdef NEWPHYS
     613ALLOCATE(wisoil(ngrid,nsoil))    !!!!!
     614ALLOCATE(wdsoil(ngrid,nsoil))    !!!!!
     615#endif
     616ALLOCATE(pplev(ngrid,nlayer+1))  !!!!!
     617ALLOCATE(pplay(ngrid,nlayer))    !!!!!
     618ALLOCATE(pphi(ngrid,nlayer))     !!!!!
     619ALLOCATE(pu(ngrid,nlayer))       !!!!!
     620ALLOCATE(pv(ngrid,nlayer))       !!!!!
     621ALLOCATE(pt(ngrid,nlayer))       !!!!!
     622ALLOCATE(pw(ngrid,nlayer))       !!!!!
     623ALLOCATE(pq(ngrid,nlayer,nq))    !!!!!
    612624! interm
    613625ALLOCATE(dz8w_prof(nlayer))
     
    624636#ifdef NEWPHYS
    625637ALLOCATE(q_prof(nlayer,nq))
    626 ALLOCATE(wtnom(nq))
     638ALLOCATE(wtnom(nq))              !!!!!
    627639#else
    628640ALLOCATE(water_vapor_prof(nlayer))
    629641ALLOCATE(water_ice_prof(nlayer))
    630642#endif
     643
    631644
    632645!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    811824ENDIF
    812825
     826#ifdef NEWPHYS
     827!----------------------------!
     828! Variable surface roughness !
     829!----------------------------!
     830IF (JULYR .ne. 9999) THEN
     831 IF (CST_Z0 == 0) THEN
     832   z0_val = MARS_Z0(i,j)
     833 ELSE
     834   z0_val = CST_Z0
     835   IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** SET CONSTANT SURF ROUGHNESS (m) ',CST_Z0
     836 ENDIF
     837ELSE
     838 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION z0 (m) ', CST_Z0
     839 z0_val=CST_Z0
     840ENDIF
     841!!!! ADDITIONAL SECURITY. THIS MIGHT HAPPEN WITH OLD INIT FILES.
     842IF (z0_val == 0.) THEN
     843   PRINT *, 'WELL, z0 is 0, this is no good. Setting to old defaults value 0.01 m'
     844   z0_val = 0.01
     845ENDIF
     846#endif
     847
    813848!---------------------------------------------------------!
    814849! Ground geopotential                                     !
     
    935970PRINT *,'dsoil ',dsoil_val
    936971PRINT *,'q_prof ',q_prof
     972PRINT *,'z0 ',z0_val
    937973#endif
    938974ENDIF
     
    9681004wisoil(subs,:) = isoil_val(:)
    9691005wdsoil(subs,:) = dsoil_val(:)
     1006wz0tab(subs) = z0_val
    9701007#endif
    9711008wtheta(subs) = theta_val
     
    10831120DEALLOCATE(wtheta)
    10841121DEALLOCATE(wpsi)
     1122#ifdef NEWPHYS
     1123DEALLOCATE(wz0tab)
     1124#endif
    10851125ENDIF
    10861126
Note: See TracChangeset for help on using the changeset viewer.