Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
title6. Vertical interpolation

This is the last step of the IC generation. It uses a new capability of NCO to perform vertical interpolation. As shown, only a further subset (optional) of variables are involved.

vertfile='E3SM_vert_coor_ne512.nc'

export PATH=~zender/bin_cori:$PATH

nice ~zender/bin_cori/ncremap --vrt_fl=$vertfile -v T,Q,U,V,P0,PS,PHIS,CLDLIQ,CLDICE,O3,skt,date,datesec,hyam,hybm,hyai,hybi,lev,ilev \
ifs_oper_T1279_2016080100_mod_subset_to_e3sm_ne512np4.nc ifs_oper_T1279_2016080100_mod_subset_to_e3sm_ne512np4_topoadj_L72.nc

The above commands are recorded in /project/projectdirs/m2136/analysis-IC/map_ifs_to_e3sm_ne512_vert.sh, similar files can be found under the same directory for other grids.


Expand
titleExtra: Notes from testing by Chris

Chris Terai 2019-11-12: I was able to follow the steps above to regrid and initial condition file on cori, but here are things that needed to be modified to make it work for me. Note: The nco version used for these operations was loaded from e3sm_unified environment (which ncks →/global/project/projectdirs/acme/software/anaconda_envs/cori/base/envs/e3sm_unified_1.3.0_cdatx/bin/ncks).

Step 1: When running ifs_modify.sh,

Code Block
export IDL_PATH=/usr/common/usg/idl/idl82/lib:+/global/u2/w/wlin/idl

should be replaced with

Code Block
export IDL_PATH=/global/common/cori/software/idl/idl85/idl/lib:+/global/u2/w/wlin/idl


Step 3: With this and many other steps, I attempted to use compute nodes (10+ nodes) for creating ne1024 maps, but ran out of memory, so applying 'nice' to commands and running on login nodes worked best, as suggested above.


Step 5: In step 2 of vert_topo_adj_ne1024... using

Code Block
ncks -3 -d lev,136 ... 

gave me an error. Therefore, had to use

Code Block
ncks -7 -d lev,136 ...

In step 3, where we run the idl script, ana_ini_psreset.pro needed to be modified. It is written to accept a 2D (lat,lon) set of data, where the SE is 1-dimensional in x-y. I kept the two sets of for loops, but set nlat = 0 and let nlon = ncol.

Code Block
  result=size(ps)
  nlon=result(1)
  psl=fltarr(nlon)
  nlat = 0