Ignore:
Timestamp:
03/21/12 11:02:21 (12 years ago)
Author:
sdipsl
Message:
  • can extract needed restart from a tar (up to 20 minutes on titane)
    • still to do : introduce a lag when cleaning the restart buffer so that we don't look into the tar too often
    • still to do : work on the clean_month procedure
  • rebuild process submit pack_output process if needed
    • still to do : a pack_output able to submit create_ts/create_se if needed
  • bugfixes/cosmetics/cleaning
  • SX9 and titane OK.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/libIGCM_comp/libIGCM_comp.ksh

    r588 r590  
    608608  echo 
    609609 
    610   typeset Date_tmp Date_r Path_r do_start CompOldName Path_OUT Path_BUF Buffered 
     610  typeset Date_tmp Date_r Path_r do_start CompOldName Path_OUT Path_BUF 
     611  typeset Buffered Archived Tared PotentialTarFile IsMatching TarFileFound 
    611612  typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_  
    612613  typeset file_in file_out file_in_ file_out_ file_in_Name 
     
    637638        eval CompOldName=${comp} 
    638639      else 
    639                 # Read component Restarts parameters 
     640        # Read component Restarts parameters 
    640641        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} Restart 
    641642        eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1 
     
    731732 
    732733          if [ -f ${Path_BUF}*.nc ] ; then 
     734            IGCM_debug_Print 3 "Buffered restart" 
    733735            Buffered=true 
     736            Archived=false 
     737            Tared=false 
    734738            nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_BUF}_????.nc) 
     739          elif [ -f ${Path_OUT}*.nc ] ; then 
     740            IGCM_debug_Print 3 "Archived restart" 
     741            Buffered=false 
     742            Archived=true 
     743            Tared=false 
     744            nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.nc) 
    735745          else 
     746            IGCM_debug_Print 3 "Tared restart" 
    736747            Buffered=false 
    737             nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.nc) 
     748            Archived=false 
     749            Tared=true 
     750            # Look after the tar file we want if we did not found it already 
     751            if [ X${IsMatching} = X ] ; then 
     752              for PotentialTarFile in $( find ${R_SAVE}/RESTART -name "${config_UserChoices_JobName}_*_restart.tar" ) ; do 
     753                IsMatching=$( echo ${PotentialTarFile} | sed "s:^${config_UserChoices_JobName}_::" | sed "s:\.restart\.tar$::" | gawk -F_ -v restartdate=${LastPeriodDateEnd} '{if (($1 < restartdate) && ($2 > restartdate)) {print $1"_"$2}}' ) 
     754                if [ ! X${IsMatching} = X ] ; then 
     755                  TarFileFound=${PotentialTarFile} 
     756                  break 
     757                fi 
     758              done 
     759            fi 
     760            tar xvf ${TarFileFound} ${comp}_${generic_restart_file_name_in}*.nc 
     761            nb_restart_file=$( IGCM_sys_CountFileBuffer ${comp}_${generic_restart_file_name_in}_????.nc ) 
    738762          fi 
    739763 
     
    742766            until [ $j -ge $nb_restart_file ]; do 
    743767              j4=${j} 
    744               if [ ${Buffered} ] ; then 
     768              if [ X${Buffered} = Xtrue ] ; then 
    745769                IGCM_sys_GetBuffer ${Path_BUF}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
    746               else 
     770              elif [ X${Archived} = Xtrue ] ; then 
    747771                IGCM_sys_Get ${Path_OUT}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
     772              elif [ X${Tared} = Xtrue ] ; then 
     773                IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
    748774              fi 
    749775              (( j=j+1 )) 
    750776            done 
    751777          else 
    752             if [ ${Buffered} ] ; then 
     778            if [ X${Buffered} = Xtrue ] ; then 
    753779              eval IGCM_sys_GetBuffer \${R_BUF_${comp}_R}/${file_in_Name} ${file_out} 
    754             else 
     780            elif [ X${Archived} = Xtrue ] ; then 
    755781              eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out} 
    756             fi 
    757           fi 
    758  
     782            elif [ X${Tared} = Xtrue ] ; then 
     783              IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out} 
     784            fi 
     785          fi 
    759786          (( i=i+3 )) 
    760787        done 
Note: See TracChangeset for help on using the changeset viewer.