Ignore:
Timestamp:
Apr 15, 2019, 4:55:13 PM (5 years ago)
Author:
Laurent Fairhead
Message:

Adding proper hybrid coordinates coefficients as per the CMIP6 data request
r3284 of IPSLCM6.0.15 branch
Also added Cecill license information to a bunch of DefLists? files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r3453 r3474  
    3232    USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, &
    3333         o_longitude, o_latitude, &
    34          o_Ahyb, o_Bhyb,o_Ahyb_inter, o_Bhyb_inter, &
     34         o_Ahyb, o_Bhyb,o_Ahyb_bounds, o_Bhyb_bounds, &
     35         o_Ahyb_mid, o_Bhyb_mid,o_Ahyb_mid_bounds, o_Bhyb_mid_bounds, &
    3536         is_ave, is_sic, o_contfracATM, o_contfracOR, &
    3637         o_aireTER, o_flat, o_slp, o_ptstar, o_pt0, o_tsol, &
     
    418419    REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
    419420!   REAL, PARAMETER :: missing_val=nf90_fill_real
    420     REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds
     421    REAL, DIMENSION(klev+1,2) :: Ahyb_bounds, Bhyb_bounds
     422    REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds
    421423    INTEGER :: ilev
    422424#ifndef CPP_XIOS
     
    451453#endif
    452454
    453     DO ilev=1,klev
    454       Ahyb_bounds(ilev,1) = ap(ilev)
    455       Ahyb_bounds(ilev,2) = ap(ilev+1)
    456       Bhyb_bounds(ilev,1) = bp(ilev)
    457       Bhyb_bounds(ilev,2) = bp(ilev+1)
     455    Ahyb_bounds(1,1) = 0.
     456    Ahyb_bounds(1,2) = aps(1)
     457    Bhyb_bounds(1,1) = 1.
     458    Bhyb_bounds(1,2) = bps(1)   
     459    DO ilev=2,klev
     460      Ahyb_bounds(ilev,1) = aps(ilev-1)
     461      Ahyb_bounds(ilev,2) = aps(ilev)
     462      Bhyb_bounds(ilev,1) = bps(ilev-1)
     463      Bhyb_bounds(ilev,2) = bps(ilev)
     464    ENDDO
     465     Ahyb_bounds(klev+1,1) = aps(klev)
     466     Ahyb_bounds(klev+1,2) = 0.
     467     Bhyb_bounds(klev+1,1) = bps(klev)
     468     Bhyb_bounds(klev+1,2) = 0.
     469
     470    DO ilev=1, klev
     471      Ahyb_mid_bounds(ilev,1) = ap(ilev)
     472      Ahyb_mid_bounds(ilev,2) = ap(ilev+1)
     473      Bhyb_mid_bounds(ilev,1) = bp(ilev)
     474      Bhyb_mid_bounds(ilev,2) = bp(ilev+1)
    458475    END DO
    459476
     
    570587       CALL histwrite_phy("R_incl",R_incl)
    571588       CALL histwrite_phy("solaire",solaire)
    572        CALL histwrite_phy(o_Ahyb, aps)
    573        CALL histwrite_phy(o_Bhyb, bps)
    574        CALL histwrite_phy(o_Ahyb_inter, Ahyb_bounds)
    575        CALL histwrite_phy(o_Bhyb_inter, Bhyb_bounds)
     589       CALL histwrite_phy(o_Ahyb, ap)
     590       CALL histwrite_phy(o_Bhyb, bp)
     591       CALL histwrite_phy(o_Ahyb_bounds, Ahyb_bounds)
     592       CALL histwrite_phy(o_Bhyb_bounds, Bhyb_bounds)
     593       CALL histwrite_phy(o_Ahyb_mid, aps)
     594       CALL histwrite_phy(o_Bhyb_mid, bps)
     595       CALL histwrite_phy(o_Ahyb_mid_bounds, Ahyb_mid_bounds)
     596       CALL histwrite_phy(o_Bhyb_mid_bounds, Bhyb_mid_bounds)
    576597       CALL histwrite_phy(o_longitude, longitude_deg)
    577598       CALL histwrite_phy(o_latitude, latitude_deg)
Note: See TracChangeset for help on using the changeset viewer.