Ignore:
Timestamp:
Dec 10, 2009, 10:02:56 AM (14 years ago)
Author:
Laurent Fairhead
Message:

Merged LMDZ4-dev branch changes r1241:1278 into the trunk
Running trunk and LMDZ4-dev in LMDZOR configuration on local
machine (sequential) and SX8 (4-proc) yields identical results
(restart and restartphy are identical binarily)
Log history from r1241 to r1278 is available by switching to
source:LMDZ4/branches/LMDZ4-dev-20091210

Location:
LMDZ4/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk

  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r1054 r1279  
    1111      INTEGER, PARAMETER :: napisccp=1
    1212      INTEGER, SAVE :: radpas
    13       REAL, SAVE :: dtime, co2_ppm_etat0, solaire_etat0
     13      REAL, SAVE :: dtime, solaire_etat0
    1414!$OMP THREADPRIVATE(radpas)
    15 !$OMP THREADPRIVATE(dtime, co2_ppm_etat0, solaire_etat0)
     15!$OMP THREADPRIVATE(dtime, solaire_etat0)
    1616
    1717      REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:)
     
    202202      REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:)
    203203!$OMP THREADPRIVATE(albsol1,albsol2)
    204       REAL,ALLOCATABLE,SAVE :: wo(:,:)
    205 !$OMP THREADPRIVATE(wo)
    206 !
     204
     205      REAL, ALLOCATABLE, SAVE:: wo(:, :, :)
     206      ! column-density of ozone in a layer, in kilo-Dobsons
     207      ! Third dimension has size 1 or 2.
     208      ! "wo(:, :, 1)" is for the average day-night field,
     209      ! "wo(:, :, 2)" is for daylight time.
     210      !$OMP THREADPRIVATE(wo)
     211
    207212! heat : chauffage solaire
    208213! heat0: chauffage solaire ciel clair
     
    255260!$OMP THREADPRIVATE(snow_con)
    256261!
    257 ! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value)
    258 
    259       REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :)
    260 !$OMP THREADPRIVATE(sulfate_pi)
    261262      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
    262263!$OMP THREADPRIVATE(rlonPOS)
     
    269270! ok_aie=T ->
    270271!       ok_ade=T -AIE=topswai-topswad
    271 !        ok_ade=F -AIE=topswai-topsw
     272!       ok_ade=F -AIE=topswai-topsw
    272273!
    273274!topswad, solswad : Aerosol direct effect
     
    277278      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:)
    278279!$OMP THREADPRIVATE(topswai,solswai)
    279       REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
    280 !$OMP THREADPRIVATE(tau_ae,piz_ae)
    281       REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
    282 !$OMP THREADPRIVATE(cg_ae)
    283 
    284 ! Les variables suivants uniquement pour un configuration avec INCA
    285 ! topswad_inca, solswad_inca : Aerosol direct effect
    286       REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:)
    287 !$OMP THREADPRIVATE(topswad_inca,solswad_inca)
    288 ! topswad0_inca, solswad0_inca : Aerosol direct effect
    289       REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:)
    290 !$OMP THREADPRIVATE(topswad0_inca,solswad0_inca)
    291 ! topswai_inca, solswai_inca : Aerosol indirect effect
    292       REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:)
    293 !$OMP THREADPRIVATE(topswai_inca,solswai_inca)
    294       REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
    295 !$OMP THREADPRIVATE(topsw_inca,solsw_inca)
    296       REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)
    297 !$OMP THREADPRIVATE(topsw0_inca,solsw0_inca)
    298       REAL,SAVE,ALLOCATABLE :: tau_inca(:,:,:,:)
    299 !$OMP THREADPRIVATE(tau_inca)
    300       REAL,SAVE,ALLOCATABLE :: piz_inca(:,:,:,:)
    301 !$OMP THREADPRIVATE(piz_inca)
    302       REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:)
    303 !$OMP THREADPRIVATE(cg_inca)
     280
     281      REAL,SAVE,ALLOCATABLE :: tau_aero(:,:,:,:), piz_aero(:,:,:,:), cg_aero(:,:,:,:)
     282!$OMP THREADPRIVATE(tau_aero, piz_aero, cg_aero)
    304283      REAL,SAVE,ALLOCATABLE :: ccm(:,:,:)
    305284!$OMP THREADPRIVATE(ccm)
     
    308287
    309288!======================================================================
    310 SUBROUTINE phys_state_var_init
     289SUBROUTINE phys_state_var_init(read_climoz)
    311290use dimphy
     291use aero_mod
    312292IMPLICIT NONE
     293
     294integer, intent(in)::  read_climoz
     295! read ozone climatology
     296! Allowed values are 0, 1 and 2
     297! 0: do not read an ozone climatology
     298! 1: read a single ozone climatology that will be used day and night
     299! 2: read two ozone climatologies, the average day and night
     300! climatology and the daylight climatology
     301
    313302#include "indicesol.h"
    314303#include "control.h"
     
    388377      ALLOCATE(paire_ter(klon))
    389378      ALLOCATE(albsol1(klon), albsol2(klon))
    390       ALLOCATE(wo(klon,klev))
     379
     380      if (read_climoz <= 1) then
     381         ALLOCATE(wo(klon,klev, 1))
     382      else
     383         ! read_climoz == 2
     384         ALLOCATE(wo(klon,klev, 2))
     385      end if
     386     
    391387      ALLOCATE(clwcon0(klon,klev),rnebcon0(klon,klev))
    392388      ALLOCATE(heat(klon,klev), heat0(klon,klev))
     
    402398      ALLOCATE(ibas_con(klon), itop_con(klon))
    403399      ALLOCATE(rain_con(klon), snow_con(klon))
    404 !
    405       ALLOCATE(sulfate_pi(klon, klev))
    406400      ALLOCATE(rlonPOS(klon))
    407401      ALLOCATE(newsst(klon))
     
    409403      ALLOCATE(topswad(klon), solswad(klon))
    410404      ALLOCATE(topswai(klon), solswai(klon))
    411       ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2))
    412       ALLOCATE(cg_ae(klon,klev,2))
    413 
    414       IF (config_inca /= 'none') THEN
    415          ALLOCATE(topswad_inca(klon), solswad_inca(klon))
    416          ALLOCATE(topswad0_inca(klon), solswad0_inca(klon))
    417          ALLOCATE(topswai_inca(klon), solswai_inca(klon))
    418          ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9))
    419          ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9))
    420       END IF
    421       ! Following 4 variables are needed only by INCA but must be
    422       ! allocated as they exist in the phytrac argument list
    423       ALLOCATE(tau_inca(klon,klev,9,2))
    424       ALLOCATE(piz_inca(klon,klev,9,2))
    425       ALLOCATE(cg_inca(klon,klev,9,2))
    426       ALLOCATE(ccm(klon,klev,2))
     405      ALLOCATE(tau_aero(klon,klev,naero_grp,nbands),piz_aero(klon,klev,naero_grp,nbands),cg_aero(klon,klev,naero_grp,nbands))
     406      ALLOCATE(ccm(klon,klev,nbands))
    427407
    428408END SUBROUTINE phys_state_var_init
     
    505485      deallocate(ibas_con, itop_con)
    506486      deallocate(rain_con, snow_con)
    507 !
    508       deallocate(sulfate_pi)
    509487      deallocate(rlonPOS)
    510488      deallocate(newsst)
     
    512490      deallocate(topswad, solswad)
    513491      deallocate(topswai, solswai)
    514 
    515       deallocate(tau_ae, piz_ae)
    516       deallocate(cg_ae)
    517 
    518       IF (config_inca /= 'none') THEN
    519          deallocate(topswad_inca, solswad_inca)
    520          deallocate(topswad0_inca, solswad0_inca)
    521          deallocate(topswai_inca, solswai_inca)
    522          deallocate(topsw_inca, solsw_inca)
    523          deallocate(topsw0_inca, solsw0_inca)
    524       END IF
    525       deallocate(tau_inca)
    526       deallocate(piz_inca)
    527       deallocate(cg_inca)
     492      deallocate(tau_aero,piz_aero,cg_aero)
    528493      deallocate(ccm)
    529494       
Note: See TracChangeset for help on using the changeset viewer.