Ignore:
Timestamp:
Jun 11, 2008, 1:14:41 PM (16 years ago)
Author:
Laurent Fairhead
Message:

Pour des raisons pratiques (besoin de tester facilement les parametrisations
physiques en 1D et 3D), les arguments des routines de lecture et d'ecriture
de l'etat initial de la physique ont disparu des appels à ces routines et sont
maintenant passés par le module phys_state_var_mod
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r959 r967  
    1010      INTEGER, PARAMETER :: nout=3
    1111      INTEGER, PARAMETER :: napisccp=1
     12      INTEGER, SAVE :: radpas
    1213      REAL, SAVE :: dtime, co2_ppm_etat0, solaire_etat0
     14!$OMP THREADPRIVATE(radpas)
     15!$OMP THREADPRIVATE(dtime, co2_ppm_etat0, solaire_etat0)
     16
    1317      REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:)
     18!$OMP THREADPRIVATE(rlat, rlon, pctsrf)
    1419      REAL, ALLOCATABLE, SAVE :: ftsol(:,:)
    15       character(len=6), SAVE :: ocean
    16       logical, SAVE :: ok_veget
     20!$OMP THREADPRIVATE(ftsol)
     21!      character(len=6), SAVE :: ocean
     22!!!!!!$OMP THREADPRIVATE(ocean)
     23!      logical, SAVE :: ok_veget
     24!!!!!!$OMP THREADPRIVATE(ok_veget)
    1725      REAL, ALLOCATABLE, SAVE :: falb1(:,:), falb2(:,:)
     26!$OMP THREADPRIVATE(falb1, falb2)
    1827      REAL, ALLOCATABLE, SAVE :: rain_fall(:), snow_fall(:)
     28!$OMP THREADPRIVATE( rain_fall, snow_fall)
    1929      REAL, ALLOCATABLE, SAVE :: solsw(:), sollw(:)
     30!$OMP THREADPRIVATE(solsw, sollw)
    2031      REAL, ALLOCATABLE, SAVE :: radsol(:)
     32!$OMP THREADPRIVATE(radsol)
     33
    2134!clesphy0 param physiq
    2235!
     
    2437!
    2538      REAL, ALLOCATABLE, SAVE :: zmea(:), zstd(:), zsig(:), zgam(:)
     39!$OMP THREADPRIVATE(zmea, zstd, zsig, zgam)
    2640      REAL, ALLOCATABLE, SAVE :: zthe(:), zpic(:), zval(:)
     41!$OMP THREADPRIVATE(zthe, zpic, zval)
    2742!     REAL tabcntr0(100)
    2843      REAL, ALLOCATABLE, SAVE :: rugoro(:)
     44!$OMP THREADPRIVATE(rugoro)
    2945      REAL, ALLOCATABLE, SAVE :: t_ancien(:,:), q_ancien(:,:)
     46!$OMP THREADPRIVATE(t_ancien, q_ancien)
    3047      LOGICAL, SAVE :: ancien_ok
     48!$OMP THREADPRIVATE(ancien_ok)
    3149      REAL, ALLOCATABLE, SAVE :: clwcon(:,:),rnebcon(:,:)
     50!$OMP THREADPRIVATE(clwcon,rnebcon)
    3251      REAL, ALLOCATABLE, SAVE :: ratqs(:,:)
     52!$OMP THREADPRIVATE(ratqs)
    3353      REAL, ALLOCATABLE, SAVE :: pbl_tke(:,:,:) ! turb kinetic energy
     54!$OMP THREADPRIVATE(pbl_tke)
    3455      REAL, ALLOCATABLE, SAVE :: zmax0(:), f0(:) !
     56!$OMP THREADPRIVATE(zmax0,f0)
    3557      REAL, ALLOCATABLE, SAVE :: ema_work1(:,:), ema_work2(:,:)
     58!$OMP THREADPRIVATE(ema_work1,ema_work2)
    3659      REAL, ALLOCATABLE, SAVE :: entr_therm(:,:), fm_therm(:,:)
     60!$OMP THREADPRIVATE(entr_therm,fm_therm)
    3761      REAL, ALLOCATABLE, SAVE :: detr_therm(:,:)
     62!$OMP THREADPRIVATE(detr_therm)
    3863!IM 150408
    3964!     pour phsystoke avec thermiques
    4065      REAL,ALLOCATABLE,SAVE :: clwcon0th(:,:),rnebcon0th(:,:)
     66!$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
    4167! radiation outputs
    4268      REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
     69!$OMP THREADPRIVATE(swdn0,swdn)
    4370      REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:)
     71!$OMP THREADPRIVATE(swup0,swup)
    4472      REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:)
     73!$OMP THREADPRIVATE(SWdn200clr,SWdn200)
    4574      REAL,ALLOCATABLE,SAVE :: SWup200clr(:), SWup200(:)
     75!$OMP THREADPRIVATE(SWup200clr,SWup200)
    4676      REAL,ALLOCATABLE,SAVE :: lwdn0(:,:), lwdn(:,:)
     77!$OMP THREADPRIVATE(lwdn0,lwdn)
    4778      REAL,ALLOCATABLE,SAVE :: lwup0(:,:), lwup(:,:)
     79!$OMP THREADPRIVATE(lwup0,lwup)
    4880      REAL,ALLOCATABLE,SAVE :: LWdn200clr(:), LWdn200(:)
     81!$OMP THREADPRIVATE(LWdn200clr,LWdn200)
    4982      REAL,ALLOCATABLE,SAVE :: LWup200clr(:), LWup200(:)
     83!$OMP THREADPRIVATE(LWup200clr,LWup200)
    5084      REAL,ALLOCATABLE,SAVE :: LWdnTOA(:), LWdnTOAclr(:)
     85!$OMP THREADPRIVATE(LWdnTOA,LWdnTOAclr)
    5186! pressure level
    5287      REAL,ALLOCATABLE,SAVE :: tsumSTD(:,:,:)
     88!$OMP THREADPRIVATE(tsumSTD)
    5389      REAL,ALLOCATABLE,SAVE :: usumSTD(:,:,:), vsumSTD(:,:,:)
     90!$OMP THREADPRIVATE(usumSTD,vsumSTD)
    5491      REAL,ALLOCATABLE,SAVE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
     92!$OMP THREADPRIVATE(wsumSTD,phisumSTD)
    5593      REAL,ALLOCATABLE,SAVE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
     94!$OMP THREADPRIVATE(qsumSTD,rhsumSTD)
    5695      REAL,ALLOCATABLE,SAVE :: tnondef(:,:,:)
     96!$OMP THREADPRIVATE(tnondef)
    5797      REAL,ALLOCATABLE,SAVE :: uvsumSTD(:,:,:)
     98!$OMP THREADPRIVATE(uvsumSTD)
    5899      REAL,ALLOCATABLE,SAVE :: vqsumSTD(:,:,:)
     100!$OMP THREADPRIVATE(vqsumSTD)
    59101      REAL,ALLOCATABLE,SAVE :: vTsumSTD(:,:,:)
     102!$OMP THREADPRIVATE(vTsumSTD)
    60103      REAL,ALLOCATABLE,SAVE :: wqsumSTD(:,:,:)
     104!$OMP THREADPRIVATE(wqsumSTD)
    61105      REAL,ALLOCATABLE,SAVE :: vphisumSTD(:,:,:)
     106!$OMP THREADPRIVATE(vphisumSTD)
    62107      REAL,ALLOCATABLE,SAVE :: wTsumSTD(:,:,:)
     108!$OMP THREADPRIVATE(wTsumSTD)
    63109      REAL,ALLOCATABLE,SAVE :: u2sumSTD(:,:,:)
     110!$OMP THREADPRIVATE(u2sumSTD)
    64111      REAL,ALLOCATABLE,SAVE :: v2sumSTD(:,:,:)
     112!$OMP THREADPRIVATE(v2sumSTD)
    65113      REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:)
     114!$OMP THREADPRIVATE(T2sumSTD)
    66115      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
     116!$OMP THREADPRIVATE(seed_old)
    67117      REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:)
     118!$OMP THREADPRIVATE(zuthe,zvthe)
    68119      REAL,ALLOCATABLE,SAVE :: alb_neig(:)
     120!$OMP THREADPRIVATE(alb_neig)
    69121!cloud base mass flux
    70122      REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:)
     123!$OMP THREADPRIVATE(ema_workcbmf,ema_cbmf)
    71124!cloud base pressure & cloud top pressure
    72125      REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:)
     126!$OMP THREADPRIVATE(ema_pcb,ema_pct)
    73127      REAL,ALLOCATABLE,SAVE :: Ma(:,:)        ! undilute upward mass flux
     128!$OMP THREADPRIVATE(Ma)
    74129      REAL,ALLOCATABLE,SAVE :: qcondc(:,:)    ! in-cld water content from convect
     130!$OMP THREADPRIVATE(qcondc)
    75131      REAL,ALLOCATABLE,SAVE :: wd(:) ! sb
     132!$OMP THREADPRIVATE(wd)
    76133      REAL,ALLOCATABLE,SAVE :: sigd(:)
     134!$OMP THREADPRIVATE(sigd)
    77135!
    78136      REAL,ALLOCATABLE,SAVE :: cin(:)
     137!$OMP THREADPRIVATE(cin)
    79138! ftd : differential heating between wake and environment
    80139      REAL,ALLOCATABLE,SAVE :: ftd(:,:)
     140!$OMP THREADPRIVATE(ftd)
    81141! fqd : differential moistening between wake and environment
    82142      REAL,ALLOCATABLE,SAVE :: fqd(:,:)     
     143!$OMP THREADPRIVATE(fqd)
    83144!34EK
    84145! -- Variables de controle de ALE et ALP
     
    86147!      convection d'Emanuel pour le declenchement et la regulation
    87148      REAL,ALLOCATABLE,SAVE :: ALE(:)
     149!$OMP THREADPRIVATE(ALE)
    88150!ALP : Puissance  disponible pour soulevement
    89151      REAL,ALLOCATABLE,SAVE :: ALP(:)
     152!$OMP THREADPRIVATE(ALP)
    90153!
    91154! nouvelles variables pour le couplage convection-couche limite
    92155      REAL,ALLOCATABLE,SAVE :: Ale_bl(:)
     156!$OMP THREADPRIVATE(Ale_bl)
    93157      REAL,ALLOCATABLE,SAVE :: Alp_bl(:)
     158!$OMP THREADPRIVATE(Alp_bl)
    94159      INTEGER,ALLOCATABLE,SAVE :: lalim_conv(:)
     160!$OMP THREADPRIVATE(lalim_conv)
    95161      REAL,ALLOCATABLE,SAVE :: wght_th(:,:)
     162!$OMP THREADPRIVATE(wght_th)
    96163!
    97164! variables de la wake
     
    103170! dt_wake, dq_wake: LS tendencies due to wake
    104171      REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:)
     172!$OMP THREADPRIVATE(wake_deltat)
    105173      REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:)
     174!$OMP THREADPRIVATE(wake_deltaq)
    106175      REAL,ALLOCATABLE,SAVE :: wake_Cstar(:)
     176!$OMP THREADPRIVATE(wake_Cstar)
    107177      REAL,ALLOCATABLE,SAVE :: wake_s(:)
     178!$OMP THREADPRIVATE(wake_s)
    108179      REAL,ALLOCATABLE,SAVE :: wake_fip(:)
     180!$OMP THREADPRIVATE(wake_fip)
    109181      REAL,ALLOCATABLE,SAVE :: dt_wake(:,:)
     182!$OMP THREADPRIVATE(dt_wake)
    110183      REAL,ALLOCATABLE,SAVE :: dq_wake(:,:)
     184!$OMP THREADPRIVATE(dq_wake)
    111185!
    112186! pfrac_impa : Produits des coefs lessivage impaction
     
    114188! pfrac_1nucl: Produits des coefs lessi nucl (alpha = 1)
    115189      REAL,ALLOCATABLE,SAVE :: pfrac_impa(:,:), pfrac_nucl(:,:)
     190!$OMP THREADPRIVATE(pfrac_impa,pfrac_nucl)
    116191      REAL,ALLOCATABLE,SAVE :: pfrac_1nucl(:,:)
     192!$OMP THREADPRIVATE(pfrac_1nucl)
    117193!
    118194      REAL,ALLOCATABLE,SAVE :: total_rain(:), nday_rain(:) 
     195!$OMP THREADPRIVATE(total_rain,nday_rain)
    119196      REAL,ALLOCATABLE,SAVE :: paire_ter(:)
     197!$OMP THREADPRIVATE(paire_ter)
    120198! albsol1: albedo du sol total pour SW visible
    121199! albsol2: albedo du sol total pour SW proche IR
    122200      REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:)
     201!$OMP THREADPRIVATE(albsol1,albsol2)
    123202      REAL,ALLOCATABLE,SAVE :: wo(:,:)
     203!$OMP THREADPRIVATE(wo)
    124204!
    125205! heat : chauffage solaire
     
    132212! toplwdownclr : downward CS LW flux at TOA
    133213      REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:)
     214!$OMP THREADPRIVATE(clwcon0,rnebcon0)
    134215      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
     216!$OMP THREADPRIVATE(heat)
    135217      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
     218!$OMP THREADPRIVATE(heat0)
    136219      REAL,ALLOCATABLE,SAVE :: cool(:,:)
     220!$OMP THREADPRIVATE(cool)
    137221      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
     222!$OMP THREADPRIVATE(cool0)
    138223      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
     224!$OMP THREADPRIVATE(topsw,toplw)
    139225      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
     226!$OMP THREADPRIVATE(sollwdown)
    140227      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
     228!$OMP THREADPRIVATE(sollwdownclr)
    141229      REAL,ALLOCATABLE,SAVE :: toplwdown(:)
     230!$OMP THREADPRIVATE(toplwdown)
    142231      REAL,ALLOCATABLE,SAVE :: toplwdownclr(:)
     232!$OMP THREADPRIVATE(toplwdownclr)
    143233      REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
     234!$OMP THREADPRIVATE(topsw0,toplw0,solsw0,sollw0)
    144235      REAL,ALLOCATABLE,SAVE :: albpla(:)
     236!$OMP THREADPRIVATE(albpla)
    145237! pbase : cloud base pressure
    146238! bbase : cloud base buoyancy
    147239      REAL,ALLOCATABLE,SAVE :: cape(:)
     240!$OMP THREADPRIVATE(cape)
    148241      REAL,ALLOCATABLE,SAVE :: pbase(:)
     242!$OMP THREADPRIVATE(pbase)
    149243      REAL,ALLOCATABLE,SAVE :: bbase(:)
     244!$OMP THREADPRIVATE(bbase)
    150245!
    151246      REAL,SAVE,ALLOCATABLE :: zqasc(:,:)
     247!$OMP THREADPRIVATE( zqasc)
    152248      INTEGER,ALLOCATABLE,SAVE :: ibas_con(:), itop_con(:)
     249!$OMP THREADPRIVATE(ibas_con,itop_con)
    153250      REAL,SAVE,ALLOCATABLE :: rain_con(:)
     251!$OMP THREADPRIVATE(rain_con)
    154252      REAL,SAVE,ALLOCATABLE :: snow_con(:)
     253!$OMP THREADPRIVATE(snow_con)
    155254!
    156255! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value)
    157256
    158257      REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :)
     258!$OMP THREADPRIVATE(sulfate_pi)
    159259      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
     260!$OMP THREADPRIVATE(rlonPOS)
    160261      REAL,SAVE,ALLOCATABLE :: newsst(:)
     262!$OMP THREADPRIVATE(newsst)
    161263      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:)
     264!$OMP THREADPRIVATE(u10m,v10m)
    162265!
    163266! ok_ade=T -ADE=topswad-topsw
     
    168271!topswad, solswad : Aerosol direct effect
    169272      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:)
     273!$OMP THREADPRIVATE(topswad,solswad)
    170274!topswai, solswai : Aerosol indirect effect
    171275      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:)
     276!$OMP THREADPRIVATE(topswai,solswai)
    172277      REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
     278!$OMP THREADPRIVATE(tau_ae,piz_ae)
    173279      REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
     280!$OMP THREADPRIVATE(cg_ae)
    174281
    175282! Les variables suivants uniquement pour un configuration avec INCA
    176283! topswad_inca, solswad_inca : Aerosol direct effect
    177284      REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:)
     285!$OMP THREADPRIVATE(topswad_inca,solswad_inca)
    178286! topswad0_inca, solswad0_inca : Aerosol direct effect
    179287      REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:)
     288!$OMP THREADPRIVATE(topswad0_inca,solswad0_inca)
    180289! topswai_inca, solswai_inca : Aerosol indirect effect
    181290      REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:)
     291!$OMP THREADPRIVATE(topswai_inca,solswai_inca)
    182292      REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
     293!$OMP THREADPRIVATE(topsw_inca,solsw_inca)
    183294      REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)
     295!$OMP THREADPRIVATE(topsw0_inca,solsw0_inca)
    184296      REAL,SAVE,ALLOCATABLE :: tau_inca(:,:,:,:)
     297!$OMP THREADPRIVATE(tau_inca)
    185298      REAL,SAVE,ALLOCATABLE :: piz_inca(:,:,:,:)
     299!$OMP THREADPRIVATE(piz_inca)
    186300      REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:)
     301!$OMP THREADPRIVATE(cg_inca)
    187302      REAL,SAVE,ALLOCATABLE :: ccm(:,:,:)
     303!$OMP THREADPRIVATE(ccm)
    188304
    189305CONTAINS
Note: See TracChangeset for help on using the changeset viewer.