rc-qlc 0.3.24__cp311-cp311-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. qlc/__init__.py +8 -0
  2. qlc/cli/__init__.py +21 -0
  3. qlc/cli/installer.py +16 -0
  4. qlc/cli/qlc_main.py +185 -0
  5. qlc/cli/qlc_py_main.py +74 -0
  6. qlc/config/json/qlc_config.json +41 -0
  7. qlc/config/json/qlc_config_example_1a_all-obs.json +237 -0
  8. qlc/config/json/qlc_config_example_1b_all-mod.json +353 -0
  9. qlc/config/json/qlc_config_example_1c_all-coll.json +266 -0
  10. qlc/config/json/qlc_config_example_2a_all-obs.json +237 -0
  11. qlc/config/json/qlc_config_example_2b_all-mod.json +353 -0
  12. qlc/config/json/qlc_config_example_2c_all-coll.json +265 -0
  13. qlc/config/json/qlc_config_example_3a-us_obs.json +82 -0
  14. qlc/config/json/qlc_config_example_3b-us_mod.json +122 -0
  15. qlc/config/json/qlc_config_example_3c-us_coll.json +46 -0
  16. qlc/config/json/qlc_config_example_4a_eu-obs.json +41 -0
  17. qlc/config/json/qlc_config_example_4b_eu-mod.json +122 -0
  18. qlc/config/json/qlc_config_example_4c_eu-coll.json +45 -0
  19. qlc/config/nml/mars_A1_sfc.nml +19 -0
  20. qlc/config/nml/mars_A2_sfc.nml +19 -0
  21. qlc/config/nml/mars_A3_sfc.nml +19 -0
  22. qlc/config/nml/mars_B1_pl.nml +19 -0
  23. qlc/config/nml/mars_B2_pl.nml +19 -0
  24. qlc/config/nml/mars_C1_pl.nml +19 -0
  25. qlc/config/nml/mars_C2_pl.nml +19 -0
  26. qlc/config/nml/mars_C3_ml.nml +19 -0
  27. qlc/config/nml/mars_D.nml +19 -0
  28. qlc/config/nml/mars_E.nml +19 -0
  29. qlc/config/nml/mars_F.nml +19 -0
  30. qlc/config/nml/mars_G.nml +19 -0
  31. qlc/config/qlc_cams.conf +26 -0
  32. qlc/config/qlc_test.conf +26 -0
  33. qlc/config/qlc_tex.conf +107 -0
  34. qlc/doc/CONTRIBUTING.md +105 -0
  35. qlc/doc/README.md +116 -0
  36. qlc/doc/USAGE.md +58 -0
  37. qlc/examples/cams_case_1/config/json/qlc_config.json +41 -0
  38. qlc/examples/cams_case_1/config/nml/mars_A3_sfc.nml +19 -0
  39. qlc/examples/cams_case_1/config/nml/mars_B1_pl.nml +19 -0
  40. qlc/examples/cams_case_1/config/nml/mars_C1_pl.nml +19 -0
  41. qlc/examples/cams_case_1/config/qlc_cams.conf +122 -0
  42. qlc/examples/cams_case_1/mod/b2ro/2018/b2ro_20181215-20181231_A3_sfc.grb +0 -0
  43. qlc/examples/cams_case_1/mod/iqi9/2018/iqi9_20181215-20181231_A3_sfc.grb +0 -0
  44. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181201.nc +0 -0
  45. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181202.nc +0 -0
  46. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181203.nc +0 -0
  47. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181204.nc +0 -0
  48. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181205.nc +0 -0
  49. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181206.nc +0 -0
  50. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181207.nc +0 -0
  51. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181208.nc +0 -0
  52. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181209.nc +0 -0
  53. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181210.nc +0 -0
  54. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181211.nc +0 -0
  55. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181212.nc +0 -0
  56. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181213.nc +0 -0
  57. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181214.nc +0 -0
  58. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181215.nc +0 -0
  59. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181216.nc +0 -0
  60. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181217.nc +0 -0
  61. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181218.nc +0 -0
  62. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181219.nc +0 -0
  63. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181220.nc +0 -0
  64. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181221.nc +0 -0
  65. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181222.nc +0 -0
  66. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181223.nc +0 -0
  67. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181224.nc +0 -0
  68. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181225.nc +0 -0
  69. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181226.nc +0 -0
  70. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181227.nc +0 -0
  71. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181228.nc +0 -0
  72. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181229.nc +0 -0
  73. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181230.nc +0 -0
  74. qlc/examples/cams_case_1/obs/ebas_daily/v_20240216/201812/ebas_20181231.nc +0 -0
  75. qlc/examples/cams_case_1/obs/ebas_station-locations.csv +50 -0
  76. qlc/install.py +285 -0
  77. qlc/py/__main__.cpython-311-darwin.so +0 -0
  78. qlc/py/averaging.cpython-311-darwin.so +0 -0
  79. qlc/py/bias_plots.cpython-311-darwin.so +0 -0
  80. qlc/py/control.cpython-311-darwin.so +0 -0
  81. qlc/py/io.cpython-311-darwin.so +0 -0
  82. qlc/py/loadmod.cpython-311-darwin.so +0 -0
  83. qlc/py/loadobs.cpython-311-darwin.so +0 -0
  84. qlc/py/logging_utils.cpython-311-darwin.so +0 -0
  85. qlc/py/map_plots.cpython-311-darwin.so +0 -0
  86. qlc/py/matched.cpython-311-darwin.so +0 -0
  87. qlc/py/plot_config.cpython-311-darwin.so +0 -0
  88. qlc/py/plotting.cpython-311-darwin.so +0 -0
  89. qlc/py/plugin_loader.cpython-311-darwin.so +0 -0
  90. qlc/py/processing.cpython-311-darwin.so +0 -0
  91. qlc/py/scatter_plots.cpython-311-darwin.so +0 -0
  92. qlc/py/stations.cpython-311-darwin.so +0 -0
  93. qlc/py/statistics.cpython-311-darwin.so +0 -0
  94. qlc/py/style.cpython-311-darwin.so +0 -0
  95. qlc/py/timeseries_plots.cpython-311-darwin.so +0 -0
  96. qlc/py/utils.cpython-311-darwin.so +0 -0
  97. qlc/py/version.cpython-311-darwin.so +0 -0
  98. qlc/sh/qlc_A1.sh +127 -0
  99. qlc/sh/qlc_B1a.sh +123 -0
  100. qlc/sh/qlc_B2.sh +258 -0
  101. qlc/sh/qlc_C5.sh +825 -0
  102. qlc/sh/qlc_D1.sh +130 -0
  103. qlc/sh/qlc_Z1.sh +165 -0
  104. qlc/sh/qlc_common_functions.sh +157 -0
  105. qlc/sh/qlc_main.sh +127 -0
  106. qlc/sh/qlc_start.sh +23 -0
  107. qlc/sh/qlc_start_batch.sh +46 -0
  108. rc_qlc-0.3.24.dist-info/METADATA +142 -0
  109. rc_qlc-0.3.24.dist-info/RECORD +113 -0
  110. rc_qlc-0.3.24.dist-info/WHEEL +5 -0
  111. rc_qlc-0.3.24.dist-info/entry_points.txt +6 -0
  112. rc_qlc-0.3.24.dist-info/licenses/LICENSE +21 -0
  113. rc_qlc-0.3.24.dist-info/top_level.txt +1 -0
qlc/sh/qlc_B2.sh ADDED
@@ -0,0 +1,258 @@
1
+ #!/bin/sh -e
2
+
3
+ # Source the configuration file to load the settings
4
+ . "$CONFIG_FILE"
5
+ # Include common functions
6
+ source $FUNCTIONS
7
+
8
+ SCRIPT="$0"
9
+ log "________________________________________________________________________________________"
10
+ log "Start ${SCRIPT} at `date`"
11
+ log "Process NC-files (converted grib files of MARS_RETRIEVALS as specified in $CONFIG_FILE) "
12
+ #log "----------------------------------------------------------------------------------------"
13
+ #log "Copyright (c) 2021-2025 ResearchConcepts io GmbH. All Rights Reserved. "
14
+ #log "Questions / comments to: Swen M. Metzger <sm@researchconcepts.io> "
15
+ log "----------------------------------------------------------------------------------------"
16
+
17
+ log "$0 ANALYSIS_DIRECTORY = $ANALYSIS_DIRECTORY"
18
+ pwd -P
19
+
20
+ # module load for ATOS
21
+ myOS="`uname -s`"
22
+ HOST=`hostname -s | awk '{printf $1}' | cut -c 1`
23
+ #log ${HOST} ${ARCH}
24
+ if [ "${HOST}" == "a" ] && [ "${myOS}" != "Darwin" ]; then
25
+ module load cdo
26
+ fi
27
+
28
+ # Check if cdo exists
29
+ if ! command_exists cdo; then
30
+ log "Error: cdo command not found" >&2
31
+ exit 1
32
+ else
33
+ log "Success: cdo command found"
34
+ which cdo
35
+ fi
36
+
37
+ # Check if ncdump exists
38
+ if ! command_exists ncdump; then
39
+ log "Error: ncdump command not found" >&2
40
+ exit 1
41
+ else
42
+ log "Success: ncdump command found"
43
+ which ncdump
44
+ fi
45
+
46
+ # Assign the command line input parameters to variables
47
+ exp1="$1"
48
+ exp2="$2"
49
+ sDat="$3"
50
+ eDat="$4"
51
+ sDate="${sDat//[-:]/}"
52
+ eDate="${eDat//[-:]/}"
53
+ mDate="$sDate-$eDate"
54
+
55
+ exps="$exp1 $exp2"
56
+ for exp in $exps ; do
57
+ log "Processing experiment: $exp"
58
+
59
+ ipath="$MARS_RETRIEVAL_DIRECTORY/$exp"
60
+ tpath="$ANALYSIS_DIRECTORY/$exp"
61
+
62
+ # Create output directory if not existent
63
+ if [ ! -d "$tpath" ]; then
64
+ mkdir -p "$tpath"
65
+ fi
66
+
67
+ for name in "${MARS_RETRIEVALS[@]}"; do
68
+
69
+ # Define the corresponding arrays based on the name
70
+ param_var="param_${name}[@]"
71
+ ncvar_var="ncvar_${name}[@]"
72
+ myvar_var="myvar_${name}[@]"
73
+
74
+ # Use variable indirection to access the arrays
75
+ param=("${!param_var}")
76
+ ncvar=("${!ncvar_var}")
77
+ myvar=("${!myvar_var}")
78
+
79
+ log "name : ${name}"
80
+ log "param: ${param}"
81
+ log "ncvar: ${ncvar}"
82
+ log "myvar: ${myvar}"
83
+
84
+ cd $ipath
85
+
86
+ set +e
87
+ # List available NC-files
88
+ # ncfiles=($(ls *${mDate}*_${name}_*.nc))
89
+ ncfiles=($(ls *${mDate}*_${name}*.nc))
90
+ set -e
91
+
92
+ log "ncfiles : ${ncfiles}"
93
+
94
+ cd $tpath
95
+
96
+ # Loop through the variables for this $name
97
+ for ((i = 0; i < ${#ncvar[@]}; i++)); do
98
+ ncvar_name="${ncvar[i]}"
99
+ myvar_name="${myvar[i]}"
100
+ log "ncvar_name: ${ncvar_name}"
101
+ log "myvar_name: ${myvar_name}"
102
+
103
+ if [ ${#ncfiles[@]} -eq 0 ]; then
104
+ log "No NC-files found in $MARS_RETRIEVAL_DIRECTORY/$exp"
105
+ else
106
+ log "Files to process: ${ncfiles[@]}"
107
+ log "----------------------------------------------------------------------------------------"
108
+ for file in "${ncfiles[@]}"; do
109
+ # log "$file"
110
+ ncfile="$file"
111
+
112
+ vars="$(ncdump -h "$ipath/$ncfile" | grep float | sed 's|(| |g' | awk '{printf("%20s", $2)}')"
113
+ log "nc-file variables: $vars"
114
+
115
+ # Extract the data level type
116
+ ltype="_$(echo "$file" | awk -F'_' '{print $4}' | cut -d'.' -f1)"
117
+ log "Data level type: $ltype - $file / $exp"
118
+
119
+ cdo zaxisdes $ipath/$ncfile > $tpath/zaxisdes
120
+ head -61 $tpath/zaxisdes > $tpath/zaxis1
121
+
122
+ for var in ${vars[@]}; do
123
+
124
+ GO="NO"
125
+ setctomiss="setctomiss,-999"
126
+ sellevel=""
127
+ log "var: ${var}"
128
+
129
+ if [ "$ncvar_name" == "$var" ]; then
130
+ variable_rename="$myvar_name"
131
+ log "ncvar_name / myvar_name: $ncvar_name / $variable_rename"
132
+ GO="GO"
133
+ fi
134
+
135
+ case "$variable_rename" in
136
+ "EQdiag")
137
+ GO="GO2"
138
+ # declare -a dvars=("GFh2o" "GFhsa" "GFhna" "GFhca" "GFxam" "GFalc" "GFasu" "GFahs" "GFano" "GFacl" "GFslc" "GFssu" "GFshs" "GFsno" "GFscl" "GFplc" "GFpsu" "GFphs" "GFpno" "GFpcl" "GFc01" "GFcsu" "GFc02" "GFcno" "GFccl" "GFm01" "GFmsu" "GFm02" "GFmno" "GFmcl" "AWh2o" "AWhsa" "AWhna" "AWhca" "AWxam" "AWalc" "AWasu" "AWahs" "AWano" "AWacl" "AWslc" "AWssu" "AWshs" "AWsno" "AWscl" "AWplc" "AWpsu" "AWphs" "AWpno" "AWpcl" "AWc01" "AWcsu" "AWc02" "AWcno" "AWccl" "AWm01" "AWmsu" "AWm02" "AWmno" "AWmcl" "EQpH1" "EQpH2" "EQpH3" "EQpH4" "EQpH5" "EQAW1" "EQAW2" "EQAW3" "EQAW4" "EQAD" "EQHp" "EQPMt" "EQPMs" "EQsPM" "EQaPM" "EQRHO" "EQGF" "EQTT" "EQRH" "EQP")
139
+ # declare -a nvars=( "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")
140
+ declare -a nvars=( "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" )
141
+ # declare -a dvars=("pHtot" "pHaeq" "pHaer" "pHcld" "pHpre" "GFalc" "GFasu" "GFahs" "GFano" "GFacl" "GFslc" "GFssu" "GFshs" "GFsno" "GFscl" "GFplc" "GFpsu" "GFphs" "GFpno" "GFpcl" "GFc01" "GFcsu" "GFc02" "GFcno" "GFccl" "GFm01" "GFmsu" "GFm02" "GFmno" "GFmcl" "LWtot" "LWaeq" "LWaer" "LWcld" "LWpre" "AWalc" "AWasu" "AWahs" "AWano" "AWacl" "AWslc" "AWssu" "AWshs" "AWsno" "AWscl" "AWplc" "AWpsu" "AWphs" "AWpno" "AWpcl" "AWc01" "AWcsu" "AWc02" "AWcno" "AWccl" "AWm01" "AWmsu" "AWm02" "AWmno" "AWmcl" "eq_TT" "eq_RH" "eq__P" "eq_ID" "eqPMt" "eqPMs" "eqsPM" "eqaPM" "eqRHO" "eq_Hp" "eq_GF")
142
+ declare -a dvars=("pHtot" "pHaeq" "pHaer" "pHcld" "pHpre" "GFalc" "GFasu" "GFahs" "GFano" "GFacl" "GFslc" "GFssu" "GFshs" "GFsno" "GFscl" "GFplc" "GFpsu" "GFphs" "GFpno" "GFpcl" "GFc01" "GFcsu" "GFc02" "GFcno" "GFccl" "GFm01" "GFmsu" "GFm02" "GFmno" "GFmcl" "LWtot" "LWaeq" "LWaer" "LWcld" "LWpre" "AWalc" "AWasu" "AWahs" "AWano" "AWacl" "AWslc" "AWssu" "AWshs" "AWsno" "AWscl" "AWplc" "AWpsu" "AWphs" "AWpno" "AWpcl" "AWc01" "AWcsu" "AWc02" "AWcno" "AWccl" "AWm01" "AWmsu" "AWm02" "AWmno" "AWmcl" "eqTT" "eqRH" "eqP" "eqID" "eqPMt" "eqPMs" "eqsPM" "eqaPM" "eqRHO" "eqHp" "eqGF")
143
+ # declare -a nvars=( "1" "2" "3" "4" "5" )
144
+ # declare -a dvars=("pHtot" "pHaeq" "pHaer" "pHcld" "pHpre")
145
+ ;;
146
+ esac
147
+
148
+ varn="$variable_rename"
149
+
150
+ if [ "${ltype}" == "_pl" ]; then
151
+ tfile=`echo $ncfile | sed "s|${ltype}\.nc|${ltype}_${varn}\.nc|g"`
152
+ else
153
+ # tfile=`echo $ncfile | sed "s|${ltype}\.nc|_${varn}\.nc|g"`
154
+ tfile=`echo $ncfile | sed "s|${ltype}\.nc|${ltype}_${varn}\.nc|g"`
155
+ fi
156
+
157
+ if [ "${ltype}" == "_sfc" ]; then
158
+ setzaxis="-setzaxis,$tpath/zaxis1"
159
+ else
160
+ setzaxis=""
161
+ fi
162
+
163
+ if [ -f "$tpath/$tfile" ] && [ "$ncvar_name" == "$var" ]; then
164
+ GO="NO"
165
+ log "renaming $ncvar_name of $ncfile to $tfile"
166
+ log "Nothing to do, target file exists:"
167
+ ls -lh $tpath/$tfile
168
+ elif [ ! -f "$tpath/$tfile" ] && [ "$ncvar_name" == "$var" ]; then
169
+ log "renaming $ncvar_name of $ncfile to $tfile"
170
+ log $tpath/zaxis1
171
+ cat $tpath/zaxis1
172
+ # else
173
+ # log "No renaming for $ncvar_name != $var of $ncfile to $tfile"
174
+ fi
175
+
176
+ if [ "${GO}" == "GO" ]; then
177
+ log "----------------------------------------------------------------------------------------"
178
+ log "cdo ${setctomiss} ${setzaxis} -setcalendar,standard -chname,level,lev -chname,longitude,lon -chname,latitude,lat -chname,$var,${varn} ${sellevel} -selvar,$var $ipath/$ncfile $tpath/$tfile"
179
+ cdo ${setctomiss} ${setzaxis} -setcalendar,standard -chname,level,lev -chname,longitude,lon -chname,latitude,lat -chname,$var,${varn} ${sellevel} -selvar,$var $ipath/$ncfile $tpath/$tfile
180
+ ls -lh $tpath/$tfile
181
+ log "----------------------------------------------------------------------------------------"
182
+ fi # GO
183
+
184
+ # log "add time average"
185
+ xfile=`echo $tfile | sed "s|${varn}\.nc|${varn}_tavg\.nc|g"`
186
+ if [ -f "$tpath/$xfile" ]; then
187
+ log "Nothing to do, target file exists: $tpath/$xfile"
188
+ else
189
+ log "cdo timavg $tpath/$tfile $tpath/$xfile"
190
+ cdo timavg $tpath/$tfile $tpath/$xfile
191
+ fi
192
+ ls -lh $tpath/$xfile
193
+
194
+ done # var
195
+
196
+ if [ "${GO}" == "GO2" ]; then
197
+ if [ ${#dvars[@]} -ne ${#nvars[@]} ]; then
198
+ log "Error: Arrays have different lengths."
199
+ exit 1
200
+ fi
201
+ EQdiag="$tpath/$tfile"
202
+ for ((i=0; i<${#dvars[@]}; i++)); do
203
+ dvar="${dvars[$i]}"
204
+ nvar="${nvars[$i]}"
205
+
206
+ log "dvar: ${dvar}"
207
+ log "nvar: ${nvar}"
208
+ varn="${dvar}"
209
+ lev="${nvar}"
210
+ sellevel="-sellevel,${lev}"
211
+ tfile=`echo $ncfile | sed "s|${ltype}\.nc|_${varn}\.nc|g"`
212
+ if [ -f "$tpath/$tfile" ]; then
213
+ log "Nothing to do, target file exists: $tpath/$tfile"
214
+ else
215
+ log "cdo ${setctomiss} ${setzaxis} -setcalendar,standard -chname,level,lev -chname,longitude,lon -chname,latitude,lat -chname,$var,${varn} ${sellevel} -selvar,$var $ipath/$ncfile $tpath/$tfile"
216
+ cdo ${setctomiss} ${setzaxis} -setcalendar,standard -chname,level,lev -chname,longitude,lon -chname,latitude,lat -chname,$var,${varn} ${sellevel} -selvar,$var $ipath/$ncfile $tpath/$tfile
217
+ fi
218
+ ls -lh $tpath/$tfile
219
+
220
+ # log "add time average"
221
+ xfile=`echo $tfile | sed "s|${varn}\.nc|${varn}_tavg\.nc|g"`
222
+ if [ -f "$tpath/$xfile" ]; then
223
+ log "Nothing to do, target file exists: $tpath/$xfile"
224
+ else
225
+ log "cdo timavg $tpath/$tfile $tpath/$xfile"
226
+ cdo timavg $tpath/$tfile $tpath/$xfile
227
+ fi
228
+ ls -lh $tpath/$xfile
229
+
230
+ done
231
+ # link last entry to EQdiag.nc
232
+ ln -s $tpath/$tfile $EQdiag
233
+ # ln -s $tpath/$xfile $EQdiag_tavg
234
+ fi
235
+
236
+ if [ "${GO}" == "GO" ] || [ "${GO}" == "GO2" ] ;then
237
+ log "----------------------------------------------------------------------------------------"
238
+ log "rm $ipath/$ncfile"
239
+ # rm $ipath/$ncfile
240
+ log "----------------------------------------------------------------------------------------"
241
+ fi # GO/GO2
242
+
243
+ done # file
244
+ log "----------------------------------------------------------------------------------------"
245
+ fi
246
+
247
+ done # ncvar
248
+ done # name
249
+ done # exps
250
+
251
+ log "$ipath"
252
+ log "$tpath"
253
+
254
+ log "----------------------------------------------------------------------------------------"
255
+ log "End ${SCRIPT} at `date`"
256
+ log "________________________________________________________________________________________"
257
+
258
+ exit 0