Changeset 1279 for LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
- Timestamp:
- Dec 10, 2009, 10:02:56 AM (14 years ago)
- Location:
- LMDZ4/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk
- Property svn:mergeinfo changed
/LMDZ4/branches/LMDZ4-dev merged: 1150-1162,1164-1193,1195-1231,1234-1235,1237-1240,1242-1274,1276
- Property svn:mergeinfo changed
-
LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
r1054 r1279 11 11 INTEGER, PARAMETER :: napisccp=1 12 12 INTEGER, SAVE :: radpas 13 REAL, SAVE :: dtime, co2_ppm_etat0,solaire_etat013 REAL, SAVE :: dtime, solaire_etat0 14 14 !$OMP THREADPRIVATE(radpas) 15 !$OMP THREADPRIVATE(dtime, co2_ppm_etat0,solaire_etat0)15 !$OMP THREADPRIVATE(dtime, solaire_etat0) 16 16 17 17 REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:) … … 202 202 REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:) 203 203 !$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 207 212 ! heat : chauffage solaire 208 213 ! heat0: chauffage solaire ciel clair … … 255 260 !$OMP THREADPRIVATE(snow_con) 256 261 ! 257 ! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value)258 259 REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :)260 !$OMP THREADPRIVATE(sulfate_pi)261 262 REAL,SAVE,ALLOCATABLE :: rlonPOS(:) 262 263 !$OMP THREADPRIVATE(rlonPOS) … … 269 270 ! ok_aie=T -> 270 271 ! ok_ade=T -AIE=topswai-topswad 271 ! 272 ! ok_ade=F -AIE=topswai-topsw 272 273 ! 273 274 !topswad, solswad : Aerosol direct effect … … 277 278 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) 278 279 !$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) 304 283 REAL,SAVE,ALLOCATABLE :: ccm(:,:,:) 305 284 !$OMP THREADPRIVATE(ccm) … … 308 287 309 288 !====================================================================== 310 SUBROUTINE phys_state_var_init 289 SUBROUTINE phys_state_var_init(read_climoz) 311 290 use dimphy 291 use aero_mod 312 292 IMPLICIT NONE 293 294 integer, 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 313 302 #include "indicesol.h" 314 303 #include "control.h" … … 388 377 ALLOCATE(paire_ter(klon)) 389 378 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 391 387 ALLOCATE(clwcon0(klon,klev),rnebcon0(klon,klev)) 392 388 ALLOCATE(heat(klon,klev), heat0(klon,klev)) … … 402 398 ALLOCATE(ibas_con(klon), itop_con(klon)) 403 399 ALLOCATE(rain_con(klon), snow_con(klon)) 404 !405 ALLOCATE(sulfate_pi(klon, klev))406 400 ALLOCATE(rlonPOS(klon)) 407 401 ALLOCATE(newsst(klon)) … … 409 403 ALLOCATE(topswad(klon), solswad(klon)) 410 404 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)) 427 407 428 408 END SUBROUTINE phys_state_var_init … … 505 485 deallocate(ibas_con, itop_con) 506 486 deallocate(rain_con, snow_con) 507 !508 deallocate(sulfate_pi)509 487 deallocate(rlonPOS) 510 488 deallocate(newsst) … … 512 490 deallocate(topswad, solswad) 513 491 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) 528 493 deallocate(ccm) 529 494
Note: See TracChangeset
for help on using the changeset viewer.