Changeset 804 for trunk/libIGCM/libIGCM_comp
- Timestamp:
- 02/22/13 16:01:21 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_comp/libIGCM_comp.ksh
r801 r804 79 79 80 80 eval R_OUT_${comp}_R=\${R_OUT_${comp}}/Restart 81 eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_R}81 [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_R} 82 82 83 83 eval R_OUT_${comp}_D=\${R_OUT_${comp}}/Debug 84 eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_D}84 [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_D} 85 85 86 86 eval R_OUT_${comp}_O_I=\${R_OUT_${comp}_O}/INS … … 91 91 92 92 # Define BUFFERED Dirs 93 eval R_BUF_${comp}=${R_BUFR}/${comp} 94 eval IGCM_sys_Mkdir \${R_BUF_${comp}} 95 96 eval R_BUF_${comp}_O=\${R_BUF_${comp}}/Output 97 eval IGCM_sys_Mkdir \${R_BUF_${comp}_O} 98 99 eval R_BUF_${comp}_R=\${R_BUF_${comp}}/Restart 100 eval IGCM_sys_Mkdir \${R_BUF_${comp}_R} 101 102 eval R_BUF_${comp}_D=\${R_BUF_${comp}}/Debug 103 eval IGCM_sys_Mkdir \${R_BUF_${comp}_D} 104 105 eval R_BUF_${comp}_O_I=\${R_BUF_${comp}_O}/INS 106 eval R_BUF_${comp}_O_H=\${R_BUF_${comp}_O}/HF 107 eval R_BUF_${comp}_O_D=\${R_BUF_${comp}_O}/DA 108 eval R_BUF_${comp}_O_M=\${R_BUF_${comp}_O}/MO 109 eval R_BUF_${comp}_O_Y=\${R_BUF_${comp}_O}/YE 93 if [ ! ${config_Post_PackFrequency} = NONE ] ; then 94 eval R_BUF_${comp}=${R_BUFR}/${comp} 95 eval IGCM_sys_Mkdir \${R_BUF_${comp}} 96 97 eval R_BUF_${comp}_O=\${R_BUF_${comp}}/Output 98 eval IGCM_sys_Mkdir \${R_BUF_${comp}_O} 99 100 eval R_BUF_${comp}_R=\${R_BUF_${comp}}/Restart 101 eval IGCM_sys_Mkdir \${R_BUF_${comp}_R} 102 103 eval R_BUF_${comp}_D=\${R_BUF_${comp}}/Debug 104 eval IGCM_sys_Mkdir \${R_BUF_${comp}_D} 105 106 eval R_BUF_${comp}_O_I=\${R_BUF_${comp}_O}/INS 107 eval R_BUF_${comp}_O_H=\${R_BUF_${comp}_O}/HF 108 eval R_BUF_${comp}_O_D=\${R_BUF_${comp}_O}/DA 109 eval R_BUF_${comp}_O_M=\${R_BUF_${comp}_O}/MO 110 eval R_BUF_${comp}_O_Y=\${R_BUF_${comp}_O}/YE 111 fi 110 112 111 113 # Read UserChoices section of component card … … 113 115 IGCM_card_DefineArrayFromSection ${card} UserChoices 114 116 eval first_option=\${${compname}_UserChoices[0]} > /dev/null 2>&1 117 115 118 # If section is not empty we define corresponding variables 116 119 if [ X${first_option} != X"Error:" ] ; then … … 991 994 card=${SUBMIT_DIR}/COMP/${compname}.card 992 995 996 # Save Output Text files of models 997 #--------------------------------- 998 IGCM_debug_Print 2 "Save Output Text files for ${comp} : ${compname} component." 999 IGCM_card_DefineArrayFromOption ${card} OutputText List 1000 ListTextName=${compname}_OutputText_List 1001 1002 eval TextName0=\${${ListTextName}[0]} > /dev/null 2>&1 1003 if [ X${TextName0} != X${NULL_STR} ] ; then 1004 eval NbFiles=\${#${ListTextName}[@]} > /dev/null 2>&1 1005 1006 (( i=0 )) 1007 until [ $i -eq $NbFiles ]; do 1008 eval file_in=\${${ListTextName}[$i]} > /dev/null 2>&1 1009 eval file_out=${PREFIX}_${file_in} 1010 1011 (( i=i+1 )) 1012 1013 unset list_file 1014 #set +A list_file -- $( ls ${file_in}* | sort 2>/dev/null ) 1015 # result for a a1 a10 a2 with file_in=a a a1 a2 a10 1016 set +A list_file -- $( [ -f ${file_in} ] && ls ${file_in} ; for i in $(ls ${file_in}* 2>/dev/null | sed "s/${file_in}//" | sort -n) ; do ls ${file_in}$i ; done ) 1017 nlist_file=${#list_file[@]} 1018 if [ ${nlist_file} -gt 1 ] ; then 1019 if ( ${compactoutputs} ) ; then 1020 IGCM_debug_Print 2 "Parallelism of Text Output with ${nlist_file} files." 1021 IGCM_debug_Print 2 "Compact files in ${file_out} : " ${list_file[*]} 1022 echo ${list_file[*]} > ${file_out} 1023 echo " 1024 " >> ${file_out} 1025 1026 (( i_ = 0 )) 1027 for file in ${list_file[@]} 1028 do 1029 echo "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ " >> ${file_out} 1030 echo "| " ${i_} " " ${file} >> ${file_out} 1031 echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " >> ${file_out} 1032 cat ${file} | sed "s/\(.*\)/${i_}\1/" ${file} >> ${file_out} 1033 echo " 1034 " >> ${file_out} 1035 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1 1036 (( i_ = i_ + 1 )) 1037 done 1038 if [ X${Pack} = Xtrue ] ; then 1039 eval IGCM_sys_PutBuffer_Out ${file_out} \${R_BUF_${comp}_D}/${file_out} 1040 else 1041 eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}_D}/${file_out} 1042 fi 1043 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_out}" > /dev/null 2>&1 1044 1045 if ( ${ExecutionFail} ) ; then 1046 IGCM_sys_Cp ${file_out} ${SUBMIT_DIR}/Debug 1047 fi 1048 else 1049 for file in ${list_file[@]} 1050 do 1051 if [ X${Pack} = Xtrue ] ; then 1052 eval IGCM_sys_PutBuffer_Out ${file} \${R_BUF_${comp}_D}/${PREFIX}_${file} 1053 else 1054 eval IGCM_sys_Put_Out ${file} \${R_OUT_${comp}_D}/${PREFIX}_${file} 1055 fi 1056 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1 1057 1058 if ( ${ExecutionFail} ) ; then 1059 IGCM_sys_Cp ${file} ${SUBMIT_DIR}/Debug/${PREFIX}_${file} 1060 fi 1061 done 1062 fi 1063 else 1064 if ( [ -f ${file_in}_0000 ] || [ -f ${file_in}0 ] ) ; then 1065 eval IGCM_sys_Mv ${file_in}* ${file_in} 1066 fi 1067 if [ X${Pack} = Xtrue ] ; then 1068 eval IGCM_sys_PutBuffer_Out ${file_in} \${R_BUF_${comp}_D}/${file_out} 1069 else 1070 eval IGCM_sys_Put_Out ${file_in} \${R_OUT_${comp}_D}/${file_out} 1071 fi 1072 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 1073 1074 if ( ${ExecutionFail} ) ; then 1075 IGCM_sys_Cp ${file_in} ${SUBMIT_DIR}/Debug/${file_out} 1076 fi 1077 fi 1078 done 1079 fi 1080 993 1081 # Save Restarts files 994 1082 #-------------------- … … 1096 1184 # 1097 1185 if ( [ ${nb_rebuild_file} -eq 1 ] && [ -f ${generic_file_name}_0000.nc ] ) ; then 1098 IGCM_debug_Print 2 "Parallelism with 1 process. Rebuilding ${file_in} not needed"1186 IGCM_debug_Print 2 "Parallelism with 1 file. Rebuilding ${file_in} not needed" 1099 1187 IGCM_sys_Mv ${generic_file_name}_0000.nc ${file_in} 1100 1188 elif [ ${nb_rebuild_file} -gt 1 ] ; then 1101 IGCM_debug_Print 2 "Parallelism detected rebuilding ${file_in} is needed"1189 IGCM_debug_Print 2 "Parallelism detected and rebuilding ${file_in} is needed" 1102 1190 if [ X${AsynchronousRebuild} = Xfalse ] ; then 1103 1191 IGCM_debug_Print 2 "Rebuilding ${file_in} online" … … 1219 1307 done 1220 1308 fi 1221 1222 # Save Output Text files of models1223 #---------------------------------1224 IGCM_debug_Print 2 "Save Output Text files for ${comp} : ${compname} component."1225 IGCM_card_DefineArrayFromOption ${card} OutputText List1226 ListTextName=${compname}_OutputText_List1227 1228 eval TextName0=\${${ListTextName}[0]} > /dev/null 2>&11229 if [ X${TextName0} != X${NULL_STR} ] ; then1230 eval NbFiles=\${#${ListTextName}[@]} > /dev/null 2>&11231 1232 (( i=0 ))1233 until [ $i -eq $NbFiles ]; do1234 eval file_in=\${${ListTextName}[$i]} > /dev/null 2>&11235 eval file_out=${PREFIX}_${file_in}1236 1237 (( i=i+1 ))1238 1239 unset list_file1240 #set +A list_file -- $( ls ${file_in}* | sort 2>/dev/null )1241 # result for a a1 a10 a2 with file_in=a a a1 a2 a101242 set +A list_file -- $( [ -f ${file_in} ] && ls ${file_in} ; for i in $(ls ${file_in}* 2>/dev/null | sed "s/${file_in}//" | sort -n) ; do ls ${file_in}$i ; done )1243 nlist_file=${#list_file[@]}1244 if [ ${nlist_file} -gt 1 ] ; then1245 if ( ${compactoutputs} ) ; then1246 IGCM_debug_Print 2 "Parallelism of Text Output with ${nlist_file} files."1247 IGCM_debug_Print 2 "Compact files in ${file_out} : " ${list_file[*]}1248 echo ${list_file[*]} > ${file_out}1249 echo "1250 " >> ${file_out}1251 1252 (( i_ = 0 ))1253 for file in ${list_file[@]}1254 do1255 echo "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ " >> ${file_out}1256 echo "| " ${i_} " " ${file} >> ${file_out}1257 echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " >> ${file_out}1258 cat ${file} | sed "s/\(.*\)/${i_}\1/" ${file} >> ${file_out}1259 echo "1260 " >> ${file_out}1261 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&11262 (( i_ = i_ + 1 ))1263 done1264 if [ X${Pack} = Xtrue ] ; then1265 eval IGCM_sys_PutBuffer_Out ${file_out} \${R_BUF_${comp}_D}/${file_out}1266 else1267 eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}_D}/${file_out}1268 fi1269 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_out}" > /dev/null 2>&11270 1271 if ( ${ExecutionFail} ) ; then1272 IGCM_sys_Cp ${file_out} ${SUBMIT_DIR}/Debug1273 fi1274 else1275 for file in ${list_file[@]}1276 do1277 if [ X${Pack} = Xtrue ] ; then1278 eval IGCM_sys_PutBuffer_Out ${file} \${R_BUF_${comp}_D}/${PREFIX}_${file}1279 else1280 eval IGCM_sys_Put_Out ${file} \${R_OUT_${comp}_D}/${PREFIX}_${file}1281 fi1282 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&11283 1284 if ( ${ExecutionFail} ) ; then1285 IGCM_sys_Cp ${file} ${SUBMIT_DIR}/Debug/${PREFIX}_${file}1286 fi1287 done1288 fi1289 else1290 if ( [ -f ${file_in}_0000 ] || [ -f ${file_in}0 ] ) ; then1291 eval IGCM_sys_Mv ${file_in}* ${file_in}1292 fi1293 if [ X${Pack} = Xtrue ] ; then1294 eval IGCM_sys_PutBuffer_Out ${file_in} \${R_BUF_${comp}_D}/${file_out}1295 else1296 eval IGCM_sys_Put_Out ${file_in} \${R_OUT_${comp}_D}/${file_out}1297 fi1298 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&11299 1300 if ( ${ExecutionFail} ) ; then1301 IGCM_sys_Cp ${file_in} ${SUBMIT_DIR}/Debug/${file_out}1302 fi1303 fi1304 done1305 fi1306 1309 echo 1307 1310 done
Note: See TracChangeset
for help on using the changeset viewer.