Ignore:
Timestamp:
Jan 2, 2019, 7:44:20 PM (5 years ago)
Author:
lguez
Message:

Create subdirectory Ocean_skin in libf. For now, Ocean_skin is under
control of git, not subversion.

Add variable eps_w to common YOMCST.

For now, continue to read ocean skin parameters from a namelist in
config_ocean_skin.

The parameterisation is called from procedure surf_ocean.

Add two prognostic variables for the parameterisation: dt_ns and
ds_ns. Add eight diagnostic variables: t_int, s_int, dter, dser, tkt,
tks, rf, taur. The ten variables are only defined on ocean surface,
elsewhere they are set to nf90_fill_real. In pbl_surface, we can
initialize the eight diagnostic variables to nf90_fill_real before the
loop on sub-surfaces, but we need to keep the old values of dt_ns and
ds_ns as input of the parameterisation so we set dt_ns and ds_ns to
nf90_fill_real after the call to surf_ocean. Define ten corresponding
compressed variables in pbl_surface. Define ten corresponding NetCDF
output variables in phys_output_ctrlout_mod.

In procedure pbl_surface_newfrac, for an appearing ocean sub-surface,
dt_ns and ds_ns are set to 0. In phyetat0, also set initial dt_ns and
ds_ns to 0 if they are not in start file.

In procedure surf_ocean, for now, we use a constant specific latent
heat of vaporization, as elsewhere in LMDZ, and a constant bulk
salinity.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_var_mod.F90

    r3149 r3429  
    133133 !$OMP THREADPRIVATE(sens_prec_liq_o, sens_prec_sol_o,lat_prec_liq_o,lat_prec_sol_o)
    134134
     135  ! Ocean-atmosphere interface, subskin ocean and near-surface ocean:
     136 
     137  REAL, ALLOCATABLE, SAVE:: t_int(:) ! interface temperature, in K
     138  REAL, ALLOCATABLE, SAVE:: s_int(:) ! interface salinity, in ppt
     139
     140  REAL, ALLOCATABLE, SAVE:: dter(:)
     141  ! Temperature variation in the diffusive microlayer, that is
     142  ! subskin temperature minus ocean-air interface temperature. In
     143  ! K.
     144     
     145  REAL, SAVE, ALLOCATABLE:: dser(:)
     146  ! Temperature variation in the diffusive microlayer, that is
     147  ! subskin temperature minus ocean-air interface temperature. In K.
     148
     149  REAL, SAVE, ALLOCATABLE:: tkt(:)
     150  ! épaisseur (m) de la couche de diffusion thermique (microlayer)
     151  ! cool skin thickness
     152
     153  REAL, SAVE, ALLOCATABLE:: tks(:)
     154  ! épaisseur (m) de la couche de diffusion de masse (microlayer)
     155 
     156  REAL, SAVE, ALLOCATABLE:: rf(:)
     157  ! sensible heat flux at the surface due to rainfall, in  W m-2
     158 
     159  REAL, SAVE, ALLOCATABLE:: taur(:)
     160  ! momentum flux due to rain, in Pa
     161 
     162  !$OMP THREADPRIVATE(t_int, s_int, dter, dser, tkt, tks, rf, taur)
     163
    135164CONTAINS
    136165
     
    191220    IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon))
    192221
     222    allocate(t_int(klon), s_int(klon), dter(klon), dser(klon), tkt(klon), &
     223         tks(klon), rf(klon), taur(klon))
     224
    193225  END SUBROUTINE phys_output_var_init
    194226
Note: See TracChangeset for help on using the changeset viewer.