Changeset 1720 in lmdz_wrf


Ignore:
Timestamp:
Dec 14, 2017, 2:12:51 AM (7 years ago)
Author:
lfita
Message:

Adding:

  • `var_td_Uhus': Function to compute dew-point air temperature from temperature and pressure values using hus
Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/diag_tools.py

    r1718 r1720  
    4040# var_mslp: Fcuntion to compute mean sea-level pressure
    4141# var_td: Function to compute dew-point air temperature from temperature and pressure values
     42# var_td_Uhus: Function to compute dew-point air temperature from temperature and pressure values using hus
    4243# var_virtualTemp: This function returns virtual temperature in K,
    4344# var_WRFtime: Function to copmute CFtimes from WRFtime variable
     
    13581359    return td
    13591360
     1361def var_td_Uhus(t, p, hus):
     1362    """ Function to compute dew-point air temperature from temperature and pressure values using hus
     1363      t= temperature [K]
     1364      hus= specific humidity [1]
     1365      formula:
     1366          temp = theta*(p/p0)**(R/Cp)
     1367
     1368    """
     1369    fname = 'compute_td'
     1370
     1371    tk = (t)*(p/fdef.module_definitions.p0ref)**(fdef.module_definitions.rcp)
     1372    data1 = 10.*0.6112*np.exp(17.67*(tk-273.16)/(tk-29.65))
     1373    data2 = 0.622*data1/(0.01*p-(1.-0.622)*data1)
     1374
     1375    qv = hus/(1.+hus)
     1376
     1377    rh = qv/data2
     1378               
     1379    pa = rh * data1
     1380    td = 257.44*np.log(pa/6.1121)/(18.678-np.log(pa/6.1121))
     1381
     1382    return td
     1383
    13601384def var_wd(u, v):
    13611385    """ Function to compute the wind direction
     
    14741498            """
    14751499            vn = 'td'
    1476             CF3Dvars = ['ta', 'plev', 'hus']
     1500            CF3Dvars = ['ta', 'plev', 'q']
    14771501            for v3D in CF3Dvars:
    14781502                if not vars3D.has_key(v3D):
     
    14941518            ta = ncobj.variables[vars3D['ta']][:]
    14951519            p = ncobj.variables[vars3D['plev']][:]
    1496             hus = ncobj.variables[vars3D['hus']][:]
     1520            q = ncobj.variables[vars3D['q']][:]
    14971521
    14981522            if len(ta.shape) != len(p.shape):
    14991523                p = gen.fill_Narray(p, ta*0., filldim=[0,2,3])
    15001524
    1501             self.values = var_td(ta, p, hus)
     1525            self.values = var_td(ta, p, q)
     1526            self.dims = [dictdims['time'], dictdims['plev'], dictdims['lat'],        \
     1527              dictdims['lon']]
     1528            self.units = 'K'
     1529
     1530        elif Cdiag == 'td_Uhus':
     1531            """ Computing dew-point temperature
     1532            """
     1533            vn = 'td'
     1534            CF3Dvars = ['ta', 'plev', 'hus']
     1535            for v3D in CF3Dvars:
     1536                if not vars3D.has_key(v3D):
     1537                    print gen.errormsg
     1538                    print '  ' + fname + ": missing variable '" + v3D +              \
     1539                      "' attribution to compute '" + vn + "' !!"
     1540                    print '  Equivalence of 3D variables provided _______'
     1541                    gen.printing_dictionary(vars3D)
     1542                    quit(-1)
     1543                if not self.incvars.has_key(vars3D[v3D]):
     1544                    print gen.errormsg
     1545                    print '  ' + fname + ": missing variable '" + vars3D[v3D] +      \
     1546                      "' in input file to compute '" + vn + "' !!"
     1547                    print '  available variables:', self.incvars.keys()
     1548                    print '  looking for variables _______' 
     1549                    gen.printing_dictionary(vars3D)
     1550                    quit(-1)
     1551
     1552            ta = ncobj.variables[vars3D['ta']][:]
     1553            p = ncobj.variables[vars3D['plev']][:]
     1554            hus = ncobj.variables[vars3D['hus']][:]
     1555
     1556            if len(ta.shape) != len(p.shape):
     1557                p = gen.fill_Narray(p, ta*0., filldim=[0,2,3])
     1558
     1559            self.values = var_td_Uhus(ta, p, hus)
    15021560            self.dims = [dictdims['time'], dictdims['plev'], dictdims['lat'],        \
    15031561              dictdims['lon']]
  • trunk/tools/get_stations.py

    r1719 r1720  
    2121
    2222# Gneric variables prepared to be computed
    23 Cvars = ['C_hur', 'C_hur_Uhus', 'C_td', 'C_wd', 'C_ws']
     23Cvars = ['C_hur', 'C_hur_Uhus', 'C_td', 'C_td_hus', 'C_wd', 'C_ws']
    2424
    2525# WRF specific diagnostics
Note: See TracChangeset for help on using the changeset viewer.