Changeset 3134 for LMDZ6/trunk/libf
- Timestamp:
- Dec 16, 2017, 11:57:23 AM (7 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90
r3124 r3134 392 392 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: t2m, fluxlat, fsollw,evap_pot 393 393 !$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot) 394 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd , dnwd0, upwd, omega395 !$OMP THREADPRIVATE(dnwd , dnwd0, upwd, omega)394 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd0, omega 395 !$OMP THREADPRIVATE(dnwd0, omega) 396 396 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: epmax_diag ! epmax_cape 397 397 !$OMP THREADPRIVATE(epmax_diag) 398 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ep ! epmax_cape 398 ! 399 ! Deep convective variables used in phytrac 400 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ep ! epmax_cape 399 401 !$OMP THREADPRIVATE(ep) 402 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd, upwd 403 !$OMP THREADPRIVATE(dnwd, upwd) 404 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmflxr, pmflxs 405 !$OMP THREADPRIVATE(pmflxr, pmflxs) 406 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wdtrainA, wdtrainM 407 !$OMP THREADPRIVATE(wdtrainA, wdtrainM) 408 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: da, mp 409 !$OMP THREADPRIVATE(da, mp) 410 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wght_cvfd 411 !$OMP THREADPRIVATE(wght_cvfd) 412 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: phi, phi2, elij, epmlmMm 413 !$OMP THREADPRIVATE(phi, phi2, elij, epmlmMm) 414 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: d1a, dam 415 !$OMP THREADPRIVATE(d1a, dam) 416 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ev 417 !$OMP THREADPRIVATE(ev) 418 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: clw 419 !$OMP THREADPRIVATE(clw) 420 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: eplaMm 421 !$OMP THREADPRIVATE(eplaMm) 422 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: sij 423 !$OMP THREADPRIVATE(sij) 424 ! 400 425 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th 401 426 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lambda_th … … 409 434 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zx_rh 410 435 !$OMP THREADPRIVATE(zx_rh) 411 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: p mflxr, pmflxs, prfl, psfl, fraca412 !$OMP THREADPRIVATE(p mflxr, pmflxs, prfl, psfl, fraca)436 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: prfl, psfl, fraca 437 !$OMP THREADPRIVATE(prfl, psfl, fraca) 413 438 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: Vprecip, zw2 414 439 !$OMP THREADPRIVATE(Vprecip, zw2) … … 423 448 424 449 ! ug et d'autres encore: 425 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wdtrainA, wdtrainM426 !$OMP THREADPRIVATE(wdtrainA, wdtrainM)427 450 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec 428 451 !$OMP THREADPRIVATE(beta_prec) … … 719 742 ALLOCATE(proba_notrig(klon), random_notrig(klon)) 720 743 721 ALLOCATE(dnwd (klon, klev), dnwd0(klon, klev))744 ALLOCATE(dnwd0(klon, klev)) 722 745 ! ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev)) 723 ALLOCATE( upwd(klon, klev),omega(klon, klev))746 ALLOCATE(omega(klon, klev)) 724 747 ALLOCATE(epmax_diag(klon)) ! epmax_cape 725 ALLOCATE(ep(klon,klev)) ! epmax_cape726 748 ! ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev)) 727 749 ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev)) … … 738 760 ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf)) 739 761 ALLOCATE(evap_pot(klon, nbsrf)) 740 741 ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1), prfl(klon, klev+1)) 762 ! 763 ! Deep convective variables used in phytrac 764 ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1)) 765 ALLOCATE(wdtrainA(klon,klev),wdtrainM(klon,klev)) 766 ALLOCATE(dnwd(klon, klev), upwd(klon, klev) ) 767 ALLOCATE(ep(klon,klev)) ! epmax_cape 768 ALLOCATE(da(klon,klev), mp(klon,klev) ) 769 ALLOCATE(phi(klon,klev,klev) ) 770 ALLOCATE(wght_cvfd(klon,klev) ) 771 ALLOCATE(phi2(klon,klev,klev) ) 772 ALLOCATE(d1a(klon,klev), dam(klon,klev)) 773 ALLOCATE(ev(klon,klev) ) 774 ALLOCATE(elij(klon,klev,klev) ) 775 ALLOCATE(clw(klon,klev) ) 776 ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev) ) 777 ALLOCATE(sij(klon,klev,klev) ) 778 779 ALLOCATE(prfl(klon, klev+1)) 742 780 ALLOCATE(psfl(klon, klev+1), fraca(klon, klev+1), Vprecip(klon, klev+1)) 743 781 ALLOCATE(zw2(klon, klev+1)) … … 752 790 753 791 ! ug et d'autres encore: 754 ALLOCATE(wdtrainA(klon,klev),wdtrainM(klon,klev))755 792 ALLOCATE(beta_prec(klon,klev)) 756 793 ALLOCATE(rneb(klon,klev),rnebjn(klon,klev),rneblsvol(klon,klev)) … … 996 1033 DEALLOCATE(proba_notrig, random_notrig) 997 1034 998 DEALLOCATE(dnwd , dnwd0)1035 DEALLOCATE(dnwd0) 999 1036 ! DEALLOCATE(upwd, omega, coefh) 1000 DEALLOCATE( upwd,omega)1037 DEALLOCATE(omega) 1001 1038 DEALLOCATE(epmax_diag) 1002 DEALLOCATE(ep)1003 1039 ! DEALLOCATE(coefm, lambda_th, cldemi) 1004 1040 DEALLOCATE(lambda_th, cldemi) … … 1015 1051 DEALLOCATE(wfevap,wfrain,wfsnow) 1016 1052 1017 DEALLOCATE(pmflxr, pmflxs, prfl) 1018 DEALLOCATE(psfl, fraca, Vprecip) 1053 DEALLOCATE(pmflxr, pmflxs) 1054 DEALLOCATE(wdtrainA, wdtrainM) 1055 DEALLOCATE(upwd, dnwd) 1056 DEALLOCATE(ep) 1057 DEALLOCATE(da, mp ) 1058 DEALLOCATE(phi ) 1059 DEALLOCATE(wght_cvfd ) 1060 DEALLOCATE(phi2 ) 1061 DEALLOCATE(d1a, dam) 1062 DEALLOCATE(ev ) 1063 DEALLOCATE(elij ) 1064 DEALLOCATE(clw ) 1065 DEALLOCATE(epmlmMm, eplaMm ) 1066 DEALLOCATE(sij ) 1067 1068 1069 DEALLOCATE(prfl, psfl, fraca, Vprecip) 1019 1070 DEALLOCATE(zw2) 1020 1071 … … 1027 1078 1028 1079 ! ug et d'autres encore: 1029 DEALLOCATE(wdtrainA, wdtrainM)1030 1080 DEALLOCATE(beta_prec) 1031 1081 DEALLOCATE(rneb) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3123 r3134 165 165 proba_notrig, random_notrig, & 166 166 ! 167 dnwd , dnwd0, &168 upwd,omega, &167 dnwd0, & 168 omega, & 169 169 epmax_diag, & 170 171 ! Deep convective variables used in phytrac 172 pmflxr, pmflxs, & 173 wdtrainA, wdtrainM, & 174 upwd, dnwd, & 170 175 ep, & 176 da, mp, & 177 phi, & 178 wght_cvfd, & 179 phi2, & 180 d1a, dam, & 181 ev, & 182 elij, & 183 clw, & 184 epmlmMm, eplaMm, & 185 sij, & 186 171 187 cldemi, & 172 188 cldfra, cldtau, fiwc, & … … 181 197 fsolsw, wfbils, wfbilo, & 182 198 wfevap, wfrain, wfsnow, & 183 pmflxr, pmflxs, prfl, & 184 psfl, fraca, Vprecip, & 199 prfl, psfl, fraca, Vprecip, & 185 200 zw2, & 186 201 … … 192 207 qwriteSTD, twriteSTD, rhwriteSTD, & !pour calcul_STDlev.h 193 208 194 wdtrainA, wdtrainM, &195 209 beta_prec, & 196 210 rneb, & … … 440 454 REAL dtadd(klon,klev) 441 455 442 ! Variables pour le transport convectif443 real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)444 real wght_cvfd(klon,klev)445 456 #ifndef CPP_XIOS 446 457 REAL, SAVE :: missing_val=nf90_fill_real 447 458 #endif 448 ! Variables pour le lessivage convectif 449 ! RomP >>> 450 real phi2(klon,klev,klev) 451 real d1a(klon,klev),dam(klon,klev) 452 real ev(klon,klev) 453 real clw(klon,klev),elij(klon,klev,klev) 454 real epmlmMm(klon,klev,klev),eplaMm(klon,klev) 455 ! RomP <<< 459 !! Variables moved to phys_local_var_mod 460 !! ! Variables pour le transport convectif 461 !! real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) 462 !! real wght_cvfd(klon,klev) 463 !! ! Variables pour le lessivage convectif 464 !! ! RomP >>> 465 !! real phi2(klon,klev,klev) 466 !! real d1a(klon,klev),dam(klon,klev) 467 !! real ev(klon,klev) 468 !! real clw(klon,klev),elij(klon,klev,klev) 469 !! real epmlmMm(klon,klev,klev),eplaMm(klon,klev) 470 !! ! RomP <<< 456 471 !IM definition dynamique o_trac dans phys_output_open 457 472 ! type(ctrl_out) :: o_trac(nqtot) … … 543 558 ! variables supplementaires de concvl 544 559 REAL Tconv(klon,klev) 545 REAL sij(klon,klev,klev) 560 !! variable moved to phys_local_var_mod 561 !! REAL sij(klon,klev,klev) 546 562 !! ! 547 563 !! ! variables pour tester la conservation de l'energie dans concvl … … 868 884 INTEGER :: flag_inhib_tend = 0 ! 0 is the default value 869 885 !! INTEGER :: flag_inhib_tend = 2 886 ! 887 ! Logical switch to a bug : reseting to 0 convective variables at the 888 ! begining of physiq. 889 LOGICAL, SAVE :: ok_bug_cv_trac = .TRUE. 890 !$OMP THREADPRIVATE(ok_bug_cv_trac) 870 891 871 892 ! … … 1249 1270 ! in rrtm/suphec.F90 (and rvtmp2 is set to 0). 1250 1271 CALL getin_p('ok_bad_ecmwf_thermo',ok_bad_ecmwf_thermo) 1272 CALL getin_p('ok_bug_cv_trac',ok_bug_cv_trac) 1251 1273 fl_ebil = 0 ! by default, conservation diagnostics are desactivated 1252 1274 CALL getin_p('fl_ebil',fl_ebil) … … 1886 1908 ENDDO 1887 1909 ENDDO 1888 da(:,:)=0.1889 mp(:,:)=0.1890 phi(:,:,:)=0.1891 ! RomP >>>1892 phi2(:,:,:)=0.1893 1910 beta_prec_fisrt(:,:)=0. 1894 1911 beta_prec(:,:)=0. 1895 epmlmMm(:,:,:)=0. 1896 eplaMm(:,:)=0. 1897 d1a(:,:)=0. 1898 dam(:,:)=0. 1899 pmflxr=0. 1900 pmflxs=0. 1901 ! RomP <<< 1912 ! 1913 ! Output variables from the convective scheme should not be set to 0 1914 ! since convection is not always called at every time step. 1915 IF (ok_bug_cv_trac) THEN 1916 da(:,:)=0. 1917 mp(:,:)=0. 1918 phi(:,:,:)=0. 1919 ! RomP >>> 1920 phi2(:,:,:)=0. 1921 epmlmMm(:,:,:)=0. 1922 eplaMm(:,:)=0. 1923 d1a(:,:)=0. 1924 dam(:,:)=0. 1925 pmflxr(:,:)=0. 1926 pmflxs(:,:)=0. 1927 ! RomP <<< 1928 ENDIF 1902 1929 1903 1930 ! … … 2462 2489 IF (MOD(itapcv,cvpas).EQ.0) THEN 2463 2490 2491 ! 2492 ! Mettre a zero des variables de sortie (pour securite) 2493 ! 2494 pmflxr(:,:) = 0. 2495 pmflxs(:,:) = 0. 2496 wdtrainA(:,:) = 0. 2497 wdtrainM(:,:) = 0. 2498 upwd(:,:) = 0. 2499 dnwd(:,:) = 0. 2500 ep(:,:) = 0. 2501 da(:,:)=0. 2502 mp(:,:)=0. 2503 wght_cvfd(:,:)=0. 2504 phi(:,:,:)=0. 2505 phi2(:,:,:)=0. 2506 epmlmMm(:,:,:)=0. 2507 eplaMm(:,:)=0. 2508 d1a(:,:)=0. 2509 dam(:,:)=0. 2510 elij(:,:,:)=0. 2511 ev(:,:)=0. 2512 clw(:,:)=0. 2513 sij(:,:,:)=0. 2514 ! 2464 2515 IF (iflag_con.EQ.1) THEN 2465 2516 abort_message ='reactiver le call conlmd dans physiq.F'
Note: See TracChangeset
for help on using the changeset viewer.