Skip to content

Commit 65abe5e

Browse files
committed
cleaned up and simplified process_hist.csh (GEOSldas_HIST.rc, ldas_setup)
1 parent 978fdbf commit 65abe5e

File tree

3 files changed

+98
-146
lines changed

3 files changed

+98
-146
lines changed

GEOSldas_App/GEOSldas_HIST.rc

Lines changed: 36 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
# Sample HISTORY.rc file for GEOSldas
22
#
33
# This HISTORY template is edited by "ldas_setup" via "process_hist.csh".
4-
# The strings '#ASSIM', '#EASE', and '#CUBE' are *not* linked to MAPL HISTORY
5-
# functionality. For example, the line
6-
# "#CUBE 'tavg24_2d_lnd_Nx'"
7-
# does *not* mean that the 'lnd' output will be on a cube-sphere grid.
84

95
VERSION: 1
106

11-
# Must edit 'EXPID' manually if HISTORY file is re-used without going
12-
# through "ldas_setup".
13-
#
7+
# Must edit 'EXPID' manually if HISTORY file is re-used without going through "ldas_setup".
8+
149
EXPID: GEOSldas_expid
1510

11+
# ------------------------------------------------------------------------------------------------
12+
13+
# pre-defined Collections
14+
1615
COLLECTIONS:
17-
#EASE 'tavg24_1d_lfs_Nt'
18-
'tavg24_2d_lfs_Nx'
19-
#EASE 'tavg24_1d_lnd_Nt'
20-
'tavg24_2d_lnd_Nx'
21-
#CUBE 'tavg24_2d_lnd_EASE'
22-
#ASSIM 'SMAP_L4_SM_gph'
16+
#OUT1d 'tavg24_1d_lfs_Nt'
17+
#OUT2d 'tavg24_2d_lfs_Nx'
18+
#OUT1d 'tavg24_1d_lnd_Nt'
19+
#OUT2d 'tavg24_2d_lnd_Nx'
20+
# 'SMAP_L4_SM_gph'
2321
# 'inst1_1d_lnr_Nt'
2422
# 'catch_progn_incr'
2523
# 'inst3_1d_lndfcstana_Nt'
@@ -30,28 +28,34 @@ COLLECTIONS:
3028
# 'tavg24_1d_glc_Nt'
3129
::
3230

31+
# --------------------------------------------------------------------------------------------------
32+
33+
# 2d output can be on the following grids (see [COLLECTION_NAME].grid_label])
34+
3335
GRID_LABELS: PC720x361-DC
3436
PC1440x721-DC
3537
EASEv2_M36
3638
::
3739

38-
PC720x361-DC.GRID_TYPE: LatLon
39-
PC720x361-DC.IM_WORLD: 720
40-
PC720x361-DC.JM_WORLD: 361
41-
PC720x361-DC.POLE: PC
42-
PC720x361-DC.DATELINE: DC
43-
PC720x361-DC.LM: 1
40+
PC720x361-DC.GRID_TYPE: LatLon
41+
PC720x361-DC.IM_WORLD: 720
42+
PC720x361-DC.JM_WORLD: 361
43+
PC720x361-DC.POLE: PC
44+
PC720x361-DC.DATELINE: DC
45+
PC720x361-DC.LM: 1
4446

4547
PC1440x721-DC.GRID_TYPE: LatLon
46-
PC1440x721-DC.IM_WORLD: 1440
47-
PC1440x721-DC.JM_WORLD: 721
48-
PC1440x721-DC.POLE: PC
49-
PC1440x721-DC.DATELINE: DC
50-
PC1440x721-DC.LM: 1
48+
PC1440x721-DC.IM_WORLD: 1440
49+
PC1440x721-DC.JM_WORLD: 721
50+
PC1440x721-DC.POLE: PC
51+
PC1440x721-DC.DATELINE: DC
52+
PC1440x721-DC.LM: 1
5153

52-
EASEv2_M36.GRID_TYPE: EASE
53-
EASEv2_M36.GRIDNAME: EASEv2_M36
54-
EASEv2_M36.LM: 1
54+
EASEv2_M36.GRID_TYPE: EASE
55+
EASEv2_M36.GRIDNAME: EASEv2_M36
56+
EASEv2_M36.LM: 1
57+
58+
# --------------------------------------------------------------------------------------------------
5559

5660
# Detailed definition of the collections listed above
5761
#
@@ -224,15 +228,16 @@ EASEv2_M36.LM: 1
224228

225229
tavg24_2d_lnd_Nx.format: 'CFIO',
226230
tavg24_2d_lnd_Nx.descr: '2d,Daily,Time-Averaged,Single-Level,Assimilation,Land Surface Diagnostics',
227-
tavg24_2d_lnd_Nx.nbits: 12,
231+
tavg24_2d_lnd_Nx.nbits: 12,
228232
tavg24_2d_lnd_Nx.template: '%y4%m2%d2_%h2%n2z.nc4',
229233
tavg24_2d_lnd_Nx.mode: 'time-averaged',
230234
tavg24_2d_lnd_Nx.frequency: 240000,
231235
tavg24_2d_lnd_Nx.ref_time: 000000,
232-
tavg24_2d_lnd_Nx.regrid_exch: '../input/tile.data'
233-
tavg24_2d_lnd_Nx.regrid_name: 'GRIDNAME'
236+
tavg24_2d_lnd_Nx.regrid_exch: '../input/tile.data',
237+
tavg24_2d_lnd_Nx.regrid_name: 'GRIDNAME',
234238
# tavg24_2d_lnd_Nx.regrid_method: 'BILINEAR_MONOTONIC' ,
235-
tavg24_2d_lnd_Nx.grid_label: PC720x361-DC
239+
tavg24_2d_lnd_Nx.grid_label: PC720x361-DC,
240+
# tavg24_2d_lnd_Nx.grid_label: EASEv2_M36,
236241
tavg24_2d_lnd_Nx.deflate: 2,
237242
tavg24_2d_lnd_Nx.fields: 'GRN' , 'VEGDYN' ,
238243
'LAI' , 'VEGDYN' ,
@@ -328,74 +333,6 @@ EASEv2_M36.LM: 1
328333
::
329334

330335

331-
tavg24_2d_lnd_EASE.format: 'CFIO',
332-
tavg24_2d_lnd_EASE.descr: '2d,Daily,Time-Averaged,Single-Level,Assimilation,Land Surface Diagnostics',
333-
tavg24_2d_lnd_EASE.nbits: 12,
334-
tavg24_2d_lnd_EASE.template: '%y4%m2%d2_%h2%n2z.nc4',
335-
tavg24_2d_lnd_EASE.mode: 'time-averaged',
336-
tavg24_2d_lnd_EASE.frequency: 240000,
337-
tavg24_2d_lnd_EASE.ref_time: 000000,
338-
tavg24_2d_lnd_EASE.regrid_exch: '../input/tile.data'
339-
tavg24_2d_lnd_EASE.regrid_name: 'GRIDNAME'
340-
# tavg24_2d_lnd_EASE.regrid_method: 'BILINEAR_MONOTONIC' ,
341-
tavg24_2d_lnd_EASE.grid_label: EASEv2_M36
342-
tavg24_2d_lnd_EASE.deflate: 2,
343-
tavg24_2d_lnd_EASE.fields: 'GRN' , 'VEGDYN' ,
344-
'LAI' , 'VEGDYN' ,
345-
'WET3' , 'GridComp' , 'GWETPROF' ,
346-
'WET2' , 'GridComp' , 'GWETROOT' ,
347-
'WET1' , 'GridComp' , 'GWETTOP' ,
348-
'WCPR' , 'GridComp' , 'PRMC' ,
349-
'WCRZ' , 'GridComp' , 'RZMC' ,
350-
'WCSF' , 'GridComp' , 'SFMC' ,
351-
'CAPAC' , 'GridComp' , 'INTRWATR' ,
352-
'TPSNOW' , 'GridComp' , 'TPSNOWLAND' ,
353-
'TPUNST' , 'GridComp' , 'TUNSTLAND' ,
354-
'TPSAT' , 'GridComp' , 'TSATLAND' ,
355-
'TPWLT' , 'GridComp' , 'TWLTLAND' ,
356-
'TPSURF' , 'GridComp' , 'TSURFLAND' ,
357-
'TP1' , 'GridComp' , 'TSOIL1' , # CATCH GC: TP1, ENSAVG GC: TSOIL1TILE
358-
'TP2' , 'GridComp' , 'TSOIL2' , # ...
359-
'TP3' , 'GridComp' , 'TSOIL3' , # ...
360-
'TP4' , 'GridComp' , 'TSOIL4' , # ...
361-
'TP5' , 'GridComp' , 'TSOIL5' , # ...
362-
'TP6' , 'GridComp' , 'TSOIL6' , # ...
363-
'PRLAND' , 'GridComp' , 'PRECTOTCORRLAND' , # assume "corrected" precip
364-
'SNOLAND' , 'GridComp' , 'PRECSNOCORRLAND' , # assume "corrected" precip
365-
'TSLAND' , 'GridComp' , 'SNOMASLAND' ,
366-
'SNOWDP' , 'GridComp' , 'SNODPLAND' ,
367-
'EVPSOI' , 'GridComp' , 'LHLANDSOIL' ,
368-
'EVPVEG' , 'GridComp' , 'LHLANDTRNS' ,
369-
'EVPINT' , 'GridComp' , 'LHLANDINTR' ,
370-
'EVPICE' , 'GridComp' , 'LHLANDSBLN' ,
371-
'RUNSURF' , 'GridComp' , 'RUNSURFLAND' ,
372-
'BASEFLOW' , 'GridComp' , 'BASEFLOWLAND' ,
373-
'SMLAND' , 'GridComp' ,
374-
'QINFIL' , 'GridComp' , 'QINFILLAND' ,
375-
'FRUST' , 'GridComp' , 'FRLANDUNST' ,
376-
'FRSAT' , 'GridComp' , 'FRLANDSAT' ,
377-
'ASNOW' , 'GridComp' , 'FRLANDSNO' ,
378-
'FRWLT' , 'GridComp' , 'FRLANDWLT' ,
379-
'DFPARLAND' , 'GridComp' , 'PARDFLAND' ,
380-
'DRPARLAND' , 'GridComp' , 'PARDRLAND' ,
381-
'SHLAND' , 'GridComp' ,
382-
'LHLAND' , 'GridComp' ,
383-
'EVLAND' , 'GridComp' ,
384-
'LWLAND' , 'GridComp' ,
385-
'SWLAND' , 'GridComp' ,
386-
'GHLAND' , 'GridComp' ,
387-
'TWLAND' , 'GridComp' ,
388-
'TELAND' , 'GridComp' ,
389-
'DWLAND' , 'GridComp' , 'WCHANGELAND' ,
390-
'DHLAND' , 'GridComp' , 'ECHANGELAND' ,
391-
'SPLAND' , 'GridComp' , 'SPSHLAND' ,
392-
# 'SPLH' , 'GridComp' , 'SPLHLAND' , # works for Catch only, not yet for CatchCN
393-
'SPWATR' , 'GridComp' , 'SPEVLAND' ,
394-
'SPSNOW' , 'GridComp' , 'SPSNLAND' ,
395-
'PEATCLSM_WATERLEVEL', 'GridComp' ,
396-
'PEATCLSM_FSWCHANGE' , 'GridComp' ,
397-
::
398-
399336
const_1d_lnd_Nt.descr: 'Tile-space,Constant,Time-invariant,Single-Level,Assimilation,Land Surface Model Parameters',
400337
const_1d_lnd_Nt.template: '%y4%m2%d2_%h2%n2z.bin',
401338
const_1d_lnd_Nt.mode: 'instantaneous',

GEOSldas_App/ldas_setup

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,12 +1283,18 @@ class LDASsetup:
12831283
shutil.copy2(histrc_file,tmprcfile)
12841284
else :
12851285
shutil.copy2(histrc_file,tmprcfile)
1286-
GRID='EASE ' + self.rqdExeInp['GRIDNAME'] + ' ' +tmprcfile
1287-
if '-CF' in self.rqdExeInp['GRIDNAME'] :
1288-
GRID ='CUBE ' + self.rqdExeInp['GRIDNAME'] + ' ' +tmprcfile
1289-
_assim = '1' if self.assim else '0'
1290-
cmd =self.bindir +'/process_hist.csh '+ str(self.rqdExeInp['LSM_CHOICE']) + ' ' + str(self.rqdExeInp['AEROSOL_DEPOSITION']) + \
1291-
' ' + GRID + ' ' + str(self.rqdExeInp['RUN_IRRIG']) + ' ' + _assim + ' '+ str(self.nens)
1286+
if 'EASE' in self.rqdExeInp['GRIDNAME'] :
1287+
TMPSTR='OUT1d'
1288+
else :
1289+
TMPSTR='OUT2d'
1290+
cmd = self.bindir +'/process_hist.csh' + ' ' \
1291+
+ tmprcfile + ' ' \
1292+
+ TMPSTR + ' ' \
1293+
+ self.rqdExeInp['GRIDNAME'] + ' ' \
1294+
+ str(self.rqdExeInp['LSM_CHOICE']) + ' ' \
1295+
+ str(self.rqdExeInp['AEROSOL_DEPOSITION']) + ' ' \
1296+
+ str(self.rqdExeInp['RUN_IRRIG']) + ' ' \
1297+
+ str(self.nens)
12921298
print(cmd)
12931299
#os.system(cmd)
12941300
sp.call(shlex.split(cmd))

GEOSldas_App/process_hist.csh

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,74 @@
11
#!/bin/csh -f
22

3-
## I am changed the CUBE/EASE logic
4-
## if CUBE we produce 2D
5-
## anything else, SMAP and other offline grids we produce tile space
6-
7-
setenv LSM_CHOICE $1
8-
setenv AEROSOL_DEPOSITION $2
9-
setenv GRID $3
10-
setenv GRIDNAME "'$4'"
11-
setenv HISTRC $5
12-
setenv RUN_IRRIG $6
13-
setenv ASSIM $7
14-
setenv NENS $8
3+
# process GEOSldas_HIST.rc (=$HISTRC) template
4+
#
5+
# - turn on/off HIST collections depending on tile space
6+
# - EASE: turn on tile-space (1d) output
7+
# - otherwise: turn on gridded (2d) output
8+
# - turn on/off output variables depending on LSM_CHOICE, AEROSOL_DEPOSITION, and RUN_IRRIG
9+
# - fill in source 'GridComp' info for variables depending on NENS
10+
11+
# process command line args
12+
13+
setenv HISTRC $1 # file name of HIST rc template (GEOSldas_HIST.rc)
14+
setenv OUTxd $2 # "OUT1d" or "OUT2d" (to turn on/off collections)
15+
setenv GRIDNAME "'$3'" # full name of grid associated with tile space
16+
setenv LSM_CHOICE $4
17+
setenv AEROSOL_DEPOSITION $5
18+
setenv RUN_IRRIG $6
19+
setenv NENS $7
20+
21+
# -------------------------------------------------
1522

1623
echo $GRIDNAME
1724

18-
if($ASSIM == 1) then
19-
sed -i 's|\#ASSIM|''|g' $HISTRC
20-
sed -i '/^\#EASE/d' $HISTRC
21-
sed -i '/^\#CUBE/d' $HISTRC
22-
else
23-
sed -i '/^\#ASSIM/d' $HISTRC
24-
endif
25+
# uncomment 2d or 1d collections, depending on "OUT1d" (EASE tile space) or "OUT2d" (non-EASE tile space)
2526

26-
if($GRID == CUBE) then
27-
sed -i '/^\#EASE/d' $HISTRC
28-
sed -i 's|\#CUBE|''|g' $HISTRC
27+
if($OUTxd == OUT1d) then
28+
sed -i 's|\#OUT1d|''|g' $HISTRC
2929
else
30-
sed -i '/^\#CUBE/d' $HISTRC
31-
sed -i 's|\#EASE|''|g' $HISTRC
30+
sed -i 's|\#OUT2d|''|g' $HISTRC
3231
endif
32+
33+
# fill in name of grid associated with tile space
34+
3335
sed -i -e s/\'GRIDNAME\'/$GRIDNAME/g $HISTRC
3436

37+
# set 'GridComp' based on LSM_CHOICE;
38+
# turn on/off variables associated with CATCHCN, AEROSOL_DEPOSITION, RUN_IRRIG
39+
3540
if($LSM_CHOICE == 1) then
3641
set GridComp = CATCH
37-
sed -i '/^>>>HIST_CATCHCN<<</d' $HISTRC
38-
sed -i '/^>>>HIST_CATCHCNCLM45<<</d' $HISTRC
42+
sed -i '/^>>>HIST_CATCHCN<<</d' $HISTRC
43+
sed -i '/^>>>HIST_CATCHCNCLM45<<</d' $HISTRC
3944
endif
4045

4146
if($LSM_CHOICE == 2) then
4247
set GridComp = CATCHCN
43-
sed -i '/^>>>HIST_CATCHCNCLM45<<</d' $HISTRC
44-
sed -i 's/>>>HIST_CATCHCN<<</''/g' $HISTRC
48+
sed -i '/^>>>HIST_CATCHCNCLM45<<</d' $HISTRC
49+
sed -i 's/>>>HIST_CATCHCN<<</''/g' $HISTRC
4550
endif
4651

4752
if($LSM_CHOICE == 3) then
4853
set GridComp = CATCHCN
49-
sed -i 's/>>>HIST_CATCHCN<<</''/g' $HISTRC
54+
sed -i 's/>>>HIST_CATCHCN<<</''/g' $HISTRC
5055
sed -i 's/>>>HIST_CATCHCNCLM45<<</''/g' $HISTRC
5156
endif
5257

58+
if($AEROSOL_DEPOSITION == 0) then
59+
sed -i '/^>>>HIST_AEROSOL<<</d' $HISTRC
60+
else
61+
sed -i 's/>>>HIST_AEROSOL<<</''/g' $HISTRC
62+
endif
63+
64+
if($RUN_IRRIG == 0) then
65+
sed -i '/^>>>HIST_IRRIG<<</d' $HISTRC
66+
else
67+
sed -i 's/>>>HIST_IRRIG<<</''/g' $HISTRC
68+
endif
69+
70+
# for ensemble simulations, set 'GridComp' to ENSAVG
71+
5372
if($NENS > 1) then
5473
set GridComp = ENSAVG
5574
sed -i 's|VEGDYN|'VEGDYN_e0000'|g' $HISTRC
@@ -62,16 +81,6 @@ if($NENS > 1) then
6281
# sed -i 's|DATAATM|'DATAATM0000'|g' $HISTRC
6382
endif
6483

65-
sed -i 's|GridComp|'$GridComp'|g' $HISTRC
84+
# fill in source 'GridComp' information for output variables
6685

67-
if($AEROSOL_DEPOSITION == 0) then
68-
sed -i '/^>>>HIST_AEROSOL<<</d' $HISTRC
69-
else
70-
sed -i 's/>>>HIST_AEROSOL<<</''/g' $HISTRC
71-
endif
72-
73-
if($RUN_IRRIG == 0) then
74-
sed -i '/^>>>HIST_IRRIG<<</d' $HISTRC
75-
else
76-
sed -i 's/>>>HIST_IRRIG<<</''/g' $HISTRC
77-
endif
86+
sed -i 's|GridComp|'$GridComp'|g' $HISTRC

0 commit comments

Comments
 (0)