Changeset 3496 for LMDZ6/trunk/libf/phylmd/cva_driver.F90
- Timestamp:
- May 10, 2019, 12:17:35 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/cva_driver.F90
r3435 r3496 25 25 !! elij1,evap1,ep1,epmlmMm1,eplaMm1, & ! RomP 26 26 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL 27 clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &! RomP, RL28 wdtrainA1, wdtrain M1, qtc1, sigt1, tau_cld_cv, &27 qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP, RL 28 wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, tau_cld_cv, & !!jygprl 29 29 coefw_cld_cv, & ! RomP, AJ 30 30 epmax_diag1) ! epmax_cape … … 124 124 ! of dimension ND, defined at same grid levels as T, Q, QS and P. 125 125 126 ! wdtrainA1 Real Output precipitation detrained from adiabatic draught; 126 ! wdtrainA1 Real Output precipitation ejected from adiabatic draught; 127 ! should be used in tracer transport (cvltr) 128 ! wdtrainS1 Real Output precipitation detrained from shedding of adiabatic draught; 127 129 ! used in tracer transport (cvltr) 128 130 ! wdtrainM1 Real Output precipitation detrained from mixed draughts; … … 248 250 249 251 ! RomP >>> 250 REAL, DIMENSION (len, nd), INTENT (OUT) :: wdtrainA1, wdtrain M1 ! precipitation sources (extensive)252 REAL, DIMENSION (len, nd), INTENT (OUT) :: wdtrainA1, wdtrainS1, wdtrainM1 ! precipitation sources (extensive) 251 253 REAL, DIMENSION (len, nd), INTENT (OUT) :: mp1 ! unsat. mass flux (staggered grid) 252 254 REAL, DIMENSION (len, nd), INTENT (OUT) :: da1 ! detrained mass flux of adiab. asc. air (extensive) … … 258 260 REAL, DIMENSION (len, nd, nd), INTENT (OUT) :: sigij1 ! mass fraction of env. air in mixed draughts (intensive) 259 261 REAL, DIMENSION (len, nd, nd), INTENT (OUT) :: elij1! cond. water per unit mass of mixed draughts (intensive) 262 REAL, DIMENSION (len, nd), INTENT (OUT) :: qta1 ! total water per unit mass of the adiab. asc. (intensive) 260 263 REAL, DIMENSION (len, nd), INTENT (OUT) :: clw1 ! cond. water per unit mass of the adiab. asc. (intensive) 261 264 !JYG,RL … … 467 470 REAL tv_wake(nloc, nd) 468 471 REAL clw(nloc, nd) 472 REAL, DIMENSION(nloc, nd) :: qta, qpreca !!jygprl 469 473 REAL dph(nloc, nd) 470 474 REAL pbase(nloc), buoybase(nloc), th(nloc, nd) … … 477 481 REAL cin(nloc) 478 482 REAL m(nloc, nd) 483 REAL mm(nloc, nd) 479 484 REAL ment(nloc, nd, nd), sigij(nloc, nd, nd) 480 485 REAL qent(nloc, nd, nd) … … 494 499 REAL, DIMENSION(len,nd) :: wt, water, evap 495 500 REAL, DIMENSION(len,nd) :: ice, fondue, b 496 REAL, DIMENSION(len,nd) :: frac , faci501 REAL, DIMENSION(len,nd) :: frac_a, frac_s, faci !!jygprl 497 502 REAL ft(nloc, nd), fq(nloc, nd) 498 503 REAL ftd(nloc, nd), fqd(nloc, nd) … … 523 528 524 529 ! RomP >>> 525 REAL wdtrainA(nloc, nd), wdtrain M(nloc, nd)530 REAL wdtrainA(nloc, nd), wdtrainS(nloc, nd), wdtrainM(nloc, nd) !!jygprl 526 531 REAL da(len, nd), phi(len, nd, nd) 527 532 REAL epmlmMm(nloc, nd, nd), eplaMm(nloc, nd) … … 615 620 tvp(:, :) = 0. !ym missing init, need to have a look by developpers 616 621 tv(:, :) = 0. !ym missing init, need to have a look by developpers 617 622 618 623 DO il = 1, len 619 624 cin1(il) = -100000. … … 636 641 qtc1(:, :) = 0. 637 642 wdtrainA1(:, :) = 0. 643 wdtrainS1(:, :) = 0. 638 644 wdtrainM1(:, :) = 0. 639 645 da1(:, :) = 0. … … 646 652 sigij1(:, :, :) = 0. 647 653 elij1(:, :, :) = 0. 654 qta1(:,:) = 0. 648 655 clw1(:,:) = 0. 649 656 wghti1(:,:) = 0. … … 906 913 p, ph, h, tv, lv, lf, pbase, buoybase, plcl, & 907 914 inb, tp, tvp, clw, hp, ep, sigp, buoy, & 908 frac )915 frac_a, frac_s, qpreca, qta) !!jygprl 909 916 END IF 910 917 … … 915 922 tnk, qnk, gznk, t, q, qs, gz, & 916 923 p, dph, h, tv, lv, & 917 inb, inbis, tp, tvp, clw, hp, ep, sigp, frac )924 inb, inbis, tp, tvp, clw, hp, ep, sigp, frac_s) 918 925 END IF 919 926 … … 923 930 PRINT *, 'cva_driver -> cv3_epmax_cape' 924 931 call cv3_epmax_fn_cape(nloc,ncum,nd & 925 , ep,hp,icb,inb,clw,nk,t,h,hnk,lv,lf,frac &932 , ep,hp,icb,inb,clw,nk,t,h,hnk,lv,lf,frac_s & 926 933 , pbase, p, ph, tv, buoy, sig, w0,iflag & 927 934 , epmax_diag) … … 941 948 PRINT *, 'cva_driver -> cv3p_mixing' 942 949 CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 943 ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, & 950 !! ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, & 951 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qta, & !!jygprl 944 952 unk, vnk, hp, tv, tvp, ep, clw, sig, & 945 953 ment, qent, hent, uent, vent, nent, & … … 1021 1029 PRINT *, 'cva_driver -> cv3_mixing' 1022 1030 CALL cv3_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 1023 ph, t, q, qs, u, v, tra, h, lv, lf, frac , qnk, &1031 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qnk, & 1024 1032 unk, vnk, hp, tv, tvp, ep, clw, m, sig, & 1025 1033 ment, qent, uent, vent, nent, sigij, elij, ments, qents, traent) 1026 1034 CALL zilch(hent, nloc*nd*nd) 1027 1035 ELSE 1028 CALL cv3_mixscale(nloc, ncum, nd, ment, m) 1036 !!jyg: Essais absurde pour voir 1037 !! mm(:,1) = 0. 1038 !! DO i = 2,nd 1039 !! mm(:,i) = m(:,i)*(1.-qta(:,i-1)) 1040 !! ENDDO 1041 mm(:,:) = m(:,:) 1042 CALL cv3_mixscale(nloc, ncum, nd, ment, mm) 1029 1043 IF (debut) THEN 1030 1044 PRINT *, ' cv3_mixscale-> ' … … 1062 1076 t_wake, q_wake, qs_wake, gz, u, v, tra, p, ph, & 1063 1077 th_wake, tv_wake, lv_wake, lf_wake, cpn_wake, & 1064 ep, sigp, clw, &1078 ep, sigp, clw, frac_s, qpreca, frac_a, qta, & !!jygprl 1065 1079 m, ment, elij, delt, plcl, coef_clos, & 1066 1080 mp, qp, up, vp, trap, wt, water, evap, fondue, ice, & 1067 1081 faci, b, sigd, & 1068 wdtrainA, wdtrainM) ! RomP 1082 !! wdtrainA, wdtrainM) ! RomP 1083 wdtrainA, wdtrainS, wdtrainM) !!jygprl 1069 1084 ! 1070 1085 IF (prt_level >= 10) THEN … … 1075 1090 evap(igout,k), fondue(igout,k) 1076 1091 ENDDO 1077 Print *, 'cva_driver after cv3_unsat: wdtrainA, wdtrain M '1092 Print *, 'cva_driver after cv3_unsat: wdtrainA, wdtrainS, wdtrainM ' !!jygprl 1078 1093 DO k = 1,nd 1079 write (6, '(i4, 2(1x,e13.6))'), &1080 k, wdtrainA(igout,k), wdtrain M(igout,k)1094 write (6, '(i4,3(1x,e13.6))'), & 1095 k, wdtrainA(igout,k), wdtrainS(igout,k), wdtrainM(igout,k) !!jygprl 1081 1096 ENDDO 1082 1097 ENDIF … … 1112 1127 t, q, t_wake, q_wake, s_wake, u, v, tra, & 1113 1128 gz, p, ph, h, hp, lv, lf, cpn, th, th_wake, & 1114 ep, clw, m, tp, mp, qp, up, vp, trap, &1129 ep, clw, qpreca, m, tp, mp, qp, up, vp, trap, & 1115 1130 wt, water, ice, evap, fondue, faci, b, sigd, & 1116 1131 ment, qent, hent, iflag_mix, uent, vent, & … … 1121 1136 !! tls, tps, & ! useless . jyg 1122 1137 qcondc, wd, & 1123 ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv) 1138 !! ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv) 1139 ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv) !!jygprl 1140 ! 1141 ! Test conseravtion de l'eau 1124 1142 ! 1125 1143 IF (debut) THEN … … 1142 1160 t, q, u, v, & 1143 1161 gz, p, ph, h, hp, lv, cpn, & 1144 ep, clw, frac , m, mp, qp, up, vp, &1162 ep, clw, frac_s, m, mp, qp, up, vp, & 1145 1163 wt, water, evap, & 1146 1164 ment, qent, uent, vent, nent, elij, & … … 1187 1205 asupmaxmin, & 1188 1206 da, phi, mp, phi2, d1a, dam, sigij, & ! RomP 1189 clw, elij, evap, ep, epmlmMm, eplaMm, &! RomP1190 wdtrainA, wdtrain M, & ! RomP1207 qta, clw, elij, evap, ep, epmlmMm, eplaMm, & ! RomP 1208 wdtrainA, wdtrainS, wdtrainM, & ! RomP 1191 1209 qtc, sigt, epmax_diag, & ! epmax_cape 1192 1210 iflag1, kbas1, ktop1, & … … 1199 1217 Plim11, plim21, asupmax1, supmax01, & 1200 1218 asupmaxmin1, & 1201 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, & ! RomP1202 clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP1203 wdtrainA1, wdtrain M1,& ! RomP1219 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, & ! RomP 1220 qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP 1221 wdtrainA1, wdtrainS1, wdtrainM1, & ! RomP 1204 1222 qtc1, sigt1, epmax_diag1) ! epmax_cape 1205 1223 !
Note: See TracChangeset
for help on using the changeset viewer.