Changeset 4982 for LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90
- Timestamp:
- Jun 15, 2024, 5:17:08 PM (11 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90
r4920 r4982 14 14 REAL, SAVE, ALLOCATABLE :: ql_seri(:,:),qs_seri(:,:) 15 15 !$OMP THREADPRIVATE(ql_seri,qs_seri) 16 REAL, SAVE, ALLOCATABLE :: qx_seri(:,:,:) 17 !$OMP THREADPRIVATE(qx_seri) 16 18 REAL, SAVE, ALLOCATABLE :: qbs_seri(:,:) 17 19 !$OMP THREADPRIVATE(qbs_seri) … … 64 66 REAL, SAVE, ALLOCATABLE :: d_t_eva(:,:),d_q_eva(:,:),d_ql_eva(:,:),d_qi_eva(:,:) 65 67 !$OMP THREADPRIVATE(d_t_eva,d_q_eva,d_ql_eva,d_qi_eva) 68 REAL, SAVE, ALLOCATABLE :: d_qx_eva(:,:,:) 69 !$OMP THREADPRIVATE(d_qx_eva) 66 70 REAL, SAVE, ALLOCATABLE :: d_t_lscst(:,:),d_q_lscst(:,:) 67 71 !$OMP THREADPRIVATE(d_t_lscst,d_q_lscst) … … 124 128 REAL, SAVE, ALLOCATABLE :: xts_seri(:,:,:) 125 129 !$OMP THREADPRIVATE( xts_seri) 130 REAL, SAVE, ALLOCATABLE :: xtbs_seri(:,:,:) 131 !$OMP THREADPRIVATE( xtbs_seri) 126 132 REAL, SAVE, ALLOCATABLE :: d_xt_eva(:,:,:) 127 133 !$OMP THREADPRIVATE( d_xt_eva) … … 134 140 REAL, SAVE, ALLOCATABLE :: d_xt_dyn(:,:,:) 135 141 !$OMP THREADPRIVATE( d_xt_dyn) 136 REAL, SAVE, ALLOCATABLE :: d_xtl_dyn(:,:,:), d_xts_dyn(:,:,:) 137 !$OMP THREADPRIVATE(d_xtl_dyn, d_xts_dyn )142 REAL, SAVE, ALLOCATABLE :: d_xtl_dyn(:,:,:), d_xts_dyn(:,:,:), d_xtbs_dyn(:,:,:) 143 !$OMP THREADPRIVATE(d_xtl_dyn, d_xts_dyn, d_xtbs_dyn) 138 144 REAL, SAVE, ALLOCATABLE :: d_xt_con(:,:,:) 139 145 !$OMP THREADPRIVATE( d_xt_con) … … 292 298 !$OMP THREADPRIVATE(toplwad0_aerop, sollwad0_aerop) 293 299 300 !AI 08 2023 ajout pour Ecrad 301 REAL,ALLOCATABLE,SAVE :: topswad_aero_s2(:), solswad_aero_s2(:) 302 !$OMP THREADPRIVATE(topswad_aero_s2, solswad_aero_s2) 303 REAL,ALLOCATABLE,SAVE :: topswai_aero_s2(:), solswai_aero_s2(:) 304 !$OMP THREADPRIVATE(topswai_aero_s2, solswai_aero_s2) 305 REAL,ALLOCATABLE,SAVE :: topswad0_aero_s2(:), solswad0_aero_s2(:) 306 !$OMP THREADPRIVATE(topswad0_aero_s2, solswad0_aero_s2) 307 REAL,ALLOCATABLE,SAVE :: topsw_aero_s2(:,:), topsw0_aero_s2(:,:) 308 !$OMP THREADPRIVATE(topsw_aero_s2, topsw0_aero_s2) 309 REAL,ALLOCATABLE,SAVE :: solsw_aero_s2(:,:), solsw0_aero_s2(:,:) 310 !$OMP THREADPRIVATE(solsw_aero_s2, solsw0_aero_s2) 311 REAL,ALLOCATABLE,SAVE :: topswcf_aero_s2(:,:), solswcf_aero_s2(:,:) 312 !$OMP THREADPRIVATE(topswcf_aero_s2, solswcf_aero_s2) 313 ! additional LW variables CK 314 REAL,ALLOCATABLE,SAVE :: toplwad_aero_s2(:), sollwad_aero_s2(:) 315 !$OMP THREADPRIVATE(toplwad_aero_s2, sollwad_aero_s2) 316 REAL,ALLOCATABLE,SAVE :: toplwai_aero_s2(:), sollwai_aero_s2(:) 317 !$OMP THREADPRIVATE(toplwai_aero_s2, sollwai_aero_s2) 318 REAL,ALLOCATABLE,SAVE :: toplwad0_aero_s2(:), sollwad0_aero_s2(:) 319 !$OMP THREADPRIVATE(toplwad0_aero_s2, sollwad0_aero_s2) 320 294 321 !Ajout de celles n??cessaires au phys_output_write_mod 295 322 REAL, SAVE, ALLOCATABLE :: tal1(:), pal1(:), pab1(:), pab2(:) … … 300 327 !$OMP THREADPRIVATE(sens, flwp, fiwp) 301 328 !! 302 !FC 329 !FC 303 330 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxfluxt, zxfluxq 304 331 !$OMP THREADPRIVATE(zxfluxt, zxfluxq) … … 348 375 !$OMP THREADPRIVATE(cdragm, cdragh) 349 376 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m 350 !$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m 377 !$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m) 351 378 !AS: cldhjn, cldljn, cldmjn,cldtjn pas utilisés en tant que variables, juste noms de diagnostics 352 379 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt … … 573 600 !$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD, rhwriteSTD) 574 601 602 575 603 ! ug et d'autres encore: 576 604 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec … … 580 608 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: pfraclr,pfracld 581 609 !$OMP THREADPRIVATE(pfraclr,pfracld) 582 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: distcltop583 !$OMP THREADPRIVATE(distcltop)584 REAL, SAVE, ALLOCATABLE :: temp_cltop(:,:)585 !$OMP THREADPRIVATE(temp_cltop)586 610 587 611 ! variables de sorties MM … … 645 669 REAL, SAVE, ALLOCATABLE :: fcontrP(:,:) 646 670 !$OMP THREADPRIVATE(fcontrP) 671 REAL, SAVE, ALLOCATABLE :: distcltop(:,:) 672 !$OMP THREADPRIVATE(distcltop) 673 REAL, SAVE, ALLOCATABLE :: temp_cltop(:,:) 674 !$OMP THREADPRIVATE(temp_cltop) 675 647 676 648 677 !--POPRECIP variables … … 675 704 676 705 677 706 678 707 679 708 … … 681 710 ! 682 711 ! variables for stratospheric aerosol 712 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: d_q_emiss 713 !$OMP THREADPRIVATE(d_q_emiss) 683 714 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: R2SO4 684 715 !$OMP THREADPRIVATE(R2SO4) … … 695 726 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_lifetime 696 727 !$OMP THREADPRIVATE(SO2_lifetime) 728 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: H2SO4_lifetime 729 !$OMP THREADPRIVATE(H2SO4_lifetime) 730 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: O3_clim 731 !$OMP THREADPRIVATE(O3_clim) 697 732 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: alpha_bin 698 733 !$OMP THREADPRIVATE(alpha_bin) … … 759 794 SUBROUTINE phys_local_var_init 760 795 USE dimphy 761 USE infotrac_phy, ONLY : nbtr 796 USE infotrac_phy, ONLY : nbtr,nqtot 762 797 #ifdef ISO 763 798 USE infotrac_phy, ONLY : ntraciso=>ntiso,niso … … 770 805 IMPLICIT NONE 771 806 ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev), qbs_seri(klon,klev)) 807 ALLOCATE(qx_seri(klon,klev,nqtot)) 772 808 ALLOCATE(u_seri(klon,klev),v_seri(klon,klev)) 773 809 ALLOCATE(l_mixmin(klon,klev+1,nbsrf),l_mix(klon,klev+1,nbsrf),wprime(klon,klev+1,nbsrf)) 810 ALLOCATE(pbl_eps(klon,klev+1,nbsrf+1)) 811 pbl_eps(:,:,:)=0. 774 812 l_mix(:,:,:)=0.;l_mixmin(:,:,:)=0.;wprime(:,:,:)=0. ! doit etre initialse car pas toujours remplis 775 ALLOCATE( pbl_eps(klon,klev+1,nbsrf+1))813 ALLOCATE(rhcl(klon,klev)) 776 814 ALLOCATE(tr_seri(klon,klev,nbtr)) 777 815 ALLOCATE(d_t_dyn(klon,klev),d_q_dyn(klon,klev)) … … 795 833 ALLOCATE(d_u_ajs(klon,klev),d_v_ajs(klon,klev)) 796 834 ALLOCATE(d_t_eva(klon,klev),d_q_eva(klon,klev)) 835 ALLOCATE(d_qx_eva(klon,klev,nqtot)) 797 836 ALLOCATE(d_ql_eva(klon,klev),d_qi_eva(klon,klev)) 798 837 ALLOCATE(d_t_lscst(klon,klev),d_q_lscst(klon,klev)) … … 808 847 allocate(xtl_seri(ntraciso,klon,klev)) 809 848 allocate(xts_seri(ntraciso,klon,klev)) 849 allocate(xtbs_seri(ntraciso,klon,klev)) 810 850 allocate(d_xt_dyn(ntraciso,klon,klev)) 811 851 allocate(d_xtl_dyn(ntraciso,klon,klev)) 812 852 allocate(d_xts_dyn(ntraciso,klon,klev)) 853 allocate(d_xtbs_dyn(ntraciso,klon,klev)) 813 854 allocate(d_xt_con(ntraciso,klon,klev)) 814 855 allocate(d_xt_wake(ntraciso,klon,klev)) … … 841 882 ALLOCATE(d_u_lif(klon,klev),d_v_lif(klon,klev)) 842 883 ALLOCATE(d_ts(klon,nbsrf), d_tr(klon,klev,nbtr)) 884 885 ! aerosols 886 ALLOCATE(m_allaer(klon,klev,naero_tot)) 843 887 ! Special RRTM 844 888 ALLOCATE(ZLWFT0_i(klon,klev+1),ZSWFT0_i(klon,klev+1),ZFLDN0(klon,klev+1)) … … 919 963 ALLOCATE(toplwad0_aerop(klon), sollwad0_aerop(klon)) 920 964 965 !AI Ajout Ecrad (3Deffect) 966 ALLOCATE(topswad_aero_s2(klon), solswad_aero_s2(klon)) 967 ALLOCATE(topswai_aero_s2(klon), solswai_aero_s2(klon)) 968 ALLOCATE(topswad0_aero_s2(klon), solswad0_aero_s2(klon)) 969 ALLOCATE(topsw_aero_s2(klon,naero_grp), topsw0_aero_s2(klon,naero_grp)) 970 ALLOCATE(solsw_aero_s2(klon,naero_grp), solsw0_aero_s2(klon,naero_grp)) 971 ALLOCATE(topswcf_aero_s2(klon,naero_grp), solswcf_aero_s2(klon,naero_grp)) 972 ! additional LW variables CK 973 ALLOCATE(toplwad_aero_s2(klon), sollwad_aero_s2(klon)) 974 ALLOCATE(toplwai_aero_s2(klon), sollwai_aero_s2(klon)) 975 ALLOCATE(toplwad0_aero_s2(klon), sollwad0_aero_s2(klon)) 976 921 977 ! FH Ajout de celles necessaires au phys_output_write_mod 922 978 … … 1038 1094 ALLOCATE(wfevap(klon, nbsrf)) 1039 1095 ALLOCATE(evap_pot(klon, nbsrf)) 1040 ! FC 1096 ! FC 1041 1097 ALLOCATE(zxfluxq(klon,klev),zxfluxt(klon,klev)) 1042 1098 ! … … 1045 1101 ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1)) 1046 1102 ALLOCATE(wdtrainA(klon,klev),wdtrainS(klon,klev),wdtrainM(klon,klev)) 1047 ALLOCATE(dnwd(klon, klev), upwd(klon, klev) 1103 ALLOCATE(dnwd(klon, klev), upwd(klon, klev)) 1048 1104 ALLOCATE(ep(klon,klev)) ! epmax_cape 1049 ALLOCATE(da(klon,klev), mp(klon,klev) 1050 ALLOCATE(phi(klon,klev,klev) 1051 ALLOCATE(wght_cvfd(klon,klev) 1052 ALLOCATE(phi2(klon,klev,klev) 1105 ALLOCATE(da(klon,klev), mp(klon,klev)) 1106 ALLOCATE(phi(klon,klev,klev)) 1107 ALLOCATE(wght_cvfd(klon,klev)) 1108 ALLOCATE(phi2(klon,klev,klev)) 1053 1109 ALLOCATE(d1a(klon,klev), dam(klon,klev)) 1054 ALLOCATE(ev(klon,klev) 1055 ALLOCATE(elij(klon,klev,klev) 1056 ALLOCATE(qtaa(klon,klev) 1057 ALLOCATE(clw(klon,klev) 1058 ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev) 1059 ALLOCATE(sij(klon,klev,klev) 1110 ALLOCATE(ev(klon,klev)) 1111 ALLOCATE(elij(klon,klev,klev)) 1112 ALLOCATE(qtaa(klon,klev)) 1113 ALLOCATE(clw(klon,klev)) 1114 ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev)) 1115 ALLOCATE(sij(klon,klev,klev)) 1060 1116 #ifdef ISO 1061 1117 ALLOCATE(xtwdtrainA(ntraciso,klon,klev)) … … 1128 1184 1129 1185 !--POPRECIP variables 1130 ALLOCATE( dqreva(klon,klev),dqssub(klon,klev))1131 ALLOCATE( qraindiag(klon,klev), qsnowdiag(klon,klev))1186 ALLOCATE(qraindiag(klon,klev), qsnowdiag(klon,klev)) 1187 ALLOCATE(dqreva(klon,klev), dqssub(klon,klev)) 1132 1188 ALLOCATE(dqrauto(klon,klev), dqrcol(klon,klev), dqrmelt(klon,klev), dqrfreez(klon,klev)) 1133 1189 ALLOCATE(dqsauto(klon,klev), dqsagg(klon,klev), dqsrim(klon,klev), dqsmelt(klon,klev), dqsfreez(klon,klev)) 1134 1190 1135 1191 #ifdef CPP_StratAer 1192 ALLOCATE (d_q_emiss(klon,klev)) 1136 1193 ALLOCATE (R2SO4(klon,klev)) 1137 1194 ALLOCATE (DENSO4(klon,klev)) … … 1147 1204 ALLOCATE (OCS_lifetime(klon,klev)) 1148 1205 ALLOCATE (SO2_lifetime(klon,klev)) 1206 ALLOCATE (H2SO4_lifetime(klon,klev)) 1207 ALLOCATE (O3_clim(klon,klev)) 1149 1208 ALLOCATE (alpha_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr)) 1150 1209 ALLOCATE (piz_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr)) … … 1180 1239 USE indice_sol_mod 1181 1240 IMPLICIT NONE 1182 DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri, qbs_seri )1241 DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri, qbs_seri,qx_seri) 1183 1242 DEALLOCATE(u_seri,v_seri) 1184 1243 DEALLOCATE(l_mixmin,l_mix,wprime) 1185 1244 DEALLOCATE(pbl_eps) 1186 1245 DEALLOCATE(rhcl) 1187 1246 DEALLOCATE(tr_seri) 1188 1247 DEALLOCATE(d_t_dyn,d_q_dyn) … … 1206 1265 DEALLOCATE(d_u_ajs,d_v_ajs) 1207 1266 DEALLOCATE(d_t_eva,d_q_eva) 1267 DEALLOCATE(d_qx_eva) 1208 1268 DEALLOCATE(d_ql_eva,d_qi_eva) 1209 1269 DEALLOCATE(d_t_lscst,d_q_lscst) … … 1214 1274 DEALLOCATE(d_t_bs,d_q_bs,d_qbs_bs) 1215 1275 #ifdef ISO 1216 deallocate(xt_seri,xtl_seri,xts_seri )1276 deallocate(xt_seri,xtl_seri,xts_seri,xtbs_seri) 1217 1277 DEALLOCATE(d_xtl_eva,d_xti_eva) 1218 deallocate(d_xt_dyn,d_xtl_dyn,d_xts_dyn )1278 deallocate(d_xt_dyn,d_xtl_dyn,d_xts_dyn,d_xtbs_dyn) 1219 1279 deallocate(d_xt_con) 1220 1280 deallocate(d_xt_wake) … … 1306 1366 DEALLOCATE(solsw_aerop, solsw0_aerop) 1307 1367 DEALLOCATE(topswcf_aerop, solswcf_aerop) 1308 1368 !AI Aerosols 1369 DEALLOCATE(m_allaer) 1309 1370 !CK LW diagnostics 1310 1371 DEALLOCATE(toplwad_aerop, sollwad_aerop) 1311 1372 DEALLOCATE(toplwai_aerop, sollwai_aerop) 1312 1373 DEALLOCATE(toplwad0_aerop, sollwad0_aerop) 1374 1375 !AI Ajout pour Ecrad (3Deffect) 1376 DEALLOCATE(topswad_aero_s2, solswad_aero_s2) 1377 DEALLOCATE(topswai_aero_s2, solswai_aero_s2) 1378 DEALLOCATE(topswad0_aero_s2, solswad0_aero_s2) 1379 DEALLOCATE(topsw_aero_s2, topsw0_aero_s2) 1380 DEALLOCATE(solsw_aero_s2, solsw0_aero_s2) 1381 DEALLOCATE(topswcf_aero_s2, solswcf_aero_s2) 1382 !CK LW diagnostics 1383 DEALLOCATE(toplwad_aero_s2, sollwad_aero_s2) 1384 DEALLOCATE(toplwai_aero_s2, sollwai_aero_s2) 1385 DEALLOCATE(toplwad0_aero_s2, sollwad0_aero_s2) 1313 1386 1314 1387 ! FH Ajout de celles necessaires au phys_output_write_mod … … 1352 1425 DEALLOCATE(zxfqcalving, zxfluxlat) 1353 1426 DEALLOCATE(zxrunofflic) 1354 DEALLOCATE(zxustartlic, zxrhoslic )1427 DEALLOCATE(zxustartlic, zxrhoslic, zxqsaltlic) 1355 1428 DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf) 1356 1429 DEALLOCATE(rain_lsc) … … 1420 1493 DEALLOCATE(upwd, dnwd) 1421 1494 DEALLOCATE(ep) 1422 DEALLOCATE(da, mp 1423 DEALLOCATE(phi 1424 DEALLOCATE(wght_cvfd 1425 DEALLOCATE(phi2 1495 DEALLOCATE(da, mp) 1496 DEALLOCATE(phi) 1497 DEALLOCATE(wght_cvfd) 1498 DEALLOCATE(phi2) 1426 1499 DEALLOCATE(d1a, dam) 1427 DEALLOCATE(ev 1428 DEALLOCATE(elij 1429 DEALLOCATE(qtaa 1430 DEALLOCATE(clw 1431 DEALLOCATE(epmlmMm, eplaMm 1432 DEALLOCATE(sij 1500 DEALLOCATE(ev) 1501 DEALLOCATE(elij) 1502 DEALLOCATE(qtaa) 1503 DEALLOCATE(clw) 1504 DEALLOCATE(epmlmMm, eplaMm) 1505 DEALLOCATE(sij) 1433 1506 #ifdef ISO 1434 1507 DEALLOCATE(xtwdtrainA) … … 1470 1543 DEALLOCATE(rneb) 1471 1544 DEALLOCATE(pfraclr,pfracld) 1545 DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic) 1472 1546 DEALLOCATE(distcltop) 1473 1547 DEALLOCATE(temp_cltop) 1474 DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic)1475 1548 #ifdef ISO 1476 1549 DEALLOCATE (zxxtsnow,xtVprecip,xtVprecipi,pxtrfl,pxtsfl) … … 1493 1566 1494 1567 !--POPRECIP variables 1495 DEALLOCATE(qraindiag, qsnowdiag) 1496 DEALLOCATE(dqreva, dqssub)1497 DEALLOCATE(dqrauto, dqrcol,dqrmelt,dqrfreez)1498 DEALLOCATE(dqsauto, dqsagg,dqsrim,dqsmelt,dqsfreez)1568 DEALLOCATE(qraindiag, qsnowdiag) 1569 DEALLOCATE(dqreva, dqssub) 1570 DEALLOCATE(dqrauto, dqrcol, dqrmelt, dqrfreez) 1571 DEALLOCATE(dqsauto, dqsagg, dqsrim, dqsmelt, dqsfreez) 1499 1572 1500 1573 #ifdef CPP_StratAer 1501 1574 ! variables for strat. aerosol CK 1575 DEALLOCATE (d_q_emiss) 1502 1576 DEALLOCATE (R2SO4) 1503 1577 DEALLOCATE (DENSO4) … … 1507 1581 DEALLOCATE (SO2_lifetime) 1508 1582 DEALLOCATE (OCS_lifetime) 1583 DEALLOCATE (H2SO4_lifetime) 1584 DEALLOCATE (O3_clim) 1509 1585 DEALLOCATE (alpha_bin) 1510 1586 DEALLOCATE (piz_bin)
Note: See TracChangeset
for help on using the changeset viewer.