Ignore:
Timestamp:
Jun 12, 2020, 9:31:02 PM (4 years ago)
Author:
lguez
Message:

Change name and meaning of t_int to sst_nff

Rename variable t_int of module phys_output_var_mod to
sst_nff. Rename local variable yt_int of pbl_surface to
ysst_nff. Rename type o_t_int of module phys_output_ctrlout_mod
to o_sst_nff. In procedure phys_output_write, write sst_nff if
activate_ocean_skin >= 1, while t_int was written only for
activate_ocean_skin == 1.

In procedure surf_ocean, rename dummy argument t_int to
sst_nff. Create local variable t_int. Set sst_nff to t_int or
tsurf_new depending on activate_ocean_skin.

Motivation: we want to output the bulk SST if activate_ocean_skin

2. Before this revision, the bulk SST in variable tsurf_new in

procedure surf_ocean was overwritten with interface temperature and
lost. We already had two output variables for SST: t_int and
ftsol, containing the same values if activate_ocean_skin

2. Instead of creating a third variable for bulk SST, change the

name and meaning of t_int to sst_nff, the SST not used to compute
surface fluxes. That is either the interface temperature or the bulk
SST depending on activate_ocean_skin. The SST used to compute
surface fluxes is always ftsol, meaning either the interface
temperature or the bulk SST depending on activate_ocean_skin.

Location:
LMDZ6/branches/Ocean_skin/libf/phylmd
Files:
5 edited

Legend:

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

    r3687 r3719  
    293293    USE ioipsl_getin_p_mod, ONLY : getin_p
    294294    use phys_state_var_mod, only: s_int, ds_ns, dt_ns
    295     use phys_output_var_mod, only: t_int, dter, dser, tkt, tks, taur
     295    use phys_output_var_mod, only: sst_nff, dter, dser, tkt, tks, taur
    296296#ifdef CPP_XIOS
    297297    USE wxios, ONLY: missing_val
     
    830830    ! Martin
    831831
    832     real, DIMENSION(klon):: yt_int, ys_int, yds_ns, ydt_ns, ydter, ydser, &
     832    real, DIMENSION(klon):: ysst_nff, ys_int, yds_ns, ydt_ns, ydter, ydser, &
    833833         ytkt, ytks, ytaur
    834     ! compression of t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks,
     834    ! compression of sst_nff, s_int, ds_ns, dt_ns, dter, dser, tkt, tks,
    835835    ! taur on ocean points
    836836
     
    19541954               yz0m, yz0h, SFRWL,yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat,&
    19551955               ytsurf_new, y_dflux_t, y_dflux_q, slab_wfbils, &
    1956                y_flux_u1, y_flux_v1, yt_int(:knon), ys_int(:knon), &
     1956               y_flux_u1, y_flux_v1, ysst_nff(:knon), ys_int(:knon), &
    19571957               yds_ns(:knon), ydt_ns(:knon), ydter(:knon), ydser(:knon), &
    19581958               ytkt(:knon), ytks(:knon), ytaur(:knon))
     
    25642564          ds_ns = missing_val
    25652565          dt_ns = missing_val
    2566           t_int = missing_val
     2566          sst_nff = missing_val
    25672567          dter = missing_val
    25682568          dser = missing_val
     
    25742574          ds_ns(ni(:knon)) = yds_ns(:knon)
    25752575          dt_ns(ni(:knon)) = ydt_ns(:knon)
    2576           t_int(ni(:knon)) = yt_int(:knon)
     2576          sst_nff(ni(:knon)) = ysst_nff(:knon)
    25772577          dter(ni(:knon)) = ydter(:knon)
    25782578          dser(ni(:knon)) = ydser(:knon)
  • LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_ctrlout_mod.F90

    r3687 r3719  
    19471947#endif
    19481948
    1949    type(ctrl_out), save:: o_t_int &
    1950         = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'T_int', &
    1951         "ocean-air interface temperature", "K", '')
     1949   type(ctrl_out), save:: o_sst_nff &
     1950        = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'SST_nff', &
     1951        "SST not used to compute fluxes", "K", '')
    19521952
    19531953   type(ctrl_out), save:: o_s_int &
  • LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_var_mod.F90

    r3687 r3719  
    135135  ! Ocean-atmosphere interface, subskin ocean and near-surface ocean:
    136136 
    137   REAL, ALLOCATABLE, SAVE:: t_int(:) ! interface temperature, in K
     137  REAL, ALLOCATABLE, SAVE:: sst_nff(:)
     138  ! SST not used to compute surface fluxes, in K. If
     139  ! activate_ocean_skin == 0 then it is not allocated; if
     140  ! activate_ocean_skin == 1 then it is the ocean-air interface
     141  ! temperature; if activate_ocean_skin == 2 then it is the bulk SST.
    138142
    139143  REAL, ALLOCATABLE, SAVE:: dter(:)
     
    155159  ! momentum flux due to rain, in Pa
    156160 
    157   !$OMP THREADPRIVATE(t_int, dter, dser, tkt, tks, taur)
     161  !$OMP THREADPRIVATE(sst_nff, dter, dser, tkt, tks, taur)
    158162
    159163CONTAINS
     
    216220    IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon))
    217221
    218     if (activate_ocean_skin >= 1) allocate(t_int(klon), dter(klon), &
     222    if (activate_ocean_skin >= 1) allocate(sst_nff(klon), dter(klon), &
    219223         dser(klon), tkt(klon), tks(klon), taur(klon))
    220224
  • LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_write_mod.F90

    r3687 r3719  
    202202!--interactive CO2
    203203         o_flx_co2_ocean, o_flx_co2_land, o_flx_co2_ff, o_flx_co2_bb, &
    204          o_t_int, o_s_int, o_ds_ns, o_dt_ns, o_dter, o_dser, o_tkt, o_tks, &
     204         o_sst_nff, o_s_int, o_ds_ns, o_dt_ns, o_dter, o_dser, o_tkt, o_tks, &
    205205         o_taur
    206206
     
    360360         alt_tropo, &
    361361!Ionela
    362          ok_4xCO2atm, t_int, dter, dser, tkt, tks, taur
     362         ok_4xCO2atm, sst_nff, dter, dser, tkt, tks, taur
    363363
    364364    USE ocean_slab_mod, ONLY: nslay, tslab, slab_bilg, tice, seaice, &
     
    23042304
    23052305       if (activate_ocean_skin >= 1) then
    2306           if (activate_ocean_skin == 1) CALL histwrite_phy(o_t_int, t_int)
    2307           ! (no need to duplicate with netCDF variable "tsol_oce" if
    2308           ! activate_ocean_skin == 2)
    2309          
     2306          CALL histwrite_phy(o_sst_nff, sst_nff)
    23102307          CALL histwrite_phy(o_s_int, s_int)
    23112308          CALL histwrite_phy(o_ds_ns, ds_ns)
  • LMDZ6/branches/Ocean_skin/libf/phylmd/surf_ocean_mod.F90

    r3687 r3719  
    2020       z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &
    2121       tsurf_new, dflux_s, dflux_l, lmt_bils, &
    22        flux_u1, flux_v1, t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks, taur)
     22       flux_u1, flux_v1, sst_nff, s_int, ds_ns, dt_ns, dter, dser, tkt, tks, taur)
    2323
    2424    use albedo, only: alboc, alboc_cd
     
    102102    REAL, DIMENSION(klon), INTENT(OUT)       :: flux_u1, flux_v1
    103103
    104     REAL, intent(out):: t_int(:) ! (knon) ocean-air interface temperature, in K
     104    REAL, intent(out):: sst_nff(:) ! (knon)
     105    ! SST not used to compute surface fluxes, in K. If
     106    ! activate_ocean_skin == 0 then it is not defined; if
     107    ! activate_ocean_skin == 1 then it is the ocean-air interface
     108    ! temperature; if activate_ocean_skin == 2 then it is the bulk SST.
    105109
    106110    REAL, intent(out):: dter(:) ! (knon)
     
    140144    ! size klon because of the coupling machinery.)
    141145
    142     ! End definition
     146    REAL t_int(knon) ! ocean-air interface temperature, in K
     147
    143148    !******************************************************************************
    144149
     
    321326            xlv = [(rlvtt, i = 1, knon)], rf = - sens_prec_liq, dtime = dtime, &
    322327            rns = swnet(:knon))
    323        if (activate_ocean_skin == 2) tsurf_new(:knon) = t_int
     328
     329       if (activate_ocean_skin == 1) then
     330          sst_nff = t_int
     331       else
     332          ! activate_ocean_skin == 2
     333          sst_nff = tsurf_new(:knon)
     334          tsurf_new(:knon) = t_int
     335       end if
    324336    end if
    325337   
Note: See TracChangeset for help on using the changeset viewer.