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/create_etat0_unstruct.F90

    r3900 r4283  
    5353  USE phys_state_var_mod
    5454  USE indice_sol_mod
     55  USE surface_data,      ONLY: landice_opt
    5556  USE mod_phys_lmdz_para
    5657  USE print_control_mod, ONLY: lunout
     
    8384      CALL xios_recv_field("qs",qsol_mpi)
    8485      CALL xios_recv_field("mask",zmasq_mpi)
    85       CALL xios_recv_field("landice",lic_mpi)
     86      IF (landice_opt .LT. 2) CALL xios_recv_field("landice",lic_mpi)
    8687      CALL xios_recv_field("zmea",zmea_mpi)
    8788      CALL xios_recv_field("zstd",zstd_mpi)
     
    9394    CALL scatter_omp(qsol_mpi,qsol)
    9495    CALL scatter_omp(zmasq_mpi,zmasq)
    95     CALL scatter_omp(lic_mpi,lic)
     96    IF (landice_opt .LT. 2) CALL scatter_omp(lic_mpi,lic)
    9697    CALL scatter_omp(zmea_mpi,zmea)
    9798    CALL scatter_omp(zstd_mpi,zstd)
     
    110111
    111112    pctsrf(:,:) = 0
    112     pctsrf(:,is_lic)=lic
    113     WHERE(pctsrf(:,is_lic)<EPSFRA) pctsrf(:,is_lic)=0.
    114     WHERE(zmasq(:)<EPSFRA)         pctsrf(:,is_lic)=0.
    115 
    116     pctsrf(:,is_ter)=zmasq(:)
    117 
    118 !--- Adequation with soil/sea mask
    119     DO ji=1,klon
    120       IF(zmasq(ji)>EPSFRA) THEN
    121         IF(pctsrf(ji,is_lic)>=zmasq(ji)) THEN
    122           pctsrf(ji,is_lic)=zmasq(ji)
    123           pctsrf(ji,is_ter)=0.
    124         ELSE
    125           pctsrf(ji,is_ter)=zmasq(ji)-pctsrf(ji,is_lic)
    126           IF(pctsrf(ji,is_ter)<EPSFRA) THEN
    127             pctsrf(ji,is_ter)=0.
    128             pctsrf(ji,is_lic)=zmasq(ji)
    129           END IF
    130         END IF
    131       END IF
    132     END DO
     113    IF (landice_opt .LT. 2) THEN
     114       pctsrf(:,is_lic)=lic
     115       WHERE(pctsrf(:,is_lic)<EPSFRA) pctsrf(:,is_lic)=0.
     116       WHERE(zmasq(:)<EPSFRA)         pctsrf(:,is_lic)=0.
     117
     118       pctsrf(:,is_ter)=zmasq(:)
     119       
     120       !--- Adequation with soil/sea mask
     121       DO ji=1,klon
     122          IF(zmasq(ji)>EPSFRA) THEN
     123             IF(pctsrf(ji,is_lic)>=zmasq(ji)) THEN
     124                pctsrf(ji,is_lic)=zmasq(ji)
     125                pctsrf(ji,is_ter)=0.
     126             ELSE
     127                pctsrf(ji,is_ter)=zmasq(ji)-pctsrf(ji,is_lic)
     128                IF(pctsrf(ji,is_ter)<EPSFRA) THEN
     129                   pctsrf(ji,is_ter)=0.
     130                   pctsrf(ji,is_lic)=zmasq(ji)
     131                END IF
     132             END IF
     133          END IF
     134       END DO
     135   
     136    ELSE
     137       ! landice_opt=>2 : no land ice
     138       pctsrf(:,is_lic)=0.0
     139       pctsrf(:,is_ter)=zmasq(:)
     140    END IF
     141
     142
     143
    133144
    134145
Note: See TracChangeset for help on using the changeset viewer.