Ignore:
Timestamp:
Jul 15, 2011, 9:06:27 AM (13 years ago)
Author:
emillour
Message:

Mars GCM:

Implemented using 'z0' roughness length map (important: 'z0' reference

field is in datafile surface.nc, which has also been updated).

  • made z0 a z0(ngridmx) array and moved 'z0' from 'planete.h' to 'surfdat.h'; added a 'z0_default' (common in surfdat.h) corresponding to the 'control' array value (contole(19) in startfi.nc).
  • adapted 'tabfi.F' to use 'z0_default'.
  • adapted 'phyetat0.F' to look for a 'z0' field in startfi.nc. If 'z0' is not found in the startfi.nc file, then the uniform default value (z0_default) is used.
  • modified 'physdem1.F' to write 'z0' field to restart.nc
  • adapted use of z0() in 'physiq.F' (diagnostic computation of surface stress), 'vdifc.F' and 'vdif_cd.F'.
  • adapted 'dustdevil.F' to use 'z0_default'.
  • 'testphys1d.F' now uses 'z0_default', and the value to use can be set in run.def (with "z0=TheValueYouWant?").
  • modified 'datareadnc.F' to load reference map of 'z0' from surface.nc, and added a 'z0' option in 'newstart.F' to force a uniform value of z0. Note that the use of the z0 map is automatic when using newstart, but only when it loads a start_archive.nc file.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/vdif_cd.F

    r38 r224  
    3737
    3838      INTEGER ngrid,nlay
    39       REAL pz0
     39      REAL pz0(ngrid)
    4040      REAL pg,pz(ngrid,nlay)
    4141      REAL pu(ngrid,nlay),pv(ngrid,nlay)
     
    6262c     DO ig=1,ngrid
    6363c        zu2=pu(ig)*pu(ig)+pv(ig)*pv(ig)+umin2
    64 c        pcdv(ig)=pz0*(1.+sqrt(zu2))
     64c        pcdv(ig)=pz0(ig)*(1.+sqrt(zu2))
    6565c        pcdh(ig)=pcdv(ig)
    6666c     ENDDO
     
    8181c            zri=0.E+0
    8282c._.
    83 c         z1=1.+pz(ig)/pz0
     83c         z1=1.+pz(ig)/pz0(ig)
    8484c         zcd0=karman/log(z1)
    8585c._.         zcd0=zcd0*zcd0*sqrt(zu2)
     
    101101
    102102      DO ig=1,ngrid
    103          z1=1.E+0 + pz(ig,1)/pz0
     103         z1=1.E+0 + pz(ig,1)/pz0(ig)
    104104         zcd0=karman/log(z1)
    105105         zcd0=zcd0*zcd0
Note: See TracChangeset for help on using the changeset viewer.