Changeset 1375 for tags/libIGCM_v3.0_beta1/libIGCM_comp/libIGCM_comp.ksh
- Timestamp:
- 01/11/17 16:44:40 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tags/libIGCM_v3.0_beta1/libIGCM_comp/libIGCM_comp.ksh
r1373 r1375 79 79 eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_O} 80 80 81 eval R_OUT_${comp}_A=\${R_OUT_${comp}}/Analyse 82 eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_A} 83 81 84 eval R_OUT_${comp}_R=\${R_OUT_${comp}}/Restart 82 85 [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_R} … … 85 88 [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_D} 86 89 87 eval R_OUT_${comp}_O_I=\${R_OUT_${comp}_O}/INS88 90 eval R_OUT_${comp}_O_H=\${R_OUT_${comp}_O}/HF 89 91 eval R_OUT_${comp}_O_D=\${R_OUT_${comp}_O}/DA … … 91 93 eval R_OUT_${comp}_O_Y=\${R_OUT_${comp}_O}/YE 92 94 95 eval R_OUT_${comp}_A_H=\${R_OUT_${comp}_A}/TS_HF 96 eval R_OUT_${comp}_A_D=\${R_OUT_${comp}_A}/TS_DA 97 eval R_OUT_${comp}_A_M=\${R_OUT_${comp}_A}/TS_MO 98 eval R_OUT_${comp}_A_Y=\${R_OUT_${comp}_A}/TS_YE 99 93 100 # Define BUFFERED Dirs 94 101 if ( [ ! ${config_Post_PackFrequency} = NONE ] || [ X${config_UserChoices_SpaceName} = XTEST ] ) ; then … … 99 106 eval IGCM_sys_Mkdir \${R_BUF_${comp}_O} 100 107 108 eval R_BUF_${comp}_A=\${R_BUF_${comp}}/Analyse 109 eval IGCM_sys_Mkdir \${R_BUF_${comp}_A} 110 101 111 eval R_BUF_${comp}_R=\${R_BUF_${comp}}/Restart 102 112 eval IGCM_sys_Mkdir \${R_BUF_${comp}_R} … … 105 115 eval IGCM_sys_Mkdir \${R_BUF_${comp}_D} 106 116 107 eval R_BUF_${comp}_O_I=\${R_BUF_${comp}_O}/INS108 117 eval R_BUF_${comp}_O_H=\${R_BUF_${comp}_O}/HF 109 118 eval R_BUF_${comp}_O_D=\${R_BUF_${comp}_O}/DA 110 119 eval R_BUF_${comp}_O_M=\${R_BUF_${comp}_O}/MO 111 120 eval R_BUF_${comp}_O_Y=\${R_BUF_${comp}_O}/YE 121 122 eval R_BUF_${comp}_A_H=\${R_BUF_${comp}_A}/TS_HF 123 eval R_BUF_${comp}_A_D=\${R_BUF_${comp}_A}/TS_DA 124 eval R_BUF_${comp}_A_M=\${R_BUF_${comp}_A}/TS_MO 125 eval R_BUF_${comp}_A_Y=\${R_BUF_${comp}_A}/TS_YE 112 126 fi 113 127 … … 161 175 IGCM_debug_Verif_Exit 162 176 fi 163 # 164 # Seasonal case : If option Seasonal is not found (old cards) put SEASONAL ON by default 165 # 166 # variable option allready typeset above 167 for option in $( eval echo \${${compname}_${flag_post}[*]} ) ; do 168 if [ ${option} = Seasonal ] ; then 169 FoundSeasonal=true 170 IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal 171 fi 172 done 173 # 174 if [ ! X${FoundSeasonal} = Xtrue ] ; then 175 eval ${compname}_${flag_post}_Seasonal=ON 176 fi 177 # 177 178 # Do have seasonal average enabled 179 IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal 178 180 if [ $( eval echo \${${compname}_${flag_post}_Seasonal} ) = ON ] ; then 179 181 Seasonal=true 180 182 fi 181 183 182 # Dimension = vide si vieille card. 183 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 184 # Read the Patches Option 184 185 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 185 if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then186 # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob.187 ListDimension[0]=2D188 ListDimension[1]=3D189 TimeSeries=false190 iLoop=${#ListDimension[*]}191 j=0192 until [ $j -ge ${iLoop} ]; do193 Dimension=${ListDimension[${j}]}194 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension}195 IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension}196 #197 # Time series WITHOUT chunk198 #199 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then200 if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then201 IGCM_debug_Print 3 "${Dimension} time series activated for ${flag_post}"202 eval TimeSeries${Dimension}=true203 fi204 fi205 #206 # Time series WITH chunk207 #208 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then209 chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} )210 if [ ! ${chunck_size} = NONE ] && [ ! ${chunck_size} = OFF ] ; then211 IGCM_debug_Print 3 "${Dimension} time series activated with chunck for ${flag_post}"212 eval TimeSeriesChunck${Dimension}=true213 eval CHUNCK${Dimension}_COMP[\${#CHUNCK${Dimension}_COMP[*]}]=${comp}214 eval CHUNCK${Dimension}_FLAG[\${#CHUNCK${Dimension}_FLAG[*]}]=${i}215 eval CHUNCK${Dimension}_NAME[\${#CHUNCK${Dimension}_NAME[*]}]=${flag_post}216 eval CHUNCK${Dimension}_SIZE[\${#CHUNCK${Dimension}_SIZE[*]}]=${chunck_size}217 fi218 fi219 (( j=j+1 ))220 done221 else222 ListDimension[0]=""223 TimeSeries=true224 TimeSeries2D=false225 TimeSeries3D=false226 TimeSeriesChunck2D=false227 TimeSeriesChunck3D=false228 fi229 186 fi 230 187 (( i=i+3 )) … … 267 224 fi 268 225 if [ $( echo ${file} | grep "^file_def_" | wc -l ) = 1 ] ; then 226 eval FileDef[${#FileDef[@]}]=${file} > /dev/null 2>&1 227 fi 228 if [ $( echo ${file} | grep "^timeseries_def_" | wc -l ) = 1 ] ; then 269 229 eval FileDef[${#FileDef[@]}]=${file} > /dev/null 2>&1 270 230 fi … … 1400 1360 # Case to modify the variable itself 1401 1361 IGCM_debug_Print 1 "Now modify ${filein} for id=${keyid} by setting the variable=${value}" 1402 sed -e "s /\(<[^\"]*\"${keyid}\".*>\)\([^<]*\)\(<[^>]*\)/\1${value}\3/" ${filein} > ${filein}.tmp1362 sed -e "s:\(<[^\"]*\"${keyid}\".*>\)\([^<]*\)\(<[^>]*\):\1${value}\3:" ${filein} > ${filein}.tmp 1403 1363 else 1404 1364 # Check if keyattrib is set on the same line as keyid … … 1406 1366 # Case to modify the attribute value 1407 1367 IGCM_debug_Print 1 "Now modify ${filein} for id=${keyid} by setting attribute to ${keyattrib}=${value}" 1408 sed -e "/id=\"${keyid}\"/s /\(${keyattrib}=\"\)[^\"]*\(\"\)/\1${value}\2/" ${filein} > ${filein}.tmp1368 sed -e "/id=\"${keyid}\"/s:\(${keyattrib}=\"\)[^\"]*\(\"\):\1${value}\2:" ${filein} > ${filein}.tmp 1409 1369 else 1410 1370 # Case to add the attribute and its value 1411 1371 IGCM_debug_Print 1 "Now add in ${filein} for id=${keyid} the attribute ${keyattrib} to the value ${value}" 1412 sed -e "/id=\"${keyid}\"/s /\/>/ ${keyattrib}=\"${value}\"\/>/" ${filein} > ${filein}.tmp1372 sed -e "/id=\"${keyid}\"/s:\/>: ${keyattrib}=\"${value}\"\/>:" ${filein} > ${filein}.tmp 1413 1373 fi 1414 1374 fi … … 1460 1420 # UPDATE component 1461 1421 ${comp}_Update 1422 1423 set -vx 1424 1425 # Read TimeSeries information from XML files, prepare TS directories and do modifications in timeseries_def_${compname}.xml 1426 if [ -f timeseries_def_${compname}.xml ]; then 1427 ${libIGCM}/libIGCM_post/xios_parser.py tsquery --file timeseries_def_${compname}.xml > ts.temp.${compname}.txt 1428 for line in $( cat ts.temp.${compname}.txt ); do 1429 id=$( echo ${line} | awk -F "," '{print $1}' | awk -F "=" '{print $2}' ) 1430 output_freq=$( echo ${line} | awk -F "," '{print $2}' | awk -F "=" '{print $2}' ) 1431 case ${output_freq} in 1432 *Y|*y) 1433 eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_Y} 1434 eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_Y}/${config_UserChoices_JobName} 1435 ;; 1436 *MO|*mo) 1437 eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_M} 1438 eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_M}/${config_UserChoices_JobName} 1439 ;; 1440 *D|*d) 1441 eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_D} 1442 eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_D}/${config_UserChoices_JobName} 1443 ;; 1444 *S|*s) 1445 eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_H} 1446 eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_H}/${config_UserChoices_JobName} 1447 ;; 1448 esac 1449 done 1450 fi 1451 1452 set +vx 1462 1453 1463 1454 done
Note: See TracChangeset
for help on using the changeset viewer.