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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.