e3_to_depth.py 952 Bytes
Newer Older
James Harle's avatar
James Harle committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
'''
funtion e3_to_depth
Purpose :   compute t- & w-depths of model levels from e3t & e3w scale factors
Method  :   The t- & w-depth are given by the summation of e3w & e3t, resp.
Action  :   pe3t, pe3w : scale factor of t- and w-point (m)
Useage: [gdept, gdepw] = e3_to_depth(e3t, e3w, nz)
'''

import numpy as np
## COMMENT(jelt 5Feb18). Since the move from NEMOv3.6 to NEMOv4 we now need to compute the depth variables from e3[tw] metrics
## Older namelist_dst.ncml files did not have an e3w definition. This is now needed to reconstruct depth at w-points
## However if e3w isn't defined in the *ncml file it is likely that PyNEMO will fail here.
def e3_to_depth(pe3t, pe3w, jpk):
  pdepw      = np.zeros_like(pe3w)
  pdepw[0,:] = 0.
  pdept      = np.zeros_like(pe3t)
  pdept[0,:] = 0.5 * pe3w[0,:]

  for jk in np.arange(1,jpk,1):
    pdepw[jk,:] = pdepw[jk-1,:] + pe3t[jk-1,:]
    pdept[jk,:] = pdept[jk-1,:] + pe3w[jk  ,:]

  return pdept, pdepw