Changeset 1909 in lmdz_wrf for trunk/tools
- Timestamp:
- Apr 19, 2018, 7:28:59 PM (7 years ago)
- Location:
- trunk/tools
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/diag_tools.py
r1908 r1909 35 35 # Forcompute_fog_K84: Computation of fog and visibility following Kunkel, (1984) 36 36 # Forcompute_fog_RUC: Computation of fog and visibility following RUC method Smirnova, (2000) 37 # Forcompute_fog_FRAML50: fog and visibility following Gultepe and Milbrandt, (2010) 37 38 # Forcompute_potevap_orPM: Function to compute potential evapotranspiration following 38 39 # Penman-Monteith formulation implemented in ORCHIDEE … … 1175 1176 return var1, var2, vardims, varvdims 1176 1177 1177 def Forcompute_fog_RUC(q cloud, qice, dimns, dimvns):1178 def Forcompute_fog_RUC(qvapor, temp, pres, dimns, dimvns): 1178 1179 """ Function to compute fog and visibility following RUC method Smirnova, (2000) 1179 Forcompute_fog_K84(qcloud, qice, dimns, dimvns) 1180 [qcloud]= cloud mixing ratio [kgk-1] 1181 [qice]= ice mixing ratio [kgk-1] 1180 Forcompute_fog_RUC(qcloud, qice, dimns, dimvns) 1181 [qvapor]= water vapor mixing ratio [kgk-1] 1182 [temp]= temperature [K] 1183 [pres]= pressure [Pa] 1182 1184 [dimns]= list of the name of the dimensions of [uas] 1183 1185 [dimvns]= list of the name of the variables with the values of the … … 1189 1191 varvdims = dimvns[:] 1190 1192 1191 if len(q cloud.shape) == 4:1192 var= np.zeros((q cloud.shape[0],qcloud.shape[2],qcloud.shape[3]), dtype=np.float)1193 1194 dx = q cloud.shape[3]1195 dy = q cloud.shape[2]1196 dz = q cloud.shape[1]1197 dt = q cloud.shape[0]1193 if len(qvapor.shape) == 4: 1194 var= np.zeros((qvapor.shape[0],qvapor.shape[2],qvapor.shape[3]), dtype=np.float) 1195 1196 dx = qvapor.shape[3] 1197 dy = qvapor.shape[2] 1198 dz = qvapor.shape[1] 1199 dt = qvapor.shape[0] 1198 1200 vardims.pop(1) 1199 1201 varvdims.pop(1) 1200 1202 1201 1203 pvar1, pvar2 = fdin.module_fordiagnostics.compute_fog_ruc( \ 1202 q c=qcloud[:,0,:,:].transpose(), qi=qice[:,0,:,:].transpose(), d1=dx, d2=dy,\1203 d3=dt)1204 qv=qvapor[:,0,:,:].transpose(), ta=temp[:,0,:,:].transpose(), \ 1205 pres=pres[:,0,:,:].transpose(), d1=dx, d2=dy, d3=dt) 1204 1206 var1 = pvar1.transpose() 1205 1207 var2 = pvar2.transpose() 1208 elif len(qvapor.shape) == 3: 1209 var= np.zeros((qvapor.shape[0],qvapor.shape[1],qvapor.shape[2]), dtype=np.float) 1210 1211 dx = qvapor.shape[2] 1212 dy = qvapor.shape[1] 1213 dt = qvapor.shape[0] 1214 1215 pvar1, pvar2 = fdin.module_fordiagnostics.compute_fog_ruc( \ 1216 qv=qvapor[:].transpose(), ta=temp[:].transpose(), pres=pres[:].transpose(),\ 1217 d1=dx, d2=dy, d3=dt) 1218 var1 = pvar1.transpose() 1219 var2 = pvar2.transpose() 1206 1220 else: 1207 1221 print errormsg 1208 1222 print ' ' + fname + ': rank', len(qcloud.shape), 'not ready !!' 1209 print ' it only computes 4D [t,z,y,x] rank values' 1223 print ' it only computes 4D [t,z,y,x] or 3D [t,z,y,x] rank values' 1224 quit(-1) 1225 1226 return var1, var2, vardims, varvdims 1227 1228 def Forcompute_fog_FRAML50(qvapor, temp, pres, dimns, dimvns): 1229 """ Function to compute fog (vis < 1km) and visibility following FRAM-L 50 % prob 1230 Gultepe, and Milbrandt, (2010), J. Appl. Meteor. Climatol. 1231 Forcompute_fog_FRAML50(qvapor, temp, pres, dimns, dimvns) 1232 [qvapor]= vapor mixing ratio [kgk-1] 1233 [temp]= temperature [K] 1234 [pres]= pressure [Pa] 1235 [dimns]= list of the name of the dimensions of [uas] 1236 [dimvns]= list of the name of the variables with the values of the 1237 dimensions of [qvapor] 1238 """ 1239 fname = 'Forcompute_fog_FRAML50' 1240 1241 vardims = dimns[:] 1242 varvdims = dimvns[:] 1243 1244 if len(qvapor.shape) == 4: 1245 var= np.zeros((qvapor.shape[0],qvapor.shape[2],qvapor.shape[3]), dtype=np.float) 1246 1247 dx = qvapor.shape[3] 1248 dy = qvapor.shape[2] 1249 dz = qvapor.shape[1] 1250 dt = qvapor.shape[0] 1251 vardims.pop(1) 1252 varvdims.pop(1) 1253 1254 pvar1, pvar2 = fdin.module_fordiagnostics.compute_fog_framl50( \ 1255 qv=qvapor[:,0,:,:].transpose(), ta=temp[:,0,:,:].transpose(), \ 1256 pres=pres[:,0,:,:].transpose(), d1=dx, d2=dy, d3=dt) 1257 var1 = pvar1.transpose() 1258 var2 = pvar2.transpose() 1259 elif len(qvapor.shape) == 3: 1260 var= np.zeros((qvapor.shape[0],qvapor.shape[1],qvapor.shape[2]), dtype=np.float) 1261 1262 dx = qvapor.shape[2] 1263 dy = qvapor.shape[1] 1264 dt = qvapor.shape[0] 1265 1266 pvar1, pvar2 = fdin.module_fordiagnostics.compute_fog_framl50( \ 1267 qv=qvapor[:].transpose(), ta=temp[:].transpose(), pres=pres[:].transpose(),\ 1268 d1=dx, d2=dy, d3=dt) 1269 var1 = pvar1.transpose() 1270 var2 = pvar2.transpose() 1271 else: 1272 print errormsg 1273 print ' ' + fname + ': rank', len(qvapor.shape), 'not ready !!' 1274 print ' it only computes 4D [t,z,y,x] or 3D [t,y,x] rank values' 1210 1275 quit(-1) 1211 1276 -
trunk/tools/diagnostics.inf
r1908 r1909 11 11 clivi, WRFclivi, WRFdens@QICE@QHAIL@QGRAUPEL 12 12 clwvi, WRFclwvi, WRFdens@QCLOUD@QICE@QHAIL@QGRAUPEL 13 fog, fog_FRAML50, QVAPOR@WRFt@WRFp 14 fog, fog_FRAML50, Q2@T2@PSFC 13 15 fog, fog_K84, QCLOUD@QICE 14 fog, fog_RUC, QCLOUD@QICE 16 fog, fog_RUC, QVAPOR@WRFt@WRFp 17 fog, fog_RUC, Q2@T2@PSFC 15 18 hur, LMDZrh, pres@t@r 16 19 hur, WRFrh, WRFrh@T@P@PB -
trunk/tools/diagnostics.py
r1908 r1909 536 536 newnc) 537 537 538 # fog_K84: Computation of fog and visibility following Kunkel, (1984) 538 # fog_K84: Computation of fog and visibility following Kunkel, (1984) as QCLOUD, QICE 539 539 elif diagn == 'fog_K84': 540 540 … … 556 556 ncvar.insert_variable(ncobj, 'fogvisblty', diag2, diagoutd, diagoutvd, newnc) 557 557 558 # fog_RUC: Computation of fog and visibility following Kunkel, (1984) 558 # fog_RUC: Computation of fog and visibility following Kunkel, (1984) as QVAPOR, 559 # WRFt, WRFp or Q2, T2, PSFC 559 560 elif diagn == 'fog_RUC': 560 561 561 562 var0 = ncobj.variables[depvars[0]] 562 var1 = ncobj.variables[depvars[1]] 563 print gen.infmsg 564 if depvars[1] == 'WRFt': 565 print ' ' + main + ": computing '" + diagn + "' using 3D variables !!" 566 var1 = WRFt 567 var2 = WRFp 568 else: 569 print ' ' + main + ": computing '" + diagn + "' using 2D variables !!" 570 var1 = ncobj.variables[depvars[1]] 571 var2 = ncobj.variables[depvars[2]] 563 572 564 573 dnamesvar = list(var0.dimensions) 565 574 dvnamesvar = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 566 575 567 diag1, diag2, diagoutd, diagoutvd = diag.Forcompute_fog_RUC(var0, var1, 576 diag1, diag2, diagoutd, diagoutvd = diag.Forcompute_fog_RUC(var0, var1, var2,\ 568 577 dnamesvar, dvnamesvar) 578 # Removing the nonChecking variable-dimensions from the initial list 579 varsadd = [] 580 diagoutvd = list(dvnames) 581 for nonvd in NONchkvardims: 582 if gen.searchInlist(dvnames,nonvd): diagoutvd.remove(nonvd) 583 varsadd.append(nonvd) 584 ncvar.insert_variable(ncobj, 'fog', diag1, diagoutd, diagoutvd, newnc) 585 ncvar.insert_variable(ncobj, 'fogvisblty', diag2, diagoutd, diagoutvd, newnc) 586 587 # fog_FRAML50: Computation of fog and visibility following Gultepe, I. and 588 # J.A. Milbrandt, 2010 as QVAPOR, WRFt, WRFp or Q2, T2, PSFC 589 elif diagn == 'fog_FRAML50': 590 591 var0 = ncobj.variables[depvars[0]] 592 print gen.infmsg 593 if depvars[1] == 'WRFt': 594 print ' ' + main + ": computing '" + diagn + "' using 3D variables !!" 595 var1 = WRFt 596 var2 = WRFp 597 else: 598 print ' ' + main + ": computing '" + diagn + "' using 2D variables !!" 599 var1 = ncobj.variables[depvars[1]] 600 var2 = ncobj.variables[depvars[2]] 601 602 dnamesvar = list(var0.dimensions) 603 dvnamesvar = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 604 605 diag1, diag2, diagoutd, diagoutvd = diag.Forcompute_fog_FRAML50(var0, var1, \ 606 var2, dnamesvar, dvnamesvar) 569 607 # Removing the nonChecking variable-dimensions from the initial list 570 608 varsadd = [] -
trunk/tools/module_ForDiagnostics.f90
r1908 r1909 26 26 ! compute_fog_K84: Computation of fog and visibility following Kunkel, (1984) 27 27 ! compute_fog_RUC: Computation of fog and visibility following RUC method Smirnova, (2000) 28 ! compute_fog_FRAML50: fog and visibility following Gultepe and Milbrandt, (2010) 28 29 ! compute_psl_ecmwf: Compute sea level pressure using ECMWF method following Mats Hamrud and Philippe Courtier [Pa] 29 30 ! compute_massvertint1D: Subroutine to vertically integrate a 1D variable in eta vertical coordinates … … 870 871 END SUBROUTINE compute_fog_K84 871 872 872 SUBROUTINE compute_fog_RUC(d1, d2, d3, q c, qi, fog, vis)873 SUBROUTINE compute_fog_RUC(d1, d2, d3, qv, ta, pres, fog, vis) 873 874 ! Subroutine to compute fog: qcloud + qice /= 0. 874 875 ! And visibility following RUC method Smirnova, T. G., S. G. Benjamin, and J. M. Brown, 2000: Case … … 879 880 880 881 INTEGER, INTENT(in) :: d1, d2, d3 881 REAL(r_k), DIMENSION(d1,d2,d3), INTENT(in) :: q c, qi882 REAL(r_k), DIMENSION(d1,d2,d3), INTENT(in) :: qv, ta, pres 882 883 INTEGER, DIMENSION(d1,d2,d3), INTENT(out) :: fog 883 884 REAL(r_k), DIMENSION(d1,d2,d3), INTENT(out) :: vis … … 887 888 888 889 !!!!!!! Variables 889 ! qc: cloud mixing ratio [kgkg-1] 890 ! qi, ice mixing ratio [kgkg-1] 890 ! qv: water vapor mixing ratio [kgkg-1] 891 ! ta: temperature [K] 892 ! pres: pressure [Pa] 891 893 ! fog: presence of fog (1: yes, 0: no) 892 894 ! vis: visibility within fog [km] 893 895 894 fname = 'compute_fog_ K84'896 fname = 'compute_fog_RUC' 895 897 896 898 DO i=1, d1 897 899 DO j=1, d2 898 900 DO it=1, d3 899 CALL var_fog_ K84(qc(i,j,it), qi(i,j,it), fog(i,j,it), vis(i,j,it))901 CALL var_fog_RUC(qv(i,j,it), ta(i,j,it), pres(i,j,it), fog(i,j,it), vis(i,j,it)) 900 902 END DO 901 903 END DO … … 906 908 END SUBROUTINE compute_fog_RUC 907 909 910 SUBROUTINE compute_fog_FRAML50(d1, d2, d3, qv, ta, pres, fog, vis) 911 ! Subroutine to compute fog (vis < 1 km) and visibility following 912 ! Gultepe, I. and J.A. Milbrandt, 2010: Probabilistic Parameterizations of Visibility Using 913 ! Observations of Rain Precipitation Rate, Relative Humidity, and Visibility. J. Appl. Meteor. 914 ! Climatol., 49, 36-46, https://doi.org/10.1175/2009JAMC1927.1 915 ! Interest is focused on a 'general' fog/visibilty approach, thus the fit at 50 % of probability is 916 ! chosen 917 ! Effects from precipitation are not considered 918 919 IMPLICIT NONE 920 921 INTEGER, INTENT(in) :: d1, d2, d3 922 REAL(r_k), DIMENSION(d1,d2,d3), INTENT(in) :: qv, ta, pres 923 INTEGER, DIMENSION(d1,d2,d3), INTENT(out) :: fog 924 REAL(r_k), DIMENSION(d1,d2,d3), INTENT(out) :: vis 925 926 ! Local 927 INTEGER :: i, j, it 928 929 !!!!!!! Variables 930 ! qv: mixing ratio in [kgkg-1] 931 ! ta: temperature [K] 932 ! pres: pressure field [Pa] 933 ! fog: presence of fog (1: yes, 0: no) 934 ! vis: visibility within fog [km] 935 936 fname = 'compute_fog_FRAML50' 937 938 DO i=1, d1 939 DO j=1, d2 940 DO it=1, d3 941 CALL var_fog_FRAML50(qv(i,j,it), ta(i,j,it), pres(i,j,it), fog(i,j,it), vis(i,j,it)) 942 END DO 943 END DO 944 END DO 945 946 RETURN 947 948 END SUBROUTINE compute_fog_FRAML50 949 908 950 END MODULE module_ForDiagnostics -
trunk/tools/module_ForDiagnosticsVars.f90
r1908 r1909 29 29 ! var_cllmh: low, medium, high-cloud [0,1] 30 30 ! var_clt: total cloudiness [0,1] 31 ! var_fog_K84: Computation of fog and visibility following Kunkel, (1984) 32 ! var_fog_RUC: Computation of fog and visibility following RUC method Smirnova, (2000) 31 ! var_hur: relative humidity using August-Roche-Magnus approximation [1] 32 ! var_fog_K84: fog and visibility following Kunkel, (1984) 33 ! var_fog_RUC: fog and visibility following RUC method Smirnova, (2000) 34 ! var_fog_FRAML50: fog and visibility following Gultepe and Milbrandt, (2010) 33 35 ! var_potevap_orPM: potential evapotranspiration following Penman-Monteith formulation implemented in ORCHIDEE 34 36 ! var_psl_ecmwf: sea level pressure using ECMWF method following Mats Hamrud and Philippe Courtier [Pa] 37 ! var_rh: Subroutine to compute relative humidity following 'Tetens' equation (T,P) ...' 35 38 ! var_zmla_generic: Subroutine to compute pbl-height following a generic method 36 39 ! var_zwind: Subroutine to extrapolate the wind at a given height following the 'power law' methodology … … 1441 1444 1442 1445 SUBROUTINE var_fog_K84(qc, qi, fog, vis) 1443 ! Computation of fog : qcloud +qice /= 0.1446 ! Computation of fog (vis < 1km) only computed where qcloud, qice /= 0. 1444 1447 ! And visibility following Kunkel, B. A., (1984): Parameterization of droplet terminal velocity and 1445 1448 ! extinction coefficient in fog models. J. Climate Appl. Meteor., 23, 34â41. … … 1452 1455 1453 1456 ! Local 1454 REAL(r_k) :: qfog,visc, visi1457 REAL(r_k) :: visc, visi 1455 1458 1456 1459 !!!!!!! Variables … … 1462 1465 fname = 'var_fog_K84' 1463 1466 1464 qfog = (qc + qi)*1000.*oneRK1465 IF (qfog /= zeroRK) THEN1466 fog = 11467 IF (qi > nullv .OR. qc > nullv) THEN 1468 visc = 100000.*oneRK 1469 visi = 100000.*oneRK 1467 1470 ! From: Gultepe, 2006, JAM, 45, 1469-1480 1468 IF (qc /= 0.) visc = 0.027*(qc*1000.)**(-0.88)1469 IF (qi /= 0.) visi = 0.024*(qi*1000.)**(-1.0)1471 IF (qc > nullv) visc = 0.027*(qc*1000.)**(-0.88) 1472 IF (qi > nullv) visi = 0.024*(qi*1000.)**(-1.0) 1470 1473 vis = MINVAL((/visc, visi/)) 1474 IF (vis <= oneRK) THEN 1475 fog = 1 1476 ELSE 1477 fog = 0 1478 vis = -oneRK 1479 END IF 1471 1480 ELSE 1472 1481 fog = 0 1473 vis = zeroRK1482 vis = -oneRK 1474 1483 END IF 1475 PRINT *,'qc:', qc,'qi:',qi,'qfog:',qfog,'visc:',visc,'visi:',visi,'vis:',vis1476 1477 1484 1478 1485 END SUBROUTINE var_fog_K84 1479 1486 1480 SUBROUTINE var_fog_RUC(q c, qi, fog, vis)1481 ! Computation of fog : qcloud +qice /= 0.1487 SUBROUTINE var_fog_RUC(qv, ta, pres, fog, vis) 1488 ! Computation of fog (vis < 1km) only computed where qcloud, qice /= 0. 1482 1489 ! And visibility following RUC method Smirnova, T. G., S. G. Benjamin, and J. M. Brown, 2000: Case 1483 1490 ! study verification of RUC/MAPS fog and visibility forecasts. Preprints, 9 th Conference on … … 1486 1493 IMPLICIT NONE 1487 1494 1488 REAL(r_k), INTENT(in) :: q c, qi1495 REAL(r_k), INTENT(in) :: qv, ta, pres 1489 1496 INTEGER, INTENT(out) :: fog 1490 1497 REAL(r_k), INTENT(out) :: vis 1491 1498 1492 1499 ! Local 1493 REAL(r_k) :: qfog1500 REAL(r_k) :: rh 1494 1501 1495 1502 !!!!!!! Variables … … 1501 1508 fname = 'var_fog_RUC' 1502 1509 1503 qfog = (qc + qi)*1000.*oneRK 1504 IF (qfog /= zeroRK) THEN 1505 fog = 1 1510 CALL var_hur(ta, pres, qv, rh) 1511 ! Avoiding supersaturation 1512 rh = MINVAL((/1.,rh/)) 1513 1514 IF (rh > 0.3) THEN 1506 1515 ! From: Gultepe, I., and G. Isaac, 2006: Visbility versus precipitation rate and relative 1507 1516 ! humidity. Preprints, 12th Cloud Physics Conf, Madison, WI, Amer. Meteor. Soc., P2.55. 1508 1517 ! [Available online at http://ams.confex.com/ams/Madison2006/techprogram/paper_l13177.htm] 1509 vis = 60.*exp(-2.5*(qc*1000.-15.)/80.) 1518 vis = 60.*EXP(-2.5*(rh*100.-15.)/80.) 1519 IF (vis <= oneRK) THEN 1520 fog = 1 1521 ELSE 1522 fog = 0 1523 vis = -oneRK 1524 END IF 1510 1525 ELSE 1511 1526 fog = 0 1512 vis = zeroRK1527 vis = -oneRK 1513 1528 END IF 1514 PRINT *,'qc:', qc,'qi:',qi,'qfog:',qfog,'vis:',vis1515 1529 1516 1530 END SUBROUTINE var_fog_RUC 1517 1531 1532 SUBROUTINE var_fog_FRAML50(qv, ta, pres, fog, vis) 1533 ! Computation of fog (vis < 1km) 1534 ! And visibility following Gultepe, I. and J.A. Milbrandt, 2010: Probabilistic Parameterizations 1535 ! of Visibility Using Observations of Rain Precipitation Rate, Relative Humidity, and Visibility. 1536 ! J. Appl. Meteor. Climatol., 49, 36-46, https://doi.org/10.1175/2009JAMC1927.1 1537 ! Interest is focused on a 'general' fog/visibilty approach, thus the fit at 50 % of probability 1538 ! is chosen 1539 ! Effects from precipitation are not considered 1540 1541 IMPLICIT NONE 1542 1543 REAL(r_k), INTENT(in) :: qv, ta, pres 1544 INTEGER, INTENT(out) :: fog 1545 REAL(r_k), INTENT(out) :: vis 1546 1547 ! Local 1548 REAL(r_k) :: rh 1549 1550 !!!!!!! Variables 1551 ! qv: mixing ratio in [kgkg-1] 1552 ! ta: temperature [K] 1553 ! pres: pressure field [Pa] 1554 ! rh: relative humidity [1] 1555 ! fog: presence of fog (1: yes, 0: no) 1556 ! vis: visibility within fog [km] 1557 1558 fname = 'var_fog_FRAML50' 1559 1560 CALL var_hur(ta, pres, qv, rh) 1561 ! Avoiding supersaturation 1562 rh = MINVAL((/1.,rh/)) 1563 1564 IF (rh > 0.3) THEN 1565 vis = -5.19*10.**(-10)*(rh*100.)**5.44+40.10 1566 ! Fog definition (vis <= 1. km) 1567 IF (vis <= oneRK) THEN 1568 fog = 1 1569 ELSE 1570 vis = -oneRK 1571 fog = 0 1572 END IF 1573 ELSE 1574 vis = -oneRK 1575 fog = 0 1576 END IF 1577 1578 END SUBROUTINE var_fog_FRAML50 1579 1580 SUBROUTINE var_hur(t, press, qv, hur) 1581 ! Subroutine to compute relative humidity using August-Roche-Magnus approximation [1] 1582 1583 IMPLICIT NONE 1584 1585 REAL, INTENT(in) :: t, press, qv 1586 REAL, INTENT(out) :: hur 1587 1588 ! Local 1589 REAL :: tC, es, ws 1590 1591 !!!!!!! Variables 1592 ! t: temperature [K] 1593 ! press: pressure [Pa] 1594 ! q: mixing ratio [kgkg-1] 1595 ! dz: vertical extension 1596 ! hur: relative humidity [1] 1597 1598 fname = 'var_hur' 1599 1600 ! August - Roche - Magnus formula (Avoiding overflow on last level) 1601 tC = t - SVPT0 1602 1603 es = ARM1 * exp(ARM2*tC/(tC+ARM3)) 1604 ! Saturated mixing ratio 1605 ws = mol_watdry*es/(0.01*press-es) 1606 1607 ! Relative humidity 1608 hur = qv / ws 1609 1610 RETURN 1611 1612 END SUBROUTINE var_hur 1613 1518 1614 END MODULE module_ForDiagnosticsVars -
trunk/tools/module_definitions.f90
r1783 r1909 23 23 CHARACTER(len=4) :: numSa, numSb 24 24 CHARACTER(len=10) :: Str10 25 REAL(r_k) :: nullv = 1.e-7 26 !REAL(r_k) :: nullv = 1.d-15 25 27 26 28 ! Scientific constants 27 29 !! 30 ! K --> C temperature transformation 31 REAL(r_k), PARAMETER :: SVPT0 = 273.15 32 ! August-Roche-Magnus approximation 33 REAL(r_k), PARAMETER :: ARM1 = 6.1094 34 REAL(r_k), PARAMETER :: ARM2 = 17.625 35 REAL(r_k), PARAMETER :: ARM3 = 243.04 28 36 29 REAL(r_k), PARAMETER :: ZEPSEC =1.0D-1237 REAL(r_k), PARAMETER :: ZEPSEC = 1.0D-12 30 38 ! Low limit pressure for medium clouds [Pa] 31 39 REAL(r_k), PARAMETER :: prmhc = 44000.d0
Note: See TracChangeset
for help on using the changeset viewer.