Changeset 672 for trunk


Ignore:
Timestamp:
05/22/12 19:53:49 (12 years ago)
Author:
sdipsl
Message:
  • Can restart from "tared" restarts. overule=y/n
  • lot of code duplication. needs refactoring some time soon
File:
1 edited

Legend:

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

    r662 r672  
    661661      if [ "${do_start}" = "y" ] ; then 
    662662 
     663        # Restore Restarts files 
     664        #----------------------- 
    663665        if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then 
    664666          eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 
     
    668670            eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1 
    669671            eval file_in=${file_in_} 
    670  
    671672            (( i_ = i+1 )) 
    672673            eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
     
    675676            eval Date_tmp=\${config_${comp}_RestartDate} 
    676677            Date_r=$( IGCM_date_ConvertFormatToGregorian ${Date_tmp} ) 
    677             eval Path_r=\${config_${comp}_RestartPath}/\${config_${comp}_RestartJobName}/${CompOldName}/Restart 
    678             eval file_in_Name=\${config_${comp}_RestartJobName}_${Date_r}_${file_in} 
    679  
    680             generic_restart_file_name_in=$( basename ${file_in_Name} .nc ) 
    681             generic_restart_file_name_out=$( basename ${file_out} .nc ) 
     678            # will be re-use 
     679            eval RestartPath=\${config_${comp}_RestartPath} 
     680            eval RestartJobName=\${config_${comp}_RestartJobName} 
     681            # 
     682            Path_r=${RestartPath}/${RestartJobName}/${CompOldName}/Restart 
     683            file_in_Name=${RestartJobName}_${Date_r}_${file_in} 
     684 
     685            extension_in=$( echo ${file_in_Name##*.} ) 
     686            extension_out=$( echo ${file_out##*.} ) 
     687 
     688            generic_restart_file_name_in=$( basename ${file_in_Name} .${extension_in} ) 
     689            generic_restart_file_name_out=$( basename ${file_out} .${extension_out} ) 
    682690             
    683             eval Path_OUT=\${Path_r}/${generic_restart_file_name_in} 
    684             nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.nc) 
    685  
    686             if [ ${nb_restart_file} -gt 1 ] ; then 
     691            Path_OUT=${Path_r}/${generic_restart_file_name_in} 
     692 
     693            if [ $( IGCM_sys_TestFileBuffer ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then 
     694              IGCM_debug_Print 3 "Buffered restart" 
     695              Buffered=true 
     696              Archived=false 
     697              Tared=false 
     698              nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_OUT}_????.${extension_in}) 
     699            elif [ $( IGCM_sys_TestFileArchive ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then 
     700              IGCM_debug_Print 3 "Archived restart" 
     701              Buffered=false 
     702              Archived=true 
     703              Tared=false 
     704              nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.${extension_in}) 
     705            else 
     706              IGCM_debug_Print 3 "Tared restart" 
     707              Buffered=false 
     708              Archived=false 
     709              Tared=true 
     710              # Look after the tar file we want if we did not found it already 
     711              if [ X${IsMatching} = X ] ; then 
     712                for PotentialTarFile in $( find ${RestartPath}/${RestartJobName}/RESTART -name "${RestartJobName}_*_restart.tar" -print ) ; do 
     713                  IsMatching=$( echo ${PotentialTarFile##*/} | sed "s:^${RestartJobName}_::" | sed "s:\.restart\.tar$::" | gawk -F_ -v restartdate=${Date_r} '{if (($1 < restartdate) && ($2 >= restartdate)) {print $1"_"$2}}' ) 
     714                  if [ ! X${IsMatching} = X ] ; then 
     715                    TarFileFound=${PotentialTarFile} 
     716                    break 
     717                  fi 
     718                done 
     719              fi 
     720              IGCM_debug_Print 1 "tar xvf ${TarFileFound} ${comp}_${generic_restart_file_name_in}*.${extension_in}" 
     721              tar xvf ${TarFileFound} ${comp}_${generic_restart_file_name_in}*.${extension_in} 
     722              nb_restart_file=$( IGCM_sys_CountFileBuffer ${comp}_${generic_restart_file_name_in}_????.${extension_in} ) 
     723            fi 
     724 
     725            if [ ${nb_restart_file} -gt 1 ] ; then 
    687726              j=0 
    688727              until [ $j -ge $nb_restart_file ]; do 
    689                 j4=${j} 
    690                 eval IGCM_sys_Get ${Path_r}/${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
    691                 #IGCM_comp_PrepareDeletedFiles ${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
    692                 #eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${generic_restart_file_name_out}_${j4}.nc" > /dev/null 2>&1 
    693                 (( j=j+1 )) 
     728                j4=${j} 
     729                if [ X${Buffered} = Xtrue ] ; then 
     730                  IGCM_sys_GetBuffer ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
     731                elif [ X${Archived} = Xtrue ] ; then 
     732                  IGCM_sys_Get ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
     733                elif [ X${Tared} = Xtrue ] ; then 
     734                  IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
     735                fi 
     736                (( j=j+1 )) 
    694737              done 
    695738            else 
    696               eval IGCM_sys_Get ${Path_r}/${file_in_Name} ${file_out}   
    697               #IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
    698             fi 
    699              
     739              if [ X${Buffered} = Xtrue ] ; then 
     740                IGCM_sys_GetBuffer ${Path_r}/${file_in_Name} ${file_out} 
     741              elif [ X${Archived} = Xtrue ] ; then 
     742                IGCM_sys_Get ${Path_r}/${file_in_Name} ${file_out} 
     743              elif [ X${Tared} = Xtrue ] ; then 
     744                IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out} 
     745              fi 
     746            fi 
    700747            (( i=i+3 )) 
    701748          done 
     749 
    702750        else 
    703751          if [ X${FileName0} != XNONE ] ; then 
     
    725773           
    726774          file_in_Name=${run_Configuration_OldPrefix}_${file_in} 
    727  
    728775           
    729776          extension_in=$( echo ${file_in_Name##*.} ) 
    730777          extension_out=$( echo ${file_out##*.} ) 
    731778 
    732  
    733779          generic_restart_file_name_in=$( basename ${file_in_Name} .${extension_in} ) 
    734780          generic_restart_file_name_out=$( basename ${file_out} .${extension_out} ) 
     
    737783          eval Path_OUT=\${R_OUT_${comp}_R}/${generic_restart_file_name_in} 
    738784 
    739           #if [ -f ${Path_BUF}*.nc ] ; then 
    740785          if [ $( IGCM_sys_TestFileBuffer ${Path_BUF}*.${extension_in} ; echo $? ) = 0 ] ; then 
    741786            IGCM_debug_Print 3 "Buffered restart" 
     
    744789            Tared=false 
    745790            nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_BUF}_????.${extension_in}) 
    746           #elif [ -f ${Path_OUT}*.nc ] ; then 
    747           elif [ $( IGCM_sys_TestFileArchive ${Path_OUT}*.${extension_out} ; echo $? ) = 0 ] ; then 
     791          elif [ $( IGCM_sys_TestFileArchive ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then 
    748792            IGCM_debug_Print 3 "Archived restart" 
    749793            Buffered=false 
    750794            Archived=true 
    751795            Tared=false 
    752             nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.${extension_out}) 
     796            nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.${extension_in}) 
    753797          else 
    754798            IGCM_debug_Print 3 "Tared restart" 
     
    777821                IGCM_sys_GetBuffer ${Path_BUF}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
    778822              elif [ X${Archived} = Xtrue ] ; then 
    779                 IGCM_sys_Get ${Path_OUT}_${j4}.${extension_out} ${generic_restart_file_name_out}_${j4}.${extension_out} 
     823                IGCM_sys_Get ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
    780824              elif [ X${Tared} = Xtrue ] ; then 
    781825                IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out} 
Note: See TracChangeset for help on using the changeset viewer.