Changeset 2496
- Timestamp:
- Apr 14, 2016, 9:42:23 PM (9 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90
r2481 r2496 21 21 REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:) 22 22 !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn) 23 REAL, SAVE, ALLOCATABLE :: d_ql_dyn(:,:), d_qs_dyn(:,:) 24 !$OMP THREADPRIVATE(d_ql_dyn, d_qs_dyn) 23 25 REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:) 24 26 !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn) … … 255 257 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt 256 258 !$OMP THREADPRIVATE(JrNt) 257 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, fder, plcl, plfc, prw 258 !$OMP THREADPRIVATE(dthmin, evap, fder, plcl, plfc, prw )259 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, fder, plcl, plfc, prw, prlw, prsw 260 !$OMP THREADPRIVATE(dthmin, evap, fder, plcl, plfc, prw, prlw, prsw) 259 261 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m 260 262 !$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m) … … 401 403 allocate(tr_seri(klon,klev,nbtr)) 402 404 allocate(d_t_dyn(klon,klev),d_q_dyn(klon,klev)) 405 allocate(d_ql_dyn(klon,klev),d_qs_dyn(klon,klev)) 403 406 allocate(d_u_dyn(klon,klev),d_v_dyn(klon,klev)) 404 407 allocate(d_tr_dyn(klon,klev,nbtr)) !RomP … … 521 524 ALLOCATE(JrNt(klon)) 522 525 ALLOCATE(dthmin(klon), evap(klon), fder(klon), plcl(klon), plfc(klon)) 523 ALLOCATE(prw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))526 ALLOCATE(prw(klon), prlw(klon), prsw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon)) 524 527 ALLOCATE(s_lcl(klon)) 525 528 ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon)) … … 615 618 deallocate(tr_seri) 616 619 deallocate(d_t_dyn,d_q_dyn) 620 deallocate(d_ql_dyn,d_qs_dyn) 617 621 deallocate(d_u_dyn,d_v_dyn) 618 622 deallocate(d_tr_dyn) !RomP … … 725 729 DEALLOCATE(cldljn, cldmjn, cldhjn, cldtjn, JrNt) 726 730 DEALLOCATE(dthmin, evap, fder, plcl, plfc) 727 DEALLOCATE(prw, zustar, zu10m, zv10m, rh2m, s_lcl)731 DEALLOCATE(prw, prlw, prsw, zustar, zu10m, zv10m, rh2m, s_lcl) 728 732 DEALLOCATE(s_pblh, s_pblt, s_therm) 729 733 ! -
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r2486 r2496 449 449 TYPE(ctrl_out), SAVE :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), & 450 450 'prw', 'Precipitable water', 'kg/m2', (/ ('', i=1, 9) /)) 451 TYPE(ctrl_out), SAVE :: o_prlw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), & 452 'prlw', 'Precipitable liquid water', 'kg/m2', (/ ('', i=1, 9) /)) 453 TYPE(ctrl_out), SAVE :: o_prsw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), & 454 'prsw', 'Precipitable solid water', 'kg/m2', (/ ('', i=1, 9) /)) 451 455 TYPE(ctrl_out), SAVE :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 452 456 's_pblh', 'Boundary Layer Height', 'm', (/ ('', i=1, 9) /)) … … 992 996 TYPE(ctrl_out), SAVE :: o_dqphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 993 997 'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 998 TYPE(ctrl_out), SAVE :: o_dqlphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 999 'dqlphy', 'Physics dQL', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1000 TYPE(ctrl_out), SAVE :: o_dqlphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1001 'dqlphy2d', 'Physics dQL', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1002 TYPE(ctrl_out), SAVE :: o_dqsphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1003 'dqsphy', 'Physics dQS', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1004 TYPE(ctrl_out), SAVE :: o_dqsphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1005 'dqsphy2d', 'Physics dQS', '(kg/m2)/s', (/ ('', i=1, 9) /)) 994 1006 TYPE(ctrl_out), SAVE :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 /), & 995 1007 'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i=1, 9) /)) … … 1071 1083 TYPE(ctrl_out), SAVE :: o_dqdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1072 1084 'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1085 TYPE(ctrl_out), SAVE :: o_dqldyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1086 'dqldyn', 'Dynamics dQL', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1087 TYPE(ctrl_out), SAVE :: o_dqldyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1088 'dqldyn2d', 'Dynamics dQL', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1089 TYPE(ctrl_out), SAVE :: o_dqsdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1090 'dqsdyn', 'Dynamics dQS', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1091 TYPE(ctrl_out), SAVE :: o_dqsdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1092 'dqsdyn2d', 'Dynamics dQS', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1073 1093 TYPE(ctrl_out), SAVE :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1074 1094 'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i=1, 9) /)) -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r2486 r2496 17 17 SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, & 18 18 pplay, lmax_th, aerosol_couple, & 19 ok_ade, ok_aie, ivap, new_aod, ok_sync, &19 ok_ade, ok_aie, ivap, iliq, isol, new_aod, ok_sync, & 20 20 ptconv, read_climoz, clevSTD, ptconvth, & 21 21 d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc) … … 67 67 o_wbeff, o_cape_max, o_upwd, o_ep,o_epmax_diag, o_Ma, & 68 68 o_dnwd, o_dnwd0, o_ftime_con, o_mc, & 69 o_prw, o_ s_pblh, o_s_pblt, o_s_lcl, &69 o_prw, o_prlw, o_prsw, o_s_pblh, o_s_pblt, o_s_lcl, & 70 70 o_s_therm, o_uSTDlevs, o_vSTDlevs, & 71 71 o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, & … … 120 120 o_zfull, o_zhalf, o_rneb, o_rnebjn, o_rnebcon, & 121 121 o_rnebls, o_rhum, o_ozone, o_ozone_light, & 122 o_dtphy, o_dqphy, o_dqphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, & 122 o_dtphy, o_dqphy, o_dqphy2d, o_dqlphy, o_dqlphy2d, & 123 o_dqsphy, o_dqsphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, & 123 124 o_ages_srf, o_snow_srf, o_alb1, o_alb2, o_tke, & 124 125 o_tke_max, o_kz, o_kz_max, o_clwcon, & 125 o_dtdyn, o_dqdyn, o_dqdyn2d, o_dudyn, o_dvdyn, & 126 o_dtdyn, o_dqdyn, o_dqdyn2d, o_dqldyn, o_dqldyn2d, & 127 o_dqsdyn, o_dqsdyn2d, o_dudyn, o_dvdyn, & 126 128 o_dtcon, o_tntc, o_ducon, o_dvcon, & 127 129 o_dqcon, o_dqcon2d, o_tnhusc, o_tnhusc, o_dtlsc, & … … 201 203 cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, & 202 204 cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, & 203 plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, &205 plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, prlw, prsw, & 204 206 s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, & 205 207 vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, & … … 236 238 zphi, u_seri, v_seri, omega, cldfra, & 237 239 !>jyg 238 rneb, rnebjn, zx_rh, d_t_dyn, d_q_dyn, & 240 rneb, rnebjn, zx_rh, d_t_dyn, d_q_dyn, & 241 d_ql_dyn, d_qs_dyn, & 239 242 d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, & 240 243 d_u_ajs, d_v_ajs, & … … 288 291 289 292 ! Input 290 INTEGER :: itap, ivap, read_climoz293 INTEGER :: itap, ivap, iliq, isol, read_climoz 291 294 INTEGER, DIMENSION(klon) :: lmax_th 292 295 LOGICAL :: aerosol_couple, ok_sync … … 671 674 ENDIF !iflag_con .GE. 3 672 675 CALL histwrite_phy(o_prw, prw) 676 CALL histwrite_phy(o_prlw, prlw) 677 CALL histwrite_phy(o_prsw, prsw) 673 678 CALL histwrite_phy(o_s_pblh, s_pblh) 674 679 CALL histwrite_phy(o_s_pblt, s_pblt) … … 1064 1069 1065 1070 CALL histwrite_phy(o_dtphy, d_t) 1071 1066 1072 CALL histwrite_phy(o_dqphy, d_qx(:,:,ivap)) 1067 1073 CALL water_int(klon,klev,d_qx(:,:,ivap),zmasse,zx_tmp_fi2d) 1068 1074 CALL histwrite_phy(o_dqphy2d, zx_tmp_fi2d) 1075 1076 CALL histwrite_phy(o_dqlphy, d_qx(:,:,iliq)) 1077 CALL water_int(klon,klev,d_qx(:,:,iliq),zmasse,zx_tmp_fi2d) 1078 CALL histwrite_phy(o_dqlphy2d, zx_tmp_fi2d) 1079 1080 IF (nqo.EQ.3) THEN 1081 CALL histwrite_phy(o_dqsphy, d_qx(:,:,isol)) 1082 CALL water_int(klon,klev,d_qx(:,:,isol),zmasse,zx_tmp_fi2d) 1083 CALL histwrite_phy(o_dqsphy2d, zx_tmp_fi2d) 1084 ELSE 1085 zx_tmp_fi3d=0.0 1086 CALL histwrite_phy(o_dqsphy, zx_tmp_fi3d) 1087 zx_tmp_fi2d=0.0 1088 CALL histwrite_phy(o_dqsphy2d, zx_tmp_fi2d) 1089 ENDIF 1090 1069 1091 DO nsrf=1, nbsrf 1070 1092 IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf) … … 1103 1125 CALL histwrite_phy(o_clwcon, clwcon0) 1104 1126 CALL histwrite_phy(o_dtdyn, d_t_dyn) 1127 1105 1128 CALL histwrite_phy(o_dqdyn, d_q_dyn) 1106 1129 CALL water_int(klon,klev,d_q_dyn,zmasse,zx_tmp_fi2d) 1107 1130 CALL histwrite_phy(o_dqdyn2d,zx_tmp_fi2d) 1131 1132 CALL histwrite_phy(o_dqldyn, d_ql_dyn) 1133 CALL water_int(klon,klev,d_ql_dyn,zmasse,zx_tmp_fi2d) 1134 CALL histwrite_phy(o_dqldyn2d,zx_tmp_fi2d) 1135 1136 CALL histwrite_phy(o_dqsdyn, d_qs_dyn) 1137 CALL water_int(klon,klev,d_qs_dyn,zmasse,zx_tmp_fi2d) 1138 CALL histwrite_phy(o_dqsdyn2d,zx_tmp_fi2d) 1139 1108 1140 CALL histwrite_phy(o_dudyn, d_u_dyn) 1109 1141 CALL histwrite_phy(o_dvdyn, d_v_dyn) -
LMDZ5/trunk/libf/phylmd/physiq_mod.F90
r2489 r2496 115 115 !! d_t_dyn-input-R-tendance dynamique pour "t" (K/s) 116 116 !! d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s) 117 !! d_ql_dyn-input-R-tendance dynamique pour "ql" (kg/kg/s) 118 !! d_qs_dyn-input-R-tendance dynamique pour "qs" (kg/kg/s) 117 119 !! flxmass_w -input-R- flux de masse verticale 118 120 !! d_u-----output-R-tendance physique de "u" (m/s/s) … … 1660 1662 d_t_dyn(i,k) = (t_seri(i,k)-t_ancien(i,k))/dtime 1661 1663 d_q_dyn(i,k) = (q_seri(i,k)-q_ancien(i,k))/dtime 1664 d_ql_dyn(i,k) = (ql_seri(i,k)-ql_ancien(i,k))/dtime 1665 d_qs_dyn(i,k) = (qs_seri(i,k)-qs_ancien(i,k))/dtime 1662 1666 ENDDO 1663 1667 ENDDO … … 1688 1692 d_t_dyn(i,k) = 0.0 1689 1693 d_q_dyn(i,k) = 0.0 1694 d_ql_dyn(i,k) = 0.0 1695 d_qs_dyn(i,k) = 0.0 1690 1696 ENDDO 1691 1697 ENDDO … … 4297 4303 CALL diag_slp(klon,t_seri,paprs,pplay,pphis,ptstar,pt0,slp) 4298 4304 ! 4299 !cc prw = eau precipitable 4305 !cc prw = eau precipitable 4306 ! prlw = colonne eau liquide 4307 ! prlw = colonne eau solide 4300 4308 DO i = 1, klon 4301 4309 prw(i) = 0. 4310 prlw(i) = 0. 4311 prsw(i) = 0. 4302 4312 DO k = 1, klev 4303 4313 prw(i) = prw(i) + & 4304 4314 q_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4315 prlw(i) = prlw(i) + & 4316 ql_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4317 prsw(i) = prsw(i) + & 4318 qs_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4305 4319 ENDDO 4306 4320 ENDDO … … 4405 4419 t_ancien(i,k) = t_seri(i,k) 4406 4420 q_ancien(i,k) = q_seri(i,k) 4421 ql_ancien(i,k) = ql_seri(i,k) 4422 qs_ancien(i,k) = qs_seri(i,k) 4407 4423 ENDDO 4408 4424 ENDDO … … 4541 4557 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 4542 4558 pplay, lmax_th, aerosol_couple, & 4543 ok_ade, ok_aie, ivap, new_aod, ok_sync, &4544 ptconv, read_climoz, clevSTD,&4559 ok_ade, ok_aie, ivap, iliq, isol, new_aod, & 4560 ok_sync, ptconv, read_climoz, clevSTD, & 4545 4561 ptconvth, d_t, qx, d_qx, zmasse, & 4546 4562 flag_aerosol, flag_aerosol_strat, ok_cdnc)
Note: See TracChangeset
for help on using the changeset viewer.