Changeset 5056
- Timestamp:
- Jul 16, 2024, 11:45:07 AM (8 weeks ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90
r5050 r5056 14 14 REAL, SAVE, ALLOCATABLE :: ql_seri(:,:),qs_seri(:,:) 15 15 !$OMP THREADPRIVATE(ql_seri,qs_seri) 16 ! SN 15/07/2024 ISO 4D 17 REAL, SAVE, ALLOCATABLE :: qx_seri(:,:,:) 18 !$OMP THREADPRIVATE(qx_seri) 19 ! SN 16 20 REAL, SAVE, ALLOCATABLE :: qbs_seri(:,:) 17 21 !$OMP THREADPRIVATE(qbs_seri) … … 66 70 REAL, SAVE, ALLOCATABLE :: d_t_eva(:,:),d_q_eva(:,:),d_ql_eva(:,:),d_qi_eva(:,:) 67 71 !$OMP THREADPRIVATE(d_t_eva,d_q_eva,d_ql_eva,d_qi_eva) 72 ! SN 15/07/2024 ISO 4D 73 REAL, SAVE, ALLOCATABLE :: d_qx_eva(:,:,:) 74 !$OMP THREADPRIVATE(d_qx_eva) 75 ! SN 68 76 REAL, SAVE, ALLOCATABLE :: d_t_lscst(:,:),d_q_lscst(:,:) 69 77 !$OMP THREADPRIVATE(d_t_lscst,d_q_lscst) … … 119 127 REAL, SAVE, ALLOCATABLE :: d_q_ch4(:,:) 120 128 !$OMP THREADPRIVATE(d_q_ch4) 129 #ifdef ISO 130 REAL, SAVE, ALLOCATABLE :: xt_seri(:,:,:) 131 !$OMP THREADPRIVATE( xt_seri) 132 REAL, SAVE, ALLOCATABLE :: xtl_seri(:,:,:) 133 !$OMP THREADPRIVATE( xtl_seri) 134 REAL, SAVE, ALLOCATABLE :: xts_seri(:,:,:) 135 !$OMP THREADPRIVATE( xts_seri) 136 REAL, SAVE, ALLOCATABLE :: xtbs_seri(:,:,:) 137 !$OMP THREADPRIVATE( xtbs_seri) 138 REAL, SAVE, ALLOCATABLE :: d_xt_eva(:,:,:) 139 !$OMP THREADPRIVATE( d_xt_eva) 140 REAL, SAVE, ALLOCATABLE :: d_xtl_eva(:,:,:) 141 !$OMP THREADPRIVATE( d_xtl_eva) 142 REAL, SAVE, ALLOCATABLE :: d_xti_eva(:,:,:) 143 !$OMP THREADPRIVATE( d_xti_eva) 144 REAL, SAVE, ALLOCATABLE :: d_xt_vdf(:,:,:) 145 !$OMP THREADPRIVATE( d_xt_vdf) 146 REAL, SAVE, ALLOCATABLE :: d_xt_dyn(:,:,:) 147 !$OMP THREADPRIVATE( d_xt_dyn) 148 REAL, SAVE, ALLOCATABLE :: d_xtl_dyn(:,:,:), d_xts_dyn(:,:,:), d_xtbs_dyn(:,:,:) 149 !$OMP THREADPRIVATE(d_xtl_dyn, d_xts_dyn, d_xtbs_dyn) 150 REAL, SAVE, ALLOCATABLE :: d_xt_con(:,:,:) 151 !$OMP THREADPRIVATE( d_xt_con) 152 REAL, SAVE, ALLOCATABLE :: d_xt_wake(:,:,:) 153 !$OMP THREADPRIVATE( d_xt_wake) 154 REAL, SAVE, ALLOCATABLE :: d_xt_lsc(:,:,:),d_xtl_lsc(:,:,:),d_xti_lsc(:,:,:) 155 !$OMP THREADPRIVATE( d_xt_lsc,d_xtl_lsc,d_xti_lsc) 156 REAL, SAVE, ALLOCATABLE :: d_xt_ajsb(:,:,:) 157 !$OMP THREADPRIVATE( d_xt_ajsb) 158 REAL, SAVE, ALLOCATABLE :: d_xt_ajs(:,:,:) 159 !$OMP THREADPRIVATE( d_xt_ajs) 160 REAL, SAVE, ALLOCATABLE :: d_xt_ajs_w(:,:,:), d_xt_ajs_x(:,:,:) 161 !$OMP THREADPRIVATE(d_xt_ajs_w, d_xt_ajs_x) 162 REAL, SAVE, ALLOCATABLE :: d_xt_vdf_w(:,:,:), d_xt_vdf_x(:,:,:) 163 !$OMP THREADPRIVATE(d_xt_vdf_w, d_xt_vdf_x) 164 REAL, SAVE, ALLOCATABLE :: d_xt_ch4(:,:,:) 165 !$OMP THREADPRIVATE( d_xt_ch4) 166 REAL, SAVE, ALLOCATABLE :: d_xt_prod_nucl(:,:,:) 167 !$OMP THREADPRIVATE( d_xt_prod_nucl) 168 REAL, SAVE, ALLOCATABLE :: d_xt_cosmo(:,:,:) 169 !$OMP THREADPRIVATE( d_xt_cosmo) 170 REAL, SAVE, ALLOCATABLE :: d_xt_decroiss(:,:,:) 171 !$OMP THREADPRIVATE( d_xt_decroiss) 172 #endif 121 173 122 174 ! tendance du a la conersion Ec -> E thermique … … 306 358 !!!OMP THREADPRIVATE(d_s_the, d_dens_the) 307 359 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: d_deltat_ajs_cv, d_deltaq_ajs_cv 308 !$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv) 360 !$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv) 361 #ifdef ISO 362 REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:) :: d_deltaxt_wk 363 !$OMP THREADPRIVATE(d_deltaxt_wk) 364 REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:) :: d_deltaxt_wk_gw 365 !$OMP THREADPRIVATE(d_deltaxt_wk_gw) 366 REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:) :: d_deltaxt_the 367 !$OMP THREADPRIVATE(d_deltaxt_the) 368 REAL, SAVE, ALLOCATABLE,DIMENSION(:,:,:) :: d_deltaxt_vdf 369 !$OMP THREADPRIVATE(d_deltaxt_vdf) 370 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: d_deltaxt_ajs_cv 371 !$OMP THREADPRIVATE(d_deltaxt_ajs_cv) 372 #endif 309 373 !! End of Wake variables 310 374 !! … … 346 410 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxqsurf, rain_lsc, rain_num 347 411 !$OMP THREADPRIVATE(zxqsurf, rain_lsc, rain_num) 412 #ifdef ISO 413 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtevap,xtprw 414 !$OMP THREADPRIVATE(xtevap,xtprw) 415 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: h1_diag,runoff_diag 416 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrunoff_diag 417 !$OMP THREADPRIVATE(h1_diag,runoff_diag,xtrunoff_diag) 418 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxfxtcalving 419 !$OMP THREADPRIVATE(zxfxtcalving) 420 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtsnow_lsc, zxfxtfonte 421 !$OMP THREADPRIVATE(xtsnow_lsc, zxfxtfonte) 422 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zxxtrunofflic 423 !$OMP THREADPRIVATE(zxxtrunofflic) 424 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: xtrain_lsc 425 !$OMP THREADPRIVATE(xtrain_lsc) 426 #endif 348 427 ! 349 428 !jyg+nrlmd< … … 383 462 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: kh, kh_x, kh_w 384 463 !$OMP THREADPRIVATE(kh, kh_x, kh_w) 464 #ifdef ISO 465 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: dxtvdf_x, dxtvdf_w 466 !$OMP THREADPRIVATE(dxtvdf_x, dxtvdf_w) 467 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xt_therm 468 !$OMP THREADPRIVATE(xt_therm) 469 #endif 385 470 !!! 386 471 !!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc … … 445 530 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:):: sij 446 531 !$OMP THREADPRIVATE(sij) 532 #ifdef ISO 533 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtwdtrainA 534 !$OMP THREADPRIVATE(xtwdtrainA) 535 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtev 536 !$OMP THREADPRIVATE(xtev) 537 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xttaa 538 !$OMP THREADPRIVATE(xttaa) 539 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtclw 540 !$OMP THREADPRIVATE(xtclw) 541 #ifdef DIAGISO 542 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: qlp 543 !$OMP THREADPRIVATE(qlp) 544 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: qvp 545 !$OMP THREADPRIVATE(qvp) 546 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fq_detrainement 547 !$OMP THREADPRIVATE(fq_detrainement) 548 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fq_ddft 549 !$OMP THREADPRIVATE(fq_ddft) 550 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fq_fluxmasse 551 !$OMP THREADPRIVATE(fq_fluxmasse) 552 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fq_evapprecip 553 !$OMP THREADPRIVATE(fq_evapprecip) 554 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: f_detrainement 555 !$OMP THREADPRIVATE(f_detrainement) 556 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_detrainement 557 !$OMP THREADPRIVATE(q_detrainement) 558 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xt_detrainement 559 !$OMP THREADPRIVATE(xt_detrainement) 560 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtlp 561 !$OMP THREADPRIVATE(xtlp) 562 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtvp 563 !$OMP THREADPRIVATE(xtvp) 564 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: q_the 565 !$OMP THREADPRIVATE(q_the) 566 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xt_the 567 !$OMP THREADPRIVATE(xt_the) 568 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fxt_detrainement 569 !$OMP THREADPRIVATE(fxt_detrainement) 570 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fxt_ddft 571 !$OMP THREADPRIVATE(fxt_ddft) 572 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fxt_fluxmasse 573 !$OMP THREADPRIVATE(fxt_fluxmasse) 574 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fxt_evapprecip 575 !$OMP THREADPRIVATE(fxt_evapprecip) 576 #endif 577 #endif 447 578 ! 448 579 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th … … 492 623 !$OMP THREADPRIVATE(zxsnow,snowhgt,qsnow,to_ice) 493 624 !$OMP THREADPRIVATE(sissnow,runoff,albsol3_lic) 625 #ifdef ISO 626 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: zxxtsnow 627 !$OMP THREADPRIVATE(zxxtsnow) 628 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: xtVprecip,xtVprecipi 629 !$OMP THREADPRIVATE(xtVprecip,xtVprecipi) 630 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: pxtrfl, pxtsfl 631 !$OMP THREADPRIVATE(pxtrfl, pxtsfl) 632 #endif 494 633 495 634 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: p_tropopause, z_tropopause, t_tropopause … … 682 821 SUBROUTINE phys_local_var_init 683 822 USE dimphy 684 USE infotrac_phy, ONLY : nbtr 823 USE infotrac_phy, ONLY : nbtr,nqtot 824 #ifdef ISO 825 USE infotrac_phy, ONLY : ntraciso=>ntiso,niso 826 #endif 685 827 USE aero_mod 686 828 USE indice_sol_mod … … 693 835 IMPLICIT NONE 694 836 ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev), qbs_seri(klon,klev)) 837 ! SN 4D ISO 838 ALLOCATE(qx_seri(klon,klev,nqtot)) 839 ! SN 695 840 ALLOCATE(u_seri(klon,klev),v_seri(klon,klev)) 696 841 ALLOCATE(l_mixmin(klon,klev+1,nbsrf),l_mix(klon,klev+1,nbsrf),wprime(klon,klev+1,nbsrf)) … … 722 867 ALLOCATE(d_u_ajs(klon,klev),d_v_ajs(klon,klev)) 723 868 ALLOCATE(d_t_eva(klon,klev),d_q_eva(klon,klev)) 869 ! SN 4D ISO 870 ALLOCATE(d_qx_eva(klon,klev,nqtot)) 871 ! SN 724 872 ALLOCATE(d_ql_eva(klon,klev),d_qi_eva(klon,klev)) 725 873 ALLOCATE(d_t_lscst(klon,klev),d_q_lscst(klon,klev)) … … 731 879 ALLOCATE(d_t_vdf_w(klon,klev),d_q_vdf_w(klon,klev)) 732 880 ALLOCATE(d_t_vdf_x(klon,klev),d_q_vdf_x(klon,klev)) 881 #ifdef ISO 882 allocate(xt_seri(ntraciso,klon,klev)) 883 allocate(xtl_seri(ntraciso,klon,klev)) 884 allocate(xts_seri(ntraciso,klon,klev)) 885 allocate(xtbs_seri(ntraciso,klon,klev)) 886 allocate(d_xt_dyn(ntraciso,klon,klev)) 887 allocate(d_xtl_dyn(ntraciso,klon,klev)) 888 allocate(d_xts_dyn(ntraciso,klon,klev)) 889 allocate(d_xtbs_dyn(ntraciso,klon,klev)) 890 allocate(d_xt_con(ntraciso,klon,klev)) 891 allocate(d_xt_wake(ntraciso,klon,klev)) 892 allocate(d_xt_lsc(ntraciso,klon,klev)) 893 allocate(d_xtl_lsc(ntraciso,klon,klev)) 894 allocate(d_xti_lsc(ntraciso,klon,klev)) 895 allocate(d_xt_ajsb(ntraciso,klon,klev)) 896 allocate(d_xt_ajs(ntraciso,klon,klev)) 897 allocate(d_xt_ajs_w(ntraciso,klon,klev)) 898 allocate(d_xt_ajs_x(ntraciso,klon,klev)) 899 allocate(d_xt_eva(ntraciso,klon,klev)) 900 allocate(d_xtl_eva(ntraciso,klon,klev)) 901 allocate(d_xti_eva(ntraciso,klon,klev)) 902 allocate(d_xt_vdf(ntraciso,klon,klev)) 903 allocate(d_xt_vdf_w(ntraciso,klon,klev)) 904 allocate(d_xt_vdf_x(ntraciso,klon,klev)) 905 allocate(d_xt_ch4(ntraciso,klon,klev)) 906 allocate(d_xt_prod_nucl(ntraciso,klon,klev)) 907 allocate(d_xt_cosmo(ntraciso,klon,klev)) 908 allocate(d_xt_decroiss(ntraciso,klon,klev)) 909 #endif 733 910 734 911 ALLOCATE(d_u_vdf(klon,klev),d_v_vdf(klon,klev)) … … 849 1026 !! ALLOCATE( d_s_the(klon), d_dens_the(klon)) 850 1027 ALLOCATE(d_deltat_ajs_cv(klon, klev), d_deltaq_ajs_cv(klon, klev)) 1028 #ifdef ISO 1029 ALLOCATE(d_deltaxt_wk(ntraciso,klon, klev)) 1030 ALLOCATE(d_deltaxt_wk_gw(ntraciso,klon, klev)) 1031 ALLOCATE(d_deltaxt_the(ntraciso,klon, klev)) 1032 ALLOCATE(d_deltaxt_vdf(ntraciso,klon, klev)) 1033 ALLOCATE(d_deltaxt_ajs_cv(ntraciso,klon, klev)) 1034 #endif 851 1035 !! End of wake variables 852 1036 !! … … 877 1061 ALLOCATE(qlth(klon,klev), qith(klon,klev), qsith(klon,klev), wiceth(klon,klev)) 878 1062 ! 1063 #ifdef ISO 1064 ALLOCATE(xtevap(ntraciso,klon)) 1065 ALLOCATE(xtprw(ntraciso,klon)) 1066 ALLOCATE(zxfxtcalving(niso,klon)) 1067 ALLOCATE(xtsnow_lsc(ntraciso,klon), zxfxtfonte(niso,klon)) 1068 ALLOCATE(zxxtrunofflic(niso,klon)) 1069 ALLOCATE(xtrain_lsc(ntraciso,klon)) 1070 ALLOCATE(xtrunoff_diag(niso,klon)) 1071 ALLOCATE(h1_diag(klon),runoff_diag(klon)) 1072 !SN 1073 runoff_diag(:)=0. ; xtrunoff_diag(:,:)=0. ! because variables are only given values on knon grid points 1074 #endif 1075 ! 879 1076 ALLOCATE(sens_x(klon), sens_w(klon)) 880 1077 ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon)) … … 893 1090 ALLOCATE(cdragm_x(klon), cdragm_w(klon)) 894 1091 ALLOCATE(kh(klon), kh_x(klon), kh_w(klon)) 1092 #ifdef ISO 1093 ALLOCATE(dxtvdf_x(ntraciso,klon,klev), dxtvdf_w(ntraciso,klon,klev)) 1094 ALLOCATE(xt_therm(ntraciso,klon,klev)) 1095 #endif 895 1096 ! 896 1097 ALLOCATE(ptconv(klon,klev)) … … 948 1149 ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev)) 949 1150 ALLOCATE(sij(klon,klev,klev)) 1151 #ifdef ISO 1152 ALLOCATE(xtwdtrainA(ntraciso,klon,klev)) 1153 ALLOCATE(xtev(ntraciso,klon,klev) ) 1154 ALLOCATE(xttaa(ntraciso,klon,klev) ) 1155 ALLOCATE(xtclw(ntraciso,klon,klev) ) 1156 #ifdef DIAGISO 1157 ALLOCATE(qlp(klon,klev)) 1158 ALLOCATE(qvp(klon,klev)) 1159 ALLOCATE(fq_detrainement(klon,klev)) 1160 ALLOCATE(fq_ddft(klon,klev)) 1161 ALLOCATE(fq_fluxmasse(klon,klev)) 1162 ALLOCATE(fq_evapprecip(klon,klev)) 1163 ALLOCATE(f_detrainement(klon,klev), q_detrainement(klon,klev)) 1164 ALLOCATE(xtlp(ntraciso,klon,klev)) 1165 ALLOCATE(xtvp(ntraciso,klon,klev)) 1166 ALLOCATE(q_the(klon,klev), xt_the(ntraciso,klon,klev)) 1167 ALLOCATE(fxt_detrainement(ntraciso,klon,klev)) 1168 ALLOCATE(fxt_ddft(ntraciso,klon,klev)) 1169 ALLOCATE(fxt_fluxmasse(ntraciso,klon,klev)) 1170 ALLOCATE(fxt_evapprecip(ntraciso,klon,klev)) 1171 ALLOCATE(xt_detrainement(ntraciso,klon,klev)) 1172 #endif 1173 #endif 950 1174 951 1175 ALLOCATE(prfl(klon, klev+1)) … … 976 1200 ALLOCATE (zxsnow(klon),snowhgt(klon),qsnow(klon),to_ice(klon)) 977 1201 ALLOCATE (sissnow(klon),runoff(klon),albsol3_lic(klon)) 1202 #ifdef ISO 1203 ALLOCATE (zxxtsnow(niso,klon)) 1204 ALLOCATE(xtVprecip(ntraciso,klon, klev+1),xtVprecipi(ntraciso,klon, klev+1)) 1205 ALLOCATE(pxtsfl(ntraciso,klon, klev+1),pxtrfl(ntraciso,klon, klev+1)) 1206 #endif 978 1207 979 1208 ALLOCATE (p_tropopause(klon)) … … 1057 1286 IMPLICIT NONE 1058 1287 DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri, qbs_seri) 1288 ! SN 4D ISO 1289 DEALLOCATE(qx_seri) 1290 ! SN 1059 1291 DEALLOCATE(u_seri,v_seri) 1060 1292 DEALLOCATE(l_mixmin,l_mix,wprime) … … 1083 1315 DEALLOCATE(d_u_ajs,d_v_ajs) 1084 1316 DEALLOCATE(d_t_eva,d_q_eva) 1317 ! SN 4D ISO 1318 DEALLOCATE(d_qx_eva) 1319 ! SN 1085 1320 DEALLOCATE(d_ql_eva,d_qi_eva) 1086 1321 DEALLOCATE(d_t_lscst,d_q_lscst) … … 1090 1325 DEALLOCATE(d_qbs_vdf) 1091 1326 DEALLOCATE(d_t_bsss,d_q_bsss,d_qbs_bsss) 1327 #ifdef ISO 1328 deallocate(xt_seri,xtl_seri,xts_seri,xtbs_seri) 1329 DEALLOCATE(d_xtl_eva,d_xti_eva) 1330 deallocate(d_xt_dyn,d_xtl_dyn,d_xts_dyn,d_xtbs_dyn) 1331 deallocate(d_xt_con) 1332 deallocate(d_xt_wake) 1333 deallocate(d_xt_lsc) 1334 deallocate(d_xtl_lsc,d_xti_lsc) 1335 deallocate(d_xt_ajsb) 1336 deallocate(d_xt_ajs) 1337 deallocate(d_xt_ajs_w,d_xt_ajs_x) 1338 deallocate(d_xt_eva) 1339 deallocate(d_xtl_eva) 1340 deallocate(d_xti_eva) 1341 deallocate(d_xt_vdf) 1342 deallocate(d_xt_vdf_w,d_xt_vdf_x) 1343 deallocate(d_xt_ch4) 1344 deallocate(d_xt_prod_nucl) 1345 deallocate(d_xt_cosmo) 1346 deallocate(d_xt_decroiss) 1347 #endif 1348 1092 1349 DEALLOCATE(d_u_vdf,d_v_vdf) 1093 1350 DEALLOCATE(d_t_oli,d_t_oro) … … 1193 1450 !! DEALLOCATE( d_s_the, d_dens_the) 1194 1451 DEALLOCATE(d_deltat_ajs_cv, d_deltaq_ajs_cv) 1452 #ifdef ISO 1453 DEALLOCATE(d_deltaxt_wk) 1454 DEALLOCATE(d_deltaxt_wk_gw) 1455 DEALLOCATE(d_deltaxt_ajs_cv) 1456 DEALLOCATE(d_deltaxt_vdf) 1457 #endif 1195 1458 ! 1196 1459 DEALLOCATE(bils) … … 1232 1495 DEALLOCATE(cdragm_x, cdragm_w) 1233 1496 DEALLOCATE(kh, kh_x, kh_w) 1497 #ifdef ISO 1498 DEALLOCATE(xtevap,xtprw) 1499 DEALLOCATE(zxfxtcalving) 1500 DEALLOCATE(zxxtrunofflic) 1501 DEALLOCATE(xtsnow_lsc, zxfxtfonte) 1502 DEALLOCATE(xtrain_lsc) 1503 DEALLOCATE(dxtvdf_x, dxtvdf_w) 1504 DEALLOCATE(xt_therm) 1505 DEALLOCATE(h1_diag,runoff_diag,xtrunoff_diag) 1506 #endif 1234 1507 ! 1235 1508 DEALLOCATE(ptconv) … … 1281 1554 DEALLOCATE(epmlmMm, eplaMm) 1282 1555 DEALLOCATE(sij) 1556 #ifdef ISO 1557 DEALLOCATE(xtwdtrainA) 1558 DEALLOCATE(xttaa ) 1559 DEALLOCATE(xtclw ) 1560 DEALLOCATE(xtev ) 1561 #ifdef DIAGISO 1562 DEALLOCATE(qlp) 1563 DEALLOCATE(qvp) 1564 DEALLOCATE(fq_detrainement) 1565 DEALLOCATE(fq_ddft) 1566 DEALLOCATE(fq_fluxmasse) 1567 DEALLOCATE(fq_evapprecip) 1568 DEALLOCATE(f_detrainement,q_detrainement) 1569 DEALLOCATE(xtlp) 1570 DEALLOCATE(xtvp) 1571 DEALLOCATE(q_the,xt_the) 1572 DEALLOCATE(fxt_detrainement) 1573 DEALLOCATE(fxt_ddft) 1574 DEALLOCATE(fxt_fluxmasse) 1575 DEALLOCATE(fxt_evapprecip) 1576 DEALLOCATE(xt_detrainement) 1577 #endif 1578 #endif 1283 1579 1284 1580 … … 1303 1599 DEALLOCATE(distcltop) 1304 1600 DEALLOCATE(temp_cltop) 1601 #ifdef ISO 1602 DEALLOCATE (zxxtsnow,xtVprecip,xtVprecipi,pxtrfl,pxtsfl) 1603 #endif 1604 1305 1605 DEALLOCATE (p_tropopause) 1306 1606 DEALLOCATE (z_tropopause) -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r5039 r5056 2003 2003 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dtr_dry(:) 2004 2004 2005 #ifdef ISO 2006 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtprecip(:) 2007 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtevap(:) 2008 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtevap_srf(:,:) ! ajout Camille 8 mai 2023 2009 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtplul(:) 2010 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtpluc(:) 2011 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtovap(:) 2012 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtoliq(:) 2013 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtcond(:) 2014 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_xtrunoff_diag(:) 2015 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtdyn(:) 2016 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtldyn(:) 2017 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtvdf(:) 2018 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtcon(:) 2019 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtlsc(:) 2020 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxteva(:) 2021 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtajs(:) 2022 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtthe(:) 2023 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtch4(:) 2024 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtprod_nucl(:) 2025 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtcosmo(:) 2026 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dxtdecroiss(:) 2027 #endif 2028 2005 2029 TYPE(ctrl_out), SAVE :: o_rsu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2006 2030 'rsu', 'SW upward radiation', 'W m-2', (/ ('', i=1, 10) /)) … … 2086 2110 TYPE(ctrl_out), SAVE :: o_runoff = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2087 2111 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i=1, 10) /)) 2112 #ifdef ISO 2113 TYPE(ctrl_out), SAVE :: o_runoff_diag = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2114 'runoffland', 'Run-off rate land for bucket', 'kg/m2/s', (/ ('', i=1, 10) /)) 2115 #endif 2088 2116 TYPE(ctrl_out), SAVE :: o_albslw3 = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2089 2117 'albslw3', 'Surface albedo LW3', '-', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
r4998 r5056 35 35 USE iophy 36 36 USE dimphy 37 USE infotrac_phy, ONLY: nqtot, tracers, niso 37 USE infotrac_phy, ONLY: nqtot, tracers, niso, ntraciso=>ntiso 38 38 USE strings_mod, ONLY: maxlen 39 39 USE ioipsl … … 52 52 USE infotrac_phy, ONLY: nbtr_bin 53 53 #endif 54 54 #ifdef ISO 55 USE isotopes_mod, ONLY: isoName,iso_HTO 56 #ifdef ISOTRAC 57 use isotrac_mod, only: index_zone,index_iso,strtrac 58 #endif 59 #endif 60 55 61 IMPLICIT NONE 56 62 include "clesphys.h" … … 115 121 LOGICAL, DIMENSION(nfiles) :: phys_out_filestations 116 122 123 #ifdef ISO 124 CHARACTER(LEN=maxlen) :: outiso 125 CHARACTER(LEN=20) :: unit 126 #endif 117 127 CHARACTER(LEN=maxlen) :: tnam, lnam, dn 118 128 INTEGER :: flag(nfiles) … … 164 174 ALLOCATE(o_nd_mode(nbtr_bin),o_sulfmmr_mode(nbtr_bin)) 165 175 #endif 166 176 #ifdef ISO 177 ALLOCATE(o_xtprecip(ntraciso)) 178 ALLOCATE(o_xtplul(ntraciso)) 179 ALLOCATE(o_xtpluc(ntraciso)) 180 ALLOCATE(o_xtevap(ntraciso)) 181 ALLOCATE(o_xtevap_srf(ntraciso,4)) 182 ALLOCATE(o_xtovap(ntraciso)) 183 ALLOCATE(o_xtoliq(ntraciso)) 184 ALLOCATE(o_xtcond(ntraciso)) 185 ALLOCATE(o_xtrunoff_diag(ntraciso)) 186 ALLOCATE(o_dxtdyn(ntraciso)) 187 ALLOCATE(o_dxtldyn(ntraciso)) 188 ALLOCATE(o_dxtcon(ntraciso)) 189 ALLOCATE(o_dxtlsc(ntraciso)) 190 ALLOCATE(o_dxteva(ntraciso)) 191 ALLOCATE(o_dxtajs(ntraciso)) 192 ALLOCATE(o_dxtvdf(ntraciso)) 193 ALLOCATE(o_dxtthe(ntraciso)) 194 ALLOCATE(o_dxtch4(ntraciso)) 195 if (iso_HTO.gt.0) then 196 ALLOCATE(o_dxtprod_nucl(ntraciso)) 197 ALLOCATE(o_dxtcosmo(ntraciso)) 198 ALLOCATE(o_dxtdecroiss(ntraciso)) 199 endif 200 #endif 201 167 202 levmax = [klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev] 168 203 … … 524 559 ENDDO ! iff 525 560 526 ! Updated write frequencies due to phys_out_filetimesteps. 561 #ifdef ISO 562 write(*,*) 'phys_output_mid 589' 563 do ixt=1,ntraciso 564 outiso = TRIM(isoName(ixt)) 565 i = INDEX(outiso, '_', .TRUE.) 566 outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso)) 567 568 flag = [1, 1, 1, 10, 5, 10, 11, 11, 11, 11]; unit = 'kg/(s*m2)' 569 o_xtprecip(ixt)=ctrl_out(flag, 'precip'//TRIM(outiso), 'Precip Totale liq+sol', unit, [('',i=1,nfiles)]) 570 o_xtpluc (ixt)=ctrl_out(flag, 'pluc'//TRIM(outiso), 'Convective Precip.', unit, [('',i=1,nfiles)]) 571 572 flag = [1, 1, 1, 10, 10, 10, 11, 11, 11, 11] 573 o_xtplul (ixt)=ctrl_out(flag, 'plul'//TRIM(outiso), 'Large-scale Precip.', unit, [('',i=1,nfiles)]) 574 o_xtevap (ixt)=ctrl_out(flag, 'evap'//TRIM(outiso), 'Evaporat.', unit, [('',i=1,nfiles)]) 575 576 ! ajout Camille 8 mai 2023 577 flag = [1, 6, 10, 10, 10, 10, 11, 11, 11, 11] 578 o_xtevap_srf (ixt,1)=ctrl_out(flag, 'evap_ter'//TRIM(outiso), 'Evap sfc'//clnsurf(1), unit, [('',i=1,nfiles)]) 579 o_xtevap_srf (ixt,2)=ctrl_out(flag, 'evap_lic'//TRIM(outiso), 'Evap sfc'//clnsurf(2), unit, [('',i=1,nfiles)]) 580 o_xtevap_srf (ixt,3)=ctrl_out(flag, 'evap_oce'//TRIM(outiso), 'Evap sfc'//clnsurf(3), unit, [('',i=1,nfiles)]) 581 o_xtevap_srf (ixt,4)=ctrl_out(flag, 'evap_sic'//TRIM(outiso), 'Evap sfc'//clnsurf(4), unit, [('',i=1,nfiles)]) 582 583 flag = [2, 3, 4, 10, 10, 10, 11, 11, 11, 11]; unit = 'kg/kg' 584 o_xtovap (ixt)=ctrl_out(flag, 'ovap'//TRIM(outiso), 'Specific humidity', unit, [('',i=1,nfiles)]) 585 o_xtoliq (ixt)=ctrl_out(flag, 'oliq'//TRIM(outiso), 'Liquid water', unit, [('',i=1,nfiles)]) 586 o_xtcond (ixt)=ctrl_out(flag, 'ocond'//TRIM(outiso), 'Condensed water', unit, [('',i=1,nfiles)]) 587 588 flag = [1, 1, 1, 10, 5, 10, 11, 11, 11, 11]; unit = 'kg/m2/s' 589 o_xtrunoff_diag (ixt)=ctrl_out(flag, 'runoffland'//TRIM(outiso), 'Run-off rate land for bucket', unit, [('',i=1,nfiles)]) 590 591 flag = [4, 10, 10, 10, 10, 10, 11, 11, 11, 11]; unit = '(kg/kg)/s' 592 o_dxtdyn (ixt)=ctrl_out(flag, 'dqdyn'//TRIM(outiso), 'Dynamics dQ', unit, [('',i=1,nfiles)]) 593 o_dxtldyn (ixt)=ctrl_out(flag, 'dqldyn'//TRIM(outiso), 'Dynamics dQL', unit, [('',i=1,nfiles)]) 594 o_dxtcon (ixt)=ctrl_out(flag, 'dqcon'//TRIM(outiso), 'Convection dQ', unit, [('',i=1,nfiles)]) 595 o_dxteva (ixt)=ctrl_out(flag, 'dqeva'//TRIM(outiso), 'Reevaporation dQ', unit, [('',i=1,nfiles)]) 596 o_dxtlsc (ixt)=ctrl_out(flag, 'dqlsc'//TRIM(outiso), 'Condensation dQ', unit, [('',i=1,nfiles)]) 597 o_dxtajs (ixt)=ctrl_out(flag, 'dqajs'//TRIM(outiso), 'Dry adjust. dQ', unit, [('',i=1,nfiles)]) 598 o_dxtvdf (ixt)=ctrl_out(flag, 'dqvdf'//TRIM(outiso), 'Boundary-layer dQ', unit, [('',i=1,nfiles)]) 599 o_dxtthe (ixt)=ctrl_out(flag, 'dqthe'//TRIM(outiso), 'Thermal dQ', unit, [('',i=1,nfiles)]) 600 601 IF(ok_qch4) o_dxtch4(ixt)=ctrl_out(flag, 'dqch4'//TRIM(outiso), 'H2O due to CH4 oxidation & photolysis', & 602 unit, [('',i=1,nfiles)]) 603 IF(ixt == iso_HTO) THEN 604 o_dxtprod_nucl(ixt)=ctrl_out(flag, 'dqprodnucl'//TRIM(outiso), 'dHTO/dt due to nuclear production', & 605 unit, [('',i=1,nfiles)]) 606 o_dxtcosmo (ixt)=ctrl_out(flag, 'dqcosmo'//TRIM(outiso), 'dHTO/dt due to cosmogenic production', & 607 unit, [('',i=1,nfiles)]) 608 o_dxtdecroiss (ixt)=ctrl_out(flag, 'dqdecroiss'//TRIM(outiso), 'dHTO/dt due to radiative destruction', & 609 unit, [('',i=1,nfiles)]) 610 END IF 611 enddo !do ixt=1,niso 612 write(*,*) 'phys_output_mid 596' 613 #endif 614 615 ! Updated write frequencies due to phys_out_filetimesteps. 527 616 ! Write frequencies are now in seconds. 528 617 ecrit_mth = ecrit_files(1)
Note: See TracChangeset
for help on using the changeset viewer.