Changeset 149 for trunk/libIGCM/libIGCM_comp
- Timestamp:
- 08/12/09 17:31:05 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_comp/libIGCM_comp.ksh
r100 r149 80 80 eval R_OUT_${comp}_O_Y=\${R_OUT_${comp}_O}/YE 81 81 82 83 82 # Read UserChoices section of component card 84 IGCM_debug_Print 1 "DefineArrayFrom Option: ${compname}_UserChoices ${card}"83 IGCM_debug_Print 1 "DefineArrayFromSection : ${compname}_UserChoices ${card}" 85 84 IGCM_card_DefineArrayFromSection ${card} UserChoices 86 85 eval first_option=\${${compname}_UserChoices[0]} > /dev/null 2>&1 … … 98 97 fi 99 98 99 # Read and Build Output File stuff 100 IGCM_debug_Print 1 "DefineArrayFromOption : ${compname}_OutputFiles ${card}" 101 IGCM_card_DefineArrayFromOption ${card} OutputFiles List 102 ListFilesName=${compname}_OutputFiles_List 103 eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 104 # 105 if [ X${FileName0} != X${NULL_STR} ] ; then 106 # 107 #IGCM_debug_Print 1 "Component : ${compname}" 108 # 109 # INITIALISATION 110 # 111 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 112 typeset i=2 113 # 114 #set -vx 115 until [ $i -ge $NbFiles ]; do 116 # 117 eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 118 # 119 if [ X${flag_post} != XNONE ] ; then 120 # A mettre demain (11/08/2009) : dépendance Dimension 2D:3D 121 # Dimension = vide si vieille card. 122 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 123 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 124 if [ "$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = "Option not found ${flag_post}" ] ; then 125 # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 126 ListDimension="2D 3D" 127 TimeSeries=false 128 for Dimension in ${ListDimension} ; do 129 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 130 IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 131 # 132 # Time series WITHOUT chunk 133 # 134 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 135 if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 136 IGCM_debug_Print 3 "${Dimension} time series activated for ${flag_post} according to ${card}" 137 eval TimeSeries${Dimension}=true 138 fi 139 fi 140 # 141 # Time series WITH chunk 142 # 143 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 144 chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 145 if [ ! ${chunck_size} = NONE ] ; then 146 IGCM_debug_Print 3 "${Dimension} time series activated with chunck for ${flag_post} according to ${card}" 147 eval TimeSeriesChunck${Dimension}=true 148 eval set +A CHUNCK${Dimension}_COMP \${CHUNCK${Dimension}_COMP[*]} ${comp} 149 eval set +A CHUNCK${Dimension}_FLAG \${CHUNCK${Dimension}_FLAG[*]} ${i} 150 eval set +A CHUNCK${Dimension}_SIZE \${CHUNCK${Dimension}_SIZE[*]} ${chunck_size} 151 fi 152 fi 153 done 154 else 155 ListDimension="" 156 TimeSeries=true 157 TimeSeries2D=false 158 TimeSeries3D=false 159 TimeSeriesChunck2D=false 160 TimeSeriesChunck3D=false 161 fi 162 fi 163 (( i=i+3 )) 164 done 165 #set +vx 166 fi 100 167 # Debug Print 101 168 IGCM_debug_Print 3 "Initialize ${compname} with driver." … … 105 172 done 106 173 echo "-----" 107 108 174 echo 109 175 IGCM_debug_Print 1 "DefineArrayFromOption : ListOfComponents" … … 640 706 eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 641 707 eval file_out=${file_out_} 708 (( i_ = i+2 )) 709 eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1 642 710 # 643 711 generic_file_name=$( basename ${file_in} .nc ) … … 656 724 [ ! -d ${RUN_DIR}/REBUILD_${PeriodDateBegin} ] && IGCM_sys_Mkdir ${RUN_DIR}/REBUILD_${PeriodDateBegin} 657 725 IGCM_sys_Mv ${generic_file_name}_????.nc ${RUN_DIR}/REBUILD_${PeriodDateBegin} 726 # Attention au quota si on tourne dans un RUN_DIR_PATH maison 727 for DelFile in $( ls REBUILD_${PeriodDateBegin}/* | grep "${generic_file_name}[_0-9]*.nc" ) ; do 728 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 729 done 730 658 731 # Prepare headers for the shell dedicated to offline rebuild 659 732 if [ ! -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 660 echo \#!/bin/ksh > ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh661 echo function IGCM_FlushRebuild >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh662 echo { >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh663 echo IGCM_debug_PushStack "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh664 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh665 echo IGCM_debug_Print 1 "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh666 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh733 echo \#!/bin/ksh > ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 734 echo function IGCM_FlushRebuild >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 735 echo { >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 736 echo IGCM_debug_PushStack "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 737 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 738 echo IGCM_debug_Print 1 "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 739 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 667 740 fi 668 741 # Prepare the shell dedicated to offline rebuild 669 echo IGCM_sys_rebuild ${file_in} ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 670 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 671 echo IGCM_sys_Rm ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 742 echo IGCM_sys_rebuild ${file_in} ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 743 # 744 # Load Patch we need to apply and apply 745 if [ X$( eval echo \${${compname}_${flag_post}_Patches[0]} ) != X${NULL_STR} ]; then 746 for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ); do 747 echo . ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 748 echo IGCM_${Patch} ${file_in} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 749 done 750 fi 751 # 752 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 753 echo IGCM_sys_Rm ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 672 754 SaveOnArchive=false 673 755 fi … … 675 757 # 676 758 if [ ${SaveOnArchive} = true ] ; then 677 IGCM_sys_Put_Out ${file_in} ${file_out} 678 [ $? -eq 0 ] && eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 679 if [ ${nb_rebuild_file} -gt 1 ] ; then 680 for DelFile in $( ls | grep "${generic_file_name}[_0-9]*.nc" ) ; do 681 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 682 done 759 # 760 # If we need to apply a patch we use TMP DIRECTORY before ARCHIVING if asynchronous rebuild is on 761 # 762 if ( [ X$( eval echo \${${compname}_${flag_post}_Patches[0]} ) != X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = XNONE ] ) ; then 763 if [ -f ${file_in} ] ; then 764 IGCM_sys_Mv ${file_in} ${RUN_DIR}/REBUILD_${PeriodDateBegin} 765 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=REBUILD_${PeriodDateBegin}/${file_in} > /dev/null 2>&1 766 # 767 for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ); do 768 echo . ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 769 echo IGCM_${Patch} ${file_in} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 770 done 771 # 772 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 773 # 774 fi 775 else 776 IGCM_sys_Put_Out ${file_in} ${file_out} 777 [ $? -eq 0 ] && eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 778 if [ ${nb_rebuild_file} -gt 1 ] ; then 779 for DelFile in $( ls | grep "${generic_file_name}[_0-9]*.nc" ) ; do 780 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 781 done 782 fi 683 783 fi 684 784 fi
Note: See TracChangeset
for help on using the changeset viewer.