Changeset 118 for trunk/libIGCM


Ignore:
Timestamp:
05/05/09 12:10:56 (15 years ago)
Author:
mmaipsl
Message:

Replace the two big analyses of PeriodLength? by a new function IGCM_config_Analyse_PeriodLength.
Add PID at the end of Script_Output saved files.

File:
1 edited

Legend:

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

    r109 r118  
    198198 
    199199#=================================== 
     200function IGCM_config_Analyse_PeriodLength 
     201{ 
     202    IGCM_debug_PushStack "IGCM_config_Analyse_PeriodLength" 
     203 
     204    theyear=$1 
     205    themonth=$2 
     206 
     207    # Determine number of day(s) in PeriodLength : 
     208    case ${config_UserChoices_PeriodLength} in 
     209        *Y|*y) 
     210            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[yY]' '{print $1}' )  
     211            IGCM_debug_Print 1 "Number of years for PeriodLength : ${PeriodLengthInYears}" 
     212            PeriodLengthInDays=0 
     213            i=0 
     214            until [ $i -ge $PeriodLengthInYears ] ; do  
     215                (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInYear $(( year + i )) ) ))  
     216                (( i=i+1 ))  
     217            done  
     218            ;; 
     219        *M|*m) 
     220            PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[mM]' '{print $1}' )  
     221            IGCM_debug_Print 1 "Number of months for PeriodLength : ${PeriodLengthInMonths}" 
     222            typeset year1  
     223            PeriodLengthInDays=0 
     224            year1=year 
     225            i=0 
     226            until [ $i -ge $PeriodLengthInMonths ] ; do  
     227                if [ $(( month + i )) -lt 13 ] ; then  
     228                    (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i )) ) ))   
     229                else  
     230                    (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i - 12 )) ) ))   
     231                fi  
     232                (( i=i+1 ))  
     233            done  
     234            ;; 
     235        *D|*d)   
     236            PeriodLengthInDays=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[dD]' '{print $1}' ) ;; 
     237        *)  
     238            IGCM_debug_Exit "IGCM_config_Analyse_PeriodLength " ${config_UserChoices_PeriodLength} " invalid period length : choose in *Y, *M, *D." 
     239            IGCM_debug_Verif_Exit ;; 
     240    esac 
     241 
     242    IGCM_debug_PopStack "IGCM_config_Analyse_PeriodLength" 
     243 
     244} 
     245 
     246#=================================== 
    200247function IGCM_config_PeriodStart 
    201248{ 
     
    218265 
    219266        IGCM_date_GetYearMonth $DateBegin year month 
    220  
    221         case ${config_UserChoices_PeriodLength} in 
    222             *Y|*y) 
    223                 PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[yY]' '{print $1}' )  
    224                 IGCM_debug_Print 1 "Number of years for PeriodLength : ${PeriodLengthInYears}" 
    225                 PeriodLengthInDays=0 
    226                 i=0 
    227                 until [ $i -ge $PeriodLengthInYears ] ; do  
    228                     (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInYear $(( year + i )) ) ))  
    229                     (( i=i+1 ))  
    230                 done  
    231                 ;; 
    232             *M|*m) 
    233                 PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[mM]' '{print $1}' )  
    234                 IGCM_debug_Print 1 "Number of months for PeriodLength : ${PeriodLengthInMonths}" 
    235                 typeset year1  
    236                 PeriodLengthInDays=0 
    237                 year1=year 
    238                 i=0 
    239                 until [ $i -ge $PeriodLengthInMonths ] ; do  
    240                     if [ $(( month + i )) -lt 13 ] ; then  
    241                         (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i )) ) ))   
    242                     else  
    243                         (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i - 12 )) ) ))   
    244                     fi  
    245                     (( i=i+1 ))  
    246                 done  
    247                 ;; 
    248             *D|*d)   
    249                 PeriodLengthInDays=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[dD]' '{print $1}' ) ;; 
    250             *)  
    251                 IGCM_debug_Exit "IGCM_config_PeriodStart " ${config_UserChoices_PeriodLength} " invalid period length : choose in *Y, *M, *D." 
    252                 IGCM_debug_Verif_Exit ;; 
    253         esac 
     267        IGCM_config_Analyse_PeriodLength  $year $month 
    254268 
    255269        eval PeriodDateBegin=${DateBegin} > /dev/null 2>&1 
     
    306320            IGCM_debug_Print 1 "Try to save previous ksh job output" 
    307321            IGCM_sys_Cd ${SUBMIT_DIR}/ 
    308             IGCM_sys_Put_Out ${Last_Script_Output_Name} ${R_OUT_KSH}/ 
     322            IGCM_sys_Put_Out ${Last_Script_Output_Name} ${R_OUT_KSH}/${Last_Script_Output_Name}.$$ 
    309323            IGCM_sys_Cd ${RUN_DIR} 
    310324        else 
     
    523537    IGCM_date_GetYearMonth $PeriodDateBegin year month 
    524538 
    525     # Determine number of day(s) in PeriodLength : 
    526     case ${config_UserChoices_PeriodLength} in 
    527         *Y|*y) 
    528             PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[yY]' '{print $1}' )  
    529             IGCM_debug_Print 1 "Number of years for PeriodLength : ${PeriodLengthInYears}" 
    530             PeriodLengthInDays=0 
    531             i=0 
    532             until [ $i -ge $PeriodLengthInYears ] ; do  
    533                 (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInYear $(( year + i )) ) ))  
    534                 (( i=i+1 ))  
    535             done  
    536             ;; 
    537         *M|*m) 
    538             PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[mM]' '{print $1}' )  
    539             IGCM_debug_Print 1 "Number of months for PeriodLength : ${PeriodLengthInMonths}" 
    540             typeset year1  
    541             PeriodLengthInDays=0 
    542             year1=year 
    543             i=0 
    544             until [ $i -ge $PeriodLengthInMonths ] ; do  
    545                 if [ $(( month + i )) -lt 13 ] ; then  
    546                     (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i )) ) ))   
    547                 else  
    548                     (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( month + i - 12 )) ) ))   
    549                 fi  
    550                 (( i=i+1 ))  
    551             done  
    552             ;; 
    553         *D|*d)   
    554             PeriodLengthInDays=$( echo ${config_UserChoices_PeriodLength} | gawk -F '[dD]' '{print $1}' ) ;; 
    555     esac 
     539    IGCM_config_Analyse_PeriodLength $year $month 
    556540    PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateBegin} $( expr ${PeriodLengthInDays} - 1 ) ) 
    557541 
Note: See TracChangeset for help on using the changeset viewer.