forked from NCAR/MPAS-Workflow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
verifymodel.csh
executable file
·93 lines (76 loc) · 2.5 KB
/
verifymodel.csh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/csh -f
date
# Process arguments
# =================
## args
# ArgMember: int, ensemble member [>= 1]
set ArgMember = "$1"
# ArgDT: int, valid forecast length beyond CYLC_TASK_CYCLE_POINT in hours
set ArgDT = "$2"
# ArgStateType: str, FC if this is a forecasted state, activates ArgDT in directory naming
set ArgStateType = "$3"
## arg checks
set test = `echo $ArgMember | grep '^[0-9]*$'`
set isNotInt = ($status)
if ( $isNotInt ) then
echo "ERROR in $0 : ArgMember ($ArgMember) must be an integer" > ./FAIL
exit 1
endif
if ( $ArgMember < 1 ) then
echo "ERROR in $0 : ArgMember ($ArgMember) must be > 0" > ./FAIL
exit 1
endif
set test = `echo $ArgDT | grep '^[0-9]*$'`
set isNotInt = ($status)
if ( $isNotInt ) then
echo "ERROR in $0 : ArgDT must be an integer, not $ArgDT"
exit 1
endif
# Setup environment
# =================
source config/experiment.csh
source config/filestructure.csh
source config/tools.csh
source config/modeldata.csh
source config/verification.csh
source config/environment.csh
set yymmdd = `echo ${CYLC_TASK_CYCLE_POINT} | cut -c 1-8`
set hh = `echo ${CYLC_TASK_CYCLE_POINT} | cut -c 10-11`
set thisCycleDate = ${yymmdd}${hh}
set thisValidDate = `$advanceCYMDH ${thisCycleDate} ${ArgDT}`
source ./getCycleVars.csh
# templated work directory
set self_WorkDir = $WorkDirsTEMPLATE[$ArgMember]
if ($ArgDT > 0 || "$ArgStateType" =~ *"FC") then
set self_WorkDir = $self_WorkDir/${ArgDT}hr
endif
echo "WorkDir = ${self_WorkDir}"
# other templated variables
setenv self_StatePrefix inStatePrefixTEMPLATE
set self_StateDir = $inStateDirsTEMPLATE[$ArgMember]
# ================================================================================================
# collect model-space diagnostic statistics into DB files
# =======================================================
mkdir -p ${self_WorkDir}/${ModelDiagnosticsDir}
cd ${self_WorkDir}/${ModelDiagnosticsDir}
set other = $self_StateDir
set bgFileOther = ${other}/${self_StatePrefix}.$fileDate.nc
ln -sf ${bgFileOther} ../restart.$fileDate.nc
ln -fs ${pyModelDir}/*.py ./
set mainScript = writediagstats_modelspace
ln -fs ${pyModelDir}/${mainScript}.py ./
set success = 1
while ( $success != 0 )
mv log.$mainScript log.${mainScript}_LAST
setenv baseCommand "python ${mainScript}.py ${thisValidDate} -r $GFSAnaDirVerify/$InitFilePrefixOuter"
echo ${baseCommand}
${baseCommand} >& log.$mainScript
set success = $?
if ( $success != 0 ) then
source /glade/u/apps/ch/opt/usr/bin/npl/ncar_pylib.csh default
sleep 3
endif
end
cd -
date
exit