Ignore:
Timestamp:
Feb 3, 2020, 2:27:46 PM (5 years ago)
Author:
lguez
Message:

If the ocean skin parameterization is working (passively or actively,
activate_ocean_skin >= 1) and we are coupled to the ocean then
receive bulk salinity of the surface layer of the ocean from the ocean
and feed it to procedure bulk_flux instead of the constant
value 35. If the ocean skin parameterization is working actively
(activate_ocean_skin == 2) and we are coupled to the ocean then send
ocean-air interface temperature to the ocean. We can only send
interface temperature from the previous time-step since communication
with the ocean is before the call to bulk_flux. In module cpl_mod,
define cpl_t_int with rank 1: no dimension for cpl_index because
t_int is only defined over ocean. New dummy argument sss of
procedures cpl_receive_ocean_fields and ocean_cpl_noice. New dummy
argument t_int of cpl_send_ocean_fields. In procedure
surf_ocean, rename local variable s1 to sss and give it the size
klon, which is required by the coupling machinery.

File:
1 edited

Legend:

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

    r3463 r3627  
    5555       radsol, snow, agesno, &
    5656       qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
    57        tsurf_new, dflux_s, dflux_l)
     57       tsurf_new, dflux_s, dflux_l, sss)
    5858
    5959!
     
    6363!
    6464    USE dimphy,           ONLY : klon
    65     USE cpl_mod
    6665    USE calcul_fluxs_mod
    6766    USE indice_sol_mod
    6867    USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o
    69     USE cpl_mod,             ONLY : gath2cpl
     68    USE cpl_mod, ONLY : gath2cpl, cpl_receive_ocean_fields, &
     69         cpl_send_ocean_fields
    7070    use config_ocean_skin_m, only: activate_ocean_skin
    7171
     
    106106    REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new
    107107    REAL, DIMENSION(klon), INTENT(OUT)       :: dflux_s, dflux_l     
     108
     109    REAL, INTENT(OUT):: sss(:) ! (klon)
     110    ! bulk salinity of the surface layer of the ocean, in ppt
    108111 
    109112
     
    130133!
    131134!****************************************************************************************
    132     CALL cpl_receive_ocean_fields(knon, knindex, tsurf_cpl, u0_cpl, v0_cpl)
     135    CALL cpl_receive_ocean_fields(knon, knindex, tsurf_cpl, u0_cpl, v0_cpl, &
     136         sss)
    133137
    134138!****************************************************************************************
     
    156160         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    157161         sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol)
    158     if (activate_ocean_skin == 2) tsurf_new = tsurf_cpl
     162
     163    if (activate_ocean_skin == 2) then
     164       ! tsurf_new was set to tsurf_in in calcul_flux, correct it to
     165       ! the new bulk SST tsurf_cpl:
     166       tsurf_new = tsurf_cpl
     167    end if
     168
     169    ! assertion: tsurf_new == tsurf_cpl
    159170   
    160171    do j = 1, knon
     
    197208         swnet, lwnet, fluxlat, fluxsens, &
    198209         precip_rain, precip_snow, evap, tsurf_new, fder_new, alb1, flux_u1, flux_v1, windsp,&
    199          sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol)
     210         sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol, tsurf_in)
    200211   
    201212
Note: See TracChangeset for help on using the changeset viewer.