Changeset 4856


Ignore:
Timestamp:
Mar 19, 2024, 7:51:51 PM (7 weeks ago)
Author:
yann meurdesoif
Message:
  • Phasing create_etat0_unstruct with regular ce0l
  • Parameters for gravity wave parametrization or now computed by driver ICOSA_LMDZ

YM

File:
1 edited

Legend:

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

    r4847 r4856  
    11MODULE create_etat0_unstruct_mod
    22
    3 
    4 
    5 
     3  REAL, SAVE, ALLOCATABLE :: zmea_gw(:)
     4  !$OMP THREADPRIVATE(zmea_gw)
     5  REAL, SAVE, ALLOCATABLE :: zpic_gw(:)
     6  !$OMP THREADPRIVATE(zpic_gw)
     7  REAL, SAVE, ALLOCATABLE :: zval_gw(:)
     8  !$OMP THREADPRIVATE(zval_gw)
     9  REAL, SAVE, ALLOCATABLE :: zstd_gw(:)
     10  !$OMP THREADPRIVATE(zstd_gw)
     11  REAL, SAVE, ALLOCATABLE :: zsig_gw(:)
     12  !$OMP THREADPRIVATE(zsig_gw)
     13  REAL, SAVE, ALLOCATABLE :: zgam_gw(:)
     14  !$OMP THREADPRIVATE(zgam_gw)
     15  REAL, SAVE, ALLOCATABLE :: zthe_gw(:)
     16  !$OMP THREADPRIVATE(zthe_gw)
     17
     18  PRIVATE zmea_gw, zpic_gw, zval_gw, zstd_gw, zsig_gw, zgam_gw, zthe_gw
    619
    720
     
    4154 
    4255 
     56  SUBROUTINE init_param_gw(zmea, zpic, zval, zstd, zsig, zgam, zthe)
     57  USE dimphy
     58    REAL, INTENT(IN) :: zmea(klon) 
     59    REAL, INTENT(IN) :: zpic(klon)
     60    REAL, INTENT(IN) :: zval(klon)
     61    REAL, INTENT(IN) :: zstd(klon)
     62    REAL, INTENT(IN) :: zsig(klon)
     63    REAL, INTENT(IN) :: zgam(klon)
     64    REAL, INTENT(IN) :: zthe(klon)
     65
     66    ALLOCATE(zmea_gw(klon), zpic_gw(klon), zval_gw(klon), zstd_gw(klon), zsig_gw(klon), zgam_gw(klon), zthe_gw(klon))
     67   
     68    zmea_gw(:)=zmea(:)
     69    zpic_gw(:)=zpic(:)
     70    zval_gw(:)=zval(:)
     71    zstd_gw(:)=zstd(:)
     72    zsig_gw(:)=zsig(:)
     73    zgam_gw(:)=zgam(:)
     74    zthe_gw(:)=zthe(:)
     75
     76  END SUBROUTINE init_param_gw
     77
     78
     79
     80
    4381  SUBROUTINE create_etat0_unstruct
    4482  USE dimphy
     
    5795  IMPLICIT NONE
    5896  INCLUDE 'dimsoil.h'
     97  include "clesphys.h"
    5998
    6099    LOGICAL :: no_ter_antartique   ! If true, no land points are allowed at Antartic
     
    66105    REAL,    DIMENSION(klon)                 :: fder
    67106
    68     REAL,    DIMENSION(klon,nbsrf)           :: qsolsrf, snsrf
     107    REAL,    DIMENSION(klon,nbsrf)           :: qsurf, snsrf
    69108    REAL,    DIMENSION(klon,nsoilmx,nbsrf)   :: tsoil
    70109   
     
    74113    REAL,    DIMENSION(klon_mpi,nbsrf)       :: pctsrf_mpi
    75114
     115    INCLUDE "compbl.h"
     116    INCLUDE "alpale.h"
     117   
    76118    INTEGER :: ji,j,i
    77119 
     120
     121!--- Initial atmospheric CO2 conc. from .def file
     122    co2_ppm0 = co2_ppm
     123
    78124    IF (is_omp_master) THEN
    79125      CALL xios_recv_field("ts",tsol_mpi)
     
    81127      CALL xios_recv_field("mask",zmasq_mpi)
    82128      IF (landice_opt .LT. 2) CALL xios_recv_field("landice",lic_mpi)
    83       CALL xios_recv_field("zmea",zmea_mpi)
    84       CALL xios_recv_field("zstd",zstd_mpi)
    85       CALL xios_recv_field("zsig",zsig_mpi)
    86       CALL xios_recv_field("zgam",zgam_mpi)
    87       CALL xios_recv_field("zthe",zthe_mpi)
    88129    ENDIF
    89130    CALL scatter_omp(tsol_mpi,tsol)
     
    91132    CALL scatter_omp(zmasq_mpi,zmasq)
    92133    IF (landice_opt .LT. 2) CALL scatter_omp(lic_mpi,lic)
    93     CALL scatter_omp(zmea_mpi,zmea)
    94     CALL scatter_omp(zstd_mpi,zstd)
    95     CALL scatter_omp(zsig_mpi,zsig)
    96     CALL scatter_omp(zgam_mpi,zgam)
    97     CALL scatter_omp(zthe_mpi,zthe)
    98134
    99135    radsol(:)   = 0.0
     
    166202    WHERE(pctsrf(:,is_oce)<EPSFRA) pctsrf(:,is_oce)=0.
    167203   
    168     zval(:)=max(0.,zmea-2*zstd(:))
    169     zpic(:)=zmea+2*zstd(:)
     204!    zval(:)=max(0.,zmea-2*zstd(:))
     205!    zpic(:)=zmea+2*zstd(:)
    170206   
    171207!! WARNING    DON'T FORGET FOR LATER
     
    192228!ym probably the uninitialized value was 0 for standard (regular grid) case
    193229    falb_dif(:,:,:)=0
    194 
     230    u10m(:,:)=0 
     231    v10m(:,:)=0 
     232    treedrg(:,:,:)=0
    195233!albedo SB <<<
    196234    fevap(:,:) = 0.
    197     DO i=1,nbsrf
    198      qsolsrf(:,i)=150.
    199     END DO
    200  
     235    qsurf = 0.
     236   
    201237    DO i=1,nbsrf
    202238      DO j=1,nsoilmx
     
    207243    rain_fall = 0.; snow_fall = 0.
    208244    solsw = 165.;   sollw = -53.
     245    solswfdiff = 1.
    209246!ym warning missing init for sollwdown => set to 0
    210247  sollwdown  = 0.
     
    215252    v_ancien=0
    216253    q_ancien = 0.
     254    ql_ancien = 0.
     255    qs_ancien = 0.
     256    prlw_ancien = 0.
     257    prsw_ancien = 0.
     258    prw_ancien = 0.
    217259    agesno = 0.
    218260
     261    wake_delta_pbl_TKE(:,:,:)=0
     262    wake_dens(:)=0
     263    awake_dens = 0.
     264    cv_gen = 0.
     265    ale_bl = 0.
     266    ale_bl_trig =0.
     267    alp_bl=0.
     268    ale_wake=0.
     269    ale_bl_stat=0.
     270   
     271    z0m(:,:)=0 ! ym missing 5th subsurface initialization
    219272    z0m(:,is_oce) = rugmer(:)
    220 
    221    z0m(:,is_ter) = 0.01 ! MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
    222    z0m(:,is_lic) = 0.001 !MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
    223 
    224    z0m(:,is_sic) = 0.001
    225    z0h(:,:)=z0m(:,:)
     273    z0m(:,is_ter) = 0.01 ! MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
     274    z0m(:,is_lic) = 0.001 !MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
     275    z0m(:,is_sic) = 0.001
     276    z0h(:,:)=z0m(:,:)
    226277
    227278    fder = 0.0
     
    249300    entr_therm = 0.
    250301    detr_therm = 0.
    251     ale_bl = 0.
    252     ale_bl_trig =0.
    253     alp_bl =0.
    254     ale_wake = 0.
     302    awake_s = 0.
     303
    255304    CALL fonte_neige_init(run_off_lic_0)
    256     CALL pbl_surface_init( fder, snsrf, qsolsrf, tsoil )
     305    CALL pbl_surface_init( fder, snsrf, qsurf, tsoil )
     306
     307    IF (iflag_pbl>1 .AND. iflag_wake>=1  .AND. iflag_pbl_split >=1) then
     308     delta_tsurf = 0.
     309     beta_aridity = 0.
     310    END IF
     311    ratqs_inter_ = 0.002
     312    rneb_ancien = 0.
    257313
    258314    CALL gather_omp(cell_area,cell_area_mpi)
     
    264320    ENDIF
    265321   
     322    zmea(:) = zmea_gw(:)
     323    zpic(:) = zpic_gw(:)
     324    zval(:) = zval_gw(:)
     325    zstd(:) = zstd_gw(:)
     326    zsig(:) = zsig_gw(:)
     327    zgam(:) = zgam_gw(:)
     328    zthe(:) = zthe_gw(:)
     329    DEALLOCATE(zmea_gw, zpic_gw, zval_gw, zstd_gw, zsig_gw, zgam_gw, zthe_gw)
     330
    266331    CALL phyredem( "startphy.nc" )
    267332
Note: See TracChangeset for help on using the changeset viewer.