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/tabfi.F

    r38 r224  
    112112c Boundary layer and turbulence
    113113c----------------------------
    114       z0 =  1.e-2               ! surface roughness (m) ~0.01
     114      z0_default =  1.e-2       ! surface roughness (m) ~0.01
    115115      emin_turb = 1.e-6         ! minimal energy ~1.e-8
    116116      lmixmin = 30              ! mixing length ~100
     
    190190      obliquit = tab_cntrl(tab0+18)
    191191c boundary layer and turbeulence
    192       z0 = tab_cntrl(tab0+19)
     192      z0_default = tab_cntrl(tab0+19)
    193193      lmixmin = tab_cntrl(tab0+20)
    194194      emin_turb = tab_cntrl(tab0+21)
     
    244244      write(*,5) '(18)       obliquit',tab_cntrl(tab0+18),obliquit
    245245
    246       write(*,6) '(19)             z0',tab_cntrl(tab0+19),z0
     246      write(*,6) '(19)     z0_default',tab_cntrl(tab0+19),z0_default
    247247      write(*,6) '(21)      emin_turb',tab_cntrl(tab0+21),emin_turb
    248248      write(*,5) '(20)        lmixmin',tab_cntrl(tab0+20),lmixmin
     
    277277      write(*,*)
    278278      write(*,*) '(3)          day_ini : Initial day (=0 at Ls=0)'
    279       write(*,*) '(19)              z0 : surface roughness (m)'
     279      write(*,*) '(19)              z0 : default surface roughness (m)'
    280280      write(*,*) '(21)       emin_turb :  minimal energy (PBL)'
    281281      write(*,*) '(20)         lmixmin : mixing length (PBL)'
     
    317317
    318318        else if (modif(1:lnblnk(modif)) .eq. 'z0') then
    319           write(*,*) 'current value:',z0
    320           write(*,*) 'enter new value:'
    321  102      read(*,*,iostat=ierr) z0
     319          write(*,*) 'current value (m):',z0_default
     320          write(*,*) 'enter new value (m):'
     321 102      read(*,*,iostat=ierr) z0_default
    322322          if(ierr.ne.0) goto 102
    323323          write(*,*) ' '
    324           write(*,*) ' z0 (new value):',z0
     324          write(*,*) ' z0 (new value):',z0_default
    325325
    326326        else if (modif(1:lnblnk(modif)) .eq. 'emin_turb') then
     
    493493      write(*,5) '(18)       obliquit',tab_cntrl(tab0+18),obliquit
    494494 
    495       write(*,6) '(19)             z0',tab_cntrl(tab0+19),z0
     495      write(*,6) '(19)     z0_default',tab_cntrl(tab0+19),z0_default
    496496      write(*,6) '(21)      emin_turb',tab_cntrl(tab0+21),emin_turb
    497497      write(*,5) '(20)        lmixmin',tab_cntrl(tab0+20),lmixmin
Note: See TracChangeset for help on using the changeset viewer.