Ignore:
Timestamp:
12/08/08 17:57:00 (16 years ago)
Author:
sdipsl
Message:

ACa/SD : manage restart in the parallel case (multiple restart files restart_????.nc)

File:
1 edited

Legend:

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

    r34 r38  
    358358    echo 
    359359 
    360     typeset Date_tmp Date_r Path_r do_start CompOldName 
     360    typeset Date_tmp Date_r Path_r do_start CompOldName Path_temp 
    361361    typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_  
    362362    typeset file_in file_out file_in_ file_out_ file_in_Name 
     363    typeset -Z4 j4 
    363364 
    364365    for comp in ${config_ListOfComponents[*]} ; do 
     
    425426                        eval file_in_Name=\${config_${comp}_RestartJobName}_${Date_r}_${file_in} 
    426427 
    427                         eval IGCM_sys_Get ${Path_r}/${file_in_Name} ${file_out}  
    428  
    429                         IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     428                        generic_restart_file_name_in=$( basename ${file_in_Name} .nc ) 
     429                        generic_restart_file_name_out=$( basename ${file_out} .nc ) 
     430                         
     431                        eval Path_temp=\${Path_r}/${generic_restart_file_name_in} 
     432                         
     433                        nb_restart_file=$( IGCM_sys_RshArchive ls ${Path_temp}_????.nc 2>/dev/null | wc -l ) 
     434 
     435                        if [ ${nb_restart_file} -gt 1 ] ; then 
     436                            j=0 
     437                            until [ $j -ge $nb_restart_file ]; do 
     438                                j4=${j} 
     439                                eval IGCM_sys_Get ${Path_r}/${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
     440                                IGCM_comp_PrepareDeletedFiles ${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
     441#                               eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${generic_restart_file_name_out}_${j4}.nc" > /dev/null 2>&1 
     442                                (( j=j+1 )) 
     443                            done 
     444                        else 
     445                            eval IGCM_sys_Get ${Path_r}/${file_in_Name} ${file_out}   
     446                            IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     447                        fi 
    430448                 
    431449                        (( i=i+3 )) 
     
    460478                     
    461479                    file_in_Name=${run_Configuration_OldPrefix}_${file_in} 
    462                     eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out} 
    463  
    464                     IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     480 
     481                    generic_restart_file_name_in=$( basename ${file_in_Name} .nc ) 
     482                    generic_restart_file_name_out=$( basename ${file_out} .nc ) 
     483 
     484                    eval Path_temp=\${R_OUT_${comp}_R}/${generic_restart_file_name_in} 
     485                         
     486                    nb_restart_file=$( IGCM_sys_RshArchive ls ${Path_temp}_????.nc 2>/dev/null | wc -l ) 
     487                    if [ ${nb_restart_file} -gt 1 ] ; then 
     488                        j=0 
     489                        until [ $j -ge $nb_restart_file ]; do 
     490                            j4=${j} 
     491                            eval IGCM_sys_Get \${R_OUT_${comp}_R}/${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
     492                            IGCM_comp_PrepareDeletedFiles ${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
     493#                           eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${generic_restart_file_name_out}_${j4}.nc" > /dev/null 2>&1 
     494 
     495                            (( j=j+1 )) 
     496                        done 
     497                    else 
     498                        eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out} 
     499                        IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     500                    fi 
    465501 
    466502                    (( i=i+3 )) 
     
    530566    typeset comp compname comptagname card ListFilesName FileName0 NbFiles SaveOnArchive 
    531567    typeset i i_ file_in file_in_ file_out file_out_ generic_file_name nb_rebuild_file 
     568    typeset -Z4 j4 
    532569    for comp in ${config_ListOfComponents[*]} ; do 
    533570        # Define component  
     
    560597                eval file_out=${file_out_} 
    561598                 
    562                 eval IGCM_sys_Put_Rest ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 
    563  
    564                 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 
     599                generic_restart_file_name_in=$( basename ${file_in} .nc ) 
     600                generic_restart_file_name_out=$( basename ${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} .nc ) 
     601                         
     602                nb_restart_file=$( ls ${generic_restart_file_name_in}_????.nc 2>/dev/null | wc -l ) 
     603 
     604                if [ ${nb_restart_file} -gt 1 ] ; then 
     605                    j=0 
     606                    until [ $j -ge $nb_restart_file ]; do 
     607                        j4=${j} 
     608                        eval IGCM_sys_Put_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_OUT_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 
     609                        eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${generic_restart_file_name_in}_${j4}.nc" > /dev/null 2>&1 
     610                        (( j=j+1 )) 
     611                    done 
     612                else 
     613                    eval IGCM_sys_Put_Rest ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 
     614                    eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 
     615                fi 
    565616 
    566617                (( i=i+3 )) 
Note: See TracChangeset for help on using the changeset viewer.