Ignore:
Timestamp:
Sep 26, 2022, 2:43:00 PM (19 months ago)
Author:
jghattas
Message:

Added landice_opt=2 : Treat continental land ice fractions in ORCHIDEE => pctsrf(:,is_lic) = 0.0 in LMDZ.

For this option, some more variables are needed from ORCHIDEE. Therfor change in the interface LMDZ-ORCHIDEE in surf_land_orchidee_mod is done. Previous interface is moved to surf_land_orchidee_nolic_mod.f90. To compile with previous interface, cpp key ORCHIDEE_NOLIC is added. Previous interface is compiled with argument orchidee2.1 in makelmdz and makelmdz_fcm.

At the same time, when the interface was changed, the variable yrmu0(coszang) was added in the call to intersurf_initialize_gathered. This is needed in ORCHIDEE to better initialize the model.

Modifications done by Etienne Vignon and Josefine Ghattas

File:
1 edited

Legend:

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

    r3956 r4283  
    1414  USE mod_grid_phy_lmdz,   ONLY : klon_glo
    1515  USE ioipsl
    16   USE surface_data,        ONLY : type_ocean, ok_veget
     16  USE surface_data,        ONLY : type_ocean, ok_veget, landice_opt
    1717  USE surf_land_mod,       ONLY : surf_land
    1818  USE surf_landice_mod,    ONLY : surf_landice
     
    20562056       CASE(is_lic)
    20572057          ! Martin
    2058           CALL surf_landice(itap, dtime, knon, ni, &
    2059                rlon, rlat, debut, lafin, &
    2060                yrmu0, ylwdown, yalb, zgeo1, &
    2061                ysolsw, ysollw, yts, ypplay(:,1), &
    2062 !!jyg               ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),&
    2063                ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,&
    2064                AcoefH, AcoefQ, BcoefH, BcoefQ, &
    2065                AcoefU, AcoefV, BcoefU, BcoefV, &
    2066                ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    2067                ysnow, yqsurf, yqsol, yagesno, &
    2068                ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, &
    2069                ytsurf_new, y_dflux_t, y_dflux_q, &
    2070                yzmea, yzsig, ycldt, &
    2071                ysnowhgt, yqsnow, ytoice, ysissnow, &
    2072                yalb3_new, yrunoff, &
    2073                y_flux_u1, y_flux_v1)
    2074 
    2075 !jyg<
    2076 !!          alb3_lic(:)=0.
    2077 !>jyg
    2078           DO j = 1, knon
    2079              i = ni(j)
    2080              alb3_lic(i) = yalb3_new(j)
    2081              snowhgt(i)   = ysnowhgt(j)
    2082              qsnow(i)     = yqsnow(j)
    2083              to_ice(i)    = ytoice(j)
    2084              sissnow(i)   = ysissnow(j)
    2085              runoff(i)    = yrunoff(j)
    2086           ENDDO
    2087           ! Martin
    2088 ! Special DICE MPL 05082013 puis BOMEX MPL 20150410
    2089        IF (ok_prescr_ust) THEN
    2090           DO j=1,knon
    2091           y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1)
    2092           y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1)
    2093           ENDDO
    2094       ENDIF
     2058
     2059          IF (landice_opt .LT. 2) THEN
     2060             ! Land ice is treated by LMDZ and not by ORCHIDEE
     2061             CALL surf_landice(itap, dtime, knon, ni, &
     2062                  rlon, rlat, debut, lafin, &
     2063                  yrmu0, ylwdown, yalb, zgeo1, &
     2064                  ysolsw, ysollw, yts, ypplay(:,1), &
     2065                  !!jyg               ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),&
     2066                  ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,&
     2067                  AcoefH, AcoefQ, BcoefH, BcoefQ, &
     2068                  AcoefU, AcoefV, BcoefU, BcoefV, &
     2069                  ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
     2070                  ysnow, yqsurf, yqsol, yagesno, &
     2071                  ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, &
     2072                  ytsurf_new, y_dflux_t, y_dflux_q, &
     2073                  yzmea, yzsig, ycldt, &
     2074                  ysnowhgt, yqsnow, ytoice, ysissnow, &
     2075                  yalb3_new, yrunoff, &
     2076                  y_flux_u1, y_flux_v1)
     2077             
     2078             !jyg<
     2079             !!          alb3_lic(:)=0.
     2080             !>jyg
     2081             DO j = 1, knon
     2082                i = ni(j)
     2083                alb3_lic(i) = yalb3_new(j)
     2084                snowhgt(i)   = ysnowhgt(j)
     2085                qsnow(i)     = yqsnow(j)
     2086                to_ice(i)    = ytoice(j)
     2087                sissnow(i)   = ysissnow(j)
     2088                runoff(i)    = yrunoff(j)
     2089             ENDDO
     2090             ! Martin
     2091             ! Special DICE MPL 05082013 puis BOMEX MPL 20150410
     2092             IF (ok_prescr_ust) THEN
     2093                DO j=1,knon
     2094                   y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1)
     2095                   y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1)
     2096                ENDDO
     2097             ENDIF
     2098             
     2099          END IF
    20952100         
    20962101       CASE(is_oce)
Note: See TracChangeset for help on using the changeset viewer.