Ignore:
Timestamp:
03/22/12 18:02:50 (12 years ago)
Author:
mafoipsl
Message:

Second merge of libIGCM_MPI_OpenMP branch with libIGCM trunk, revision 591.

Location:
branches/libIGCM_MPI_OpenMP
Files:
24 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/libIGCM_MPI_OpenMP/AA_SaveSourceModifications

    r571 r592  
    145145fi 
    146146 
    147 # Clean RUN_DIR_PATH (necessary for cesium) 
     147# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    148148if ( ! ${DEBUG_debug} ) ; then 
    149149    IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_TimeSeries_Checker

    r571 r592  
    4141POST_DIR=${POST_DIR:=${CARD_DIR}/OutScript} 
    4242 
     43# project  
     44export BRIDGE_MSUB_PROJECT=gen2211 
     45 
    4346if [ ! -d ${CARD_DIR} ]; then 
    44     echo "No ${CARD_DIR}, we stop here" 
    45     exit 
     47  echo "No ${CARD_DIR}, we stop here" 
     48  exit 
    4649fi 
    4750 
     
    6568read ActionAnswer 
    6669 
    67 case ${ActionAnswer} in     
    68     oui|OUI|o|y|yes|YES) 
    69         echo "OK. I will submit jobs but ask permissions before removing files" 
    70         action=true 
    71         ;; 
    72     non|NON|n|no|NO) 
    73         echo "OK. I won't submit jobs and only print out files I could remove" 
    74         action=false 
    75         ;; 
    76     *) 
    77         echo "I did not recognize your answer. I will stop here." 
    78         echo "Please respond: oui|OUI|o|y|yes|YES" 
    79         echo "Or please respond: non|NON|n|no|NO" 
    80         exit 
    81         ;; 
     70case ${ActionAnswer} in 
     71oui|OUI|o|y|yes|YES) 
     72  echo "OK. I will submit jobs but ask permissions before removing files" 
     73  action=true 
     74  ;; 
     75non|NON|n|no|NO) 
     76  echo "OK. I won't submit jobs and only print out files I could remove" 
     77  action=false 
     78  ;; 
     79*) 
     80  echo "I did not recognize your answer. I will stop here." 
     81  echo "Please respond: oui|OUI|o|y|yes|YES" 
     82  echo "Or please respond: non|NON|n|no|NO" 
     83  exit 
     84  ;; 
    8285esac 
    8386 
     87#================================== 
    8488# First of all 
     89# 
     90typeset option 
     91 
     92#================================== 
     93# Read UserChoices section:  
    8594IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card UserChoices 
    86 typeset option 
     95echo 
     96IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices" 
    8797for option in ${config_UserChoices[*]} ; do 
    8898    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option} 
     99    eval auxprint=\${config_UserChoices_${option}} 
     100    IGCM_debug_Print 3 "${option} : ${auxprint}" 
    89101done 
    90  
    91 echo 
    92 IGCM_debug_Print 1 "DefineVariableFromOption  : config_UserChoices" 
    93 IGCM_debug_PrintVariables 3 config_UserChoices_JobName 
    94 #IGCM_debug_PrintVariables 3 config_UserChoices_SpaceName 
    95 #IGCM_debug_PrintVariables 3 config_UserChoices_ExperimentName 
    96 IGCM_debug_PrintVariables 3 config_UserChoices_CalendarType 
    97 IGCM_debug_PrintVariables 3 config_UserChoices_DateBegin 
    98 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd 
     102# 
     103echo 
     104 
     105#================================== 
     106# Read Post section:  
     107IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post 
     108echo 
     109IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 
     110 
     111for option in ${config_Post[*]} ; do 
     112  IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post ${option} 
     113  eval auxprint=\${config_Post_${option}} 
     114  IGCM_debug_Print 3 "${option} : ${auxprint}" 
     115done 
     116# 
     117echo 
    99118 
    100119if [ -f ${CARD_DIR}/run.card ] ; then 
    101     IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration OldPrefix 
    102     IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState 
    103     IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card PostProcessing TimeSeriesCompleted 
    104     IGCM_debug_Print 1 "DefineVariableFromOption  : run_Configuration" 
    105     IGCM_debug_PrintVariables 3 run_Configuration_OldPrefix 
    106     IGCM_debug_PrintVariables 3 run_Configuration_PeriodState 
    107     IGCM_debug_Print 1 "DefineVariableFromOption  : run_PostProcessing" 
    108     IGCM_debug_PrintVariables 3 run_PostProcessing_TimeSeriesCompleted 
    109     if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then 
    110         DateEnd=$( IGCM_date_ConvertFormatToGregorian $( echo ${run_Configuration_OldPrefix} | awk -F'_' '{print $2}' ) ) 
    111     else 
    112         DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 
    113     fi 
    114     CompletedFlag=${run_PostProcessing_TimeSeriesCompleted} 
     120  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration OldPrefix 
     121  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState 
     122  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card PostProcessing TimeSeriesCompleted 
     123  IGCM_debug_Print 1 "DefineVariableFromOption  : run_Configuration" 
     124  IGCM_debug_PrintVariables 3 run_Configuration_OldPrefix 
     125  IGCM_debug_PrintVariables 3 run_Configuration_PeriodState 
     126  IGCM_debug_Print 1 "DefineVariableFromOption  : run_PostProcessing" 
     127  IGCM_debug_PrintVariables 3 run_PostProcessing_TimeSeriesCompleted 
     128  if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then 
     129    DateEnd=$( IGCM_date_ConvertFormatToGregorian $( echo ${run_Configuration_OldPrefix} | awk -F'_' '{print $2}' ) ) 
     130  else 
     131    DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 
     132  fi 
     133  CompletedFlag=${run_PostProcessing_TimeSeriesCompleted} 
    115134else 
    116     DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 
    117     CompletedFlag="" 
     135  DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 
     136  CompletedFlag="" 
    118137fi 
    119138SavedCompletedFlag=${CompletedFlag} 
     
    133152#R_BUFR : Job output buffered directory 
    134153if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then 
    135     FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    136     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    137     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    138     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     154  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
     155  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     156  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     157  R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    139158else 
    140     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    141     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    142     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     159  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     160  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     161  R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    143162fi 
    144163 
     
    146165 
    147166for comp in ${config_ListOfComponents[*]} ; do 
    148     # Debug Print 
    149     IGCM_debug_Print 1 ${comp} 
    150     # Define component  
    151     IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp} 
    152     eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1 
    153     eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1 
    154  
    155     # Read libIGCM compatibility version in ${compname}.card 
    156     card=${CARD_DIR}/COMP/${compname}.card 
    157  
    158     # Read and Build Output File stuff 
    159     #IGCM_debug_Print 1 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}" 
    160     IGCM_card_DefineArrayFromOption ${card} OutputFiles List 
    161     ListFilesName=${compname}_OutputFiles_List 
    162     eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 
     167  # Debug Print 
     168  IGCM_debug_Print 1 ${comp} 
     169  # Define component 
     170  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp} 
     171  eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1 
     172  eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1 
     173 
     174  # Read libIGCM compatibility version in ${compname}.card 
     175  card=${CARD_DIR}/COMP/${compname}.card 
     176 
     177  # Read and Build Output File stuff 
     178  #IGCM_debug_Print 1 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}" 
     179  IGCM_card_DefineArrayFromOption ${card} OutputFiles List 
     180  ListFilesName=${compname}_OutputFiles_List 
     181  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 
     182  # 
     183  if [ X${FileName0} != X${NULL_STR} ] ; then 
    163184    # 
    164     if [ X${FileName0} != X${NULL_STR} ] ; then 
     185    #IGCM_debug_Print 1 "Component      : ${compname}" 
     186    # 
     187    # INITIALISATION 
     188    # 
     189    eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 
     190    i=2 
     191    # 
     192    until [ $i -ge $NbFiles ]; do 
     193      # 
     194      eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 
     195      # 
     196      if [ X${flag_post} != XNONE ] ; then 
    165197        # 
    166         #IGCM_debug_Print 1 "Component      : ${compname}" 
    167         # 
    168         # INITIALISATION 
    169         # 
    170         eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 
    171         i=2 
    172         # 
    173         until [ $i -ge $NbFiles ]; do 
    174             # 
    175             eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 
    176             # 
    177             if [ X${flag_post} != XNONE ] ; then 
    178                 # 
    179                 # First of all 
     198        # First of all 
     199        # 
     200        IGCM_card_DefineArrayFromSection ${card} ${flag_post} 
     201        # 
     202        IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 
     203        IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 
     204        if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then 
     205          # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 
     206          unset ListDimension 
     207          ListDimension[0]=2D 
     208          ListDimension[1]=3D 
     209          TimeSeries=false 
     210          TimeSeries2D=false 
     211          TimeSeries3D=false 
     212          chunck=false 
     213          iLoop=${#ListDimension[*]} 
     214          j=0 
     215          until [ $j -ge ${iLoop} ]; do 
     216            Dimension=${ListDimension[${j}]} 
     217            IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 
     218            IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 
     219            # 
     220            # Time series WITHOUT chunk 
     221            # 
     222            if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 
     223              if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 
     224                IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}" 
     225                eval TimeSeries${Dimension}=true 
     226                chunck=false 
     227              fi 
     228            fi 
     229            # 
     230            # Time series WITH chunk 
     231            # 
     232            if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 
     233              chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 
     234              if [ ! ${chunck_size} = NONE ] &&  [ ! ${chunck_size} = OFF ] ; then 
     235                IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}" 
     236                eval TimeSeriesChunck${Dimension}=true 
     237                chunck=true 
     238              fi 
     239            fi 
     240            (( j=j+1 )) 
     241            # 
     242            # If TimeSeriesVars list is empty or OFF we skip 
     243            # 
     244            if ( [ $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] || \ 
     245              [ ${chunck_size} = OFF ] ) ; then 
     246              #IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}" 
     247              #(( i=i+3 )) 
     248              continue 
     249            fi 
     250            # 
     251            #  ICI ON TESTE QUE LES FICHIERS TS SONT LA! 
     252            # 
     253            FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) 
     254            IGCM_card_DefineArrayFromOption ${card}    Post_${FILE} TimeSeriesVars${Dimension} 
     255            IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} 
     256            # 
     257            FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 
     258            case ${FlagDir} in 
     259            *Y)  TS_Dir=TS_YE  ;; 
     260            *M)  TS_Dir=TS_MO  ;; 
     261            *D)  TS_Dir=TS_DA  ;; 
     262            3H|HF)  TS_Dir=TS_HF  ;; 
     263            INS) TS_Dir=TS_INS ;; 
     264            esac 
     265            # 
     266            # We need LIST of variables not allready produced (useful for standalone mode) 
     267            # 
     268            DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} ) 
     269            IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 
     270 
     271            # Si on n'a pas de chunck, dans ce cas chunck_size=la durée de la simulation en années 
     272            YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" ) 
     273            [ ${chunck} = false ] && YearsChunckLength=$(( YearEnd - YearBegin + 1 )) 
     274 
     275            NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength )) 
     276            Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength )) 
     277 
     278            if [ ${Reste} -ne 0 ] ; then 
     279              NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 )) 
     280            fi 
     281 
     282            if [ ${NbYearsChunckLoop} -eq 1 ] ; then 
     283              PeriodDateEnd=${DateEnd} 
     284            else 
     285              DaysInYear=$( IGCM_date_DaysInYear ${YearBegin} ) 
     286              PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( YearsChunckLength * DaysInYear - 1 )) ) 
     287            fi 
     288            # 
     289            DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 
     290            YearsChunckLoop=1 
     291            ChunckDebut=${DateBegin} 
     292            ChunckFin=${PeriodDateEnd} 
     293            while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do 
     294              countTotal=0 
     295              countGood=0 
     296              countBad=0 
     297              unset RemoveList 
     298              unset PotentialCompletedFlag 
     299              for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do 
     300                TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc 
    180301                # 
    181                 IGCM_card_DefineArrayFromSection ${card} ${flag_post} 
    182                 # 
    183                 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 
    184                 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 
    185                 if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then 
    186                     # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 
    187                     unset ListDimension 
    188                     ListDimension[0]=2D 
    189                     ListDimension[1]=3D 
    190                     TimeSeries=false 
    191                     TimeSeries2D=false 
    192                     TimeSeries3D=false 
    193                     chunck=false 
    194                     iLoop=${#ListDimension[*]} 
    195                     j=0 
    196                     until [ $j -ge ${iLoop} ]; do 
    197                         Dimension=${ListDimension[${j}]} 
    198                         IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 
    199                         IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 
    200                         # 
    201                         # Time series WITHOUT chunk 
    202                         # 
    203                         if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 
    204                             if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 
    205                                 IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}" 
    206                                 eval TimeSeries${Dimension}=true 
    207                                 chunck=false 
    208                             fi 
    209                         fi 
    210                         # 
    211                         # Time series WITH chunk 
    212                         # 
    213                         if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 
    214                             chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 
    215                             if [ ! ${chunck_size} = NONE ] &&  [ ! ${chunck_size} = OFF ] ; then 
    216                                 IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}" 
    217                                 eval TimeSeriesChunck${Dimension}=true 
    218                                 chunck=true 
    219                             fi 
    220                         fi 
    221                         (( j=j+1 )) 
    222                         # 
    223                         # If TimeSeriesVars list is empty or OFF we skip 
    224                         # 
    225                         if ( [ $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] || \ 
    226                             [ ${chunck_size} = OFF ] ) ; then 
    227                             #IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}" 
    228                             #(( i=i+3 )) 
    229                             continue 
    230                         fi 
    231                         # 
    232                         #  ICI ON TESTE QUE LES FICHIERS TS SONT LA! 
    233                         # 
    234                         # 
    235                         FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) 
    236                         IGCM_card_DefineArrayFromOption ${card}    Post_${FILE} TimeSeriesVars${Dimension} 
    237                         IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} 
    238                         # 
    239                         FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 
    240                         case ${FlagDir} in 
    241                             *Y)  TS_Dir=TS_YE  ;; 
    242                             *M)  TS_Dir=TS_MO  ;; 
    243                             *D)  TS_Dir=TS_DA  ;; 
    244                          3H|HF)  TS_Dir=TS_HF  ;; 
    245                            INS) TS_Dir=TS_INS ;; 
    246                         esac 
    247                         # 
    248                         # We need LIST of variables not allready produced (useful for standalone mode) 
    249                         # 
    250                         DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} ) 
    251                         IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 
    252  
    253                         # Si on n'a pas de chunck, dans ce cas chunck_size=la durée de la simulation en années 
    254                         YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" ) 
    255                         [ ${chunck} = false ] && YearsChunckLength=$(( YearEnd - YearBegin + 1 )) 
    256  
    257                         NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength )) 
    258                         Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength )) 
    259  
    260                         if [ ${Reste} -ne 0 ] ; then 
    261                             NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 )) 
    262                         fi 
    263  
    264                         if [ ${NbYearsChunckLoop} -eq 1 ] ; then 
    265                             PeriodDateEnd=${DateEnd} 
    266                         else 
    267                             DaysInYear=$( IGCM_date_DaysInYear ${YearBegin} ) 
    268                             PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( YearsChunckLength * DaysInYear - 1 )) ) 
    269                         fi 
    270                         # 
    271                         DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 
    272                         YearsChunckLoop=1 
    273                         ChunckDebut=${DateBegin} 
    274                         ChunckFin=${PeriodDateEnd} 
    275                         while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do 
    276                             countTotal=0 
    277                             countGood=0 
    278                             countBad=0 
    279                             unset RemoveList 
    280                             unset PotentialCompletedFlag 
    281                             for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do 
    282                                 TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc 
    283                                 # 
    284                                 if [ -d ${DIRECTORY} ] ; then 
    285                                     Candidat=$( find ${DIRECTORY} -name "${config_UserChoices_JobName}_${ChunckDebut}_*_${FlagDir}_${var}.nc" ) 
    286                                 else 
    287                                     Candidat="" 
    288                                 fi 
    289                                 # 
    290                                 BestCandidat=${ChunckDebut} 
    291                                 # 
    292                                 FoundCandidat=false 
    293                                 if [ ! "X${Candidat}" = "X" ] ; then 
    294                                     for candid in ${Candidat} ; do 
    295                                         #IGCM_debug_Print 1 -e "\033[1;32m[CompletedFlag CANDIDAT MATCH FOUND]\033[m $( basename ${candid} )" 
    296                                         CandidatEnd=$( echo ${candid}   | awk -F${config_UserChoices_JobName} '{print $3}' | awk -F_ '{print $3}' ) 
    297                                         if [ ${CandidatEnd} -gt ${ChunckFin} ] ; then 
    298                                             #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress" 
    299                                             set +A RemoveList ${RemoveList[*]} ${candid} 
    300                                         elif [ ${CandidatEnd} -lt ${ChunckFin} ] ; then 
    301                                             #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress or used as a CompletedFlag baseline" 
    302                                             # We keep the best candidat and remove the others 
    303                                             if [ ${BestCandidat} -lt ${CandidatEnd} ] ; then 
    304                                                 if [ ${FoundCandidat} = true ] ; then 
    305                                                    set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 
    306                                                 else 
    307                                                    FoundCandidat=true 
    308                                                 fi 
    309                                                 BestCandidat=${CandidatEnd} 
    310                                             else 
    311                                                 set +A RemoveList ${RemoveList[*]} ${candid} 
    312                                             fi 
    313                                         fi 
    314                                     done 
    315                                 else 
    316                                     # No CompletedFlag candidat found 
    317                                     CandidatCompletedFlag="" 
    318                                 fi 
    319                                 # 
    320                                 if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then 
    321                                     (( countBad = countBad + 1 )) 
    322                                     [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} :" 
    323                                     IGCM_debug_Print 3 ${DIRECTORY}/${TestedFile} 
    324                                     # Then we keep a track of the Best Candidat 
    325                                     if [ ${FoundCandidat} = true ] ; then 
    326                                         if [ ${chunck} = true ] ; then 
    327                                             set +A PotentialCompletedFlag ${PotentialCompletedFlag[*]} ${BestCandidat} 
    328                                         else 
    329                                             eval set +A PotentialCompletedFlag${Dimension} \${PotentialCompletedFlag${Dimension}[*]} \${BestCandidat} 
    330                                         fi 
    331                                     fi 
    332                                 else 
    333                                     (( countGood = countGood + 1 )) 
    334                                     # Then we do not need the best candidat if any 
    335                                     [ ${FoundCandidat} = true ] && set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 
    336                                 fi 
    337                                 (( countTotal = countTotal + 1 )) 
    338                             done 
    339  
    340                             SuccessRate=$(( countGood * 100 / countTotal )) 
    341                             if [ ${SuccessRate} -ne 100 ] ; then 
    342                                 IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 
    343                             else 
    344                                 IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 
    345                             fi 
    346                             echo 
    347  
    348                             # Remove what's in the RemoveList 
    349                             if [ ${RemoveList} ] ; then 
    350                                 IGCM_debug_Print 2 "File(s) that will be removed ${RemoveList[*]}" 
    351                                 if [ ${action} = true ] ; then 
    352                                     echo -e "\033[1;32mDo you want to remove them?\033[m" 
    353                                     echo -n " Your answer (y/n) : " 
    354                                     read RemoveAnswer 
    355                                     case ${RemoveAnswer} in     
    356                                         oui|OUI|o|y|yes|YES) 
    357                                             echo "OK. I will erase them" 
    358                                             IGCM_sys_Rm -f ${RemoveList[*]} 
    359                                             ;; 
    360                                         non|NON|n|no|NO) 
    361                                             echo "OK. I won't erase them" 
    362                                             ;; 
    363                                         *) 
    364                                             echo "I did not recognize your answer." 
    365                                             echo "Please respond: oui|OUI|o|y|yes|YES" 
    366                                             echo "Or please respond: non|NON|n|no|NO" 
    367                                             exit 
    368                                             ;; 
    369                                     esac 
    370                                 fi 
    371                             fi 
    372                             #[ ${FoundCandidat} = true ] && IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag[*]}" 
    373                             if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then 
    374                                 # 
    375                                 # TO REWRITE BEGIN 
    376                                 # 
    377                                 NbCandidats=${#PotentialCompletedFlag[@]} 
    378                                 countCandid=1 
    379                                 if [ ${NbCandidats} -eq 0 ] ; then 
    380                                     ChunckCompletedFlag="" 
    381                                     IGCM_debug_Print 2 -e "\033[1;31mNO CompletedFlag\033[m" 
    382                                 elif [ ${NbCandidats} -eq 1 ] ; then 
    383                                     ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
    384                                     IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 
    385                                 elif [ ${NbCandidats} -gt 1 ] ; then 
    386                                     k=1 
    387                                     until [ $k -ge ${NbCandidats} ]; do 
    388                                         ((k_m1=k-1)) 
    389                                         if [ ${PotentialCompletedFlag[${k_m1}]} = ${PotentialCompletedFlag[${k}]} ] ; then 
    390                                             ((countCandid=countCandid+1)) 
    391                                         fi 
    392                                         ((k=k+1)) 
    393                                     done 
    394                                     if [ ${NbCandidats} -eq ${countCandid} ] ; then 
    395                                         ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
    396                                         IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 
    397                                     else 
    398                                         ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
    399                                         IGCM_debug_Print 2 -e "\033[1;31mToo Many Potential CompletedFlag\033[m Let start with first CompletedPeriod" 
    400                                         IGCM_debug_Print 2 -e "\033[1;31mYou will have to redo TimeSeries_Checker\033[m for other period." 
    401                                     fi 
    402                                 fi 
    403                                 # 
    404                                 # TO REWRITE END 
    405                                 # 
    406                                 if [ ${action} = true ] ; then 
    407                                     IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 
    408                                     listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead" 
    409                                     export libIGCM=${libIGCM} 
    410                                     export SUBMIT_DIR=${CARD_DIR} 
    411                                     export POST_DIR=${POST_DIR} 
    412                                     export DateBegin=${ChunckDebut} 
    413                                     export PeriodDateEnd=${ChunckFin} 
    414                                     export CompletedFlag=${ChunckCompletedFlag} 
    415                                     export TsTask=Chunck${Dimension} 
    416                                     export CompToRead=${comp} 
    417                                     export FlagToRead=${i} 
    418                                     export NameToRead=${flag_post} 
    419                                     export listVarEnv=${listVarEnv} 
    420                                     IGCM_sys_MkdirWork ${POST_DIR} 
    421                                     IGCM_debug_Verif_Exit_Post 
    422                                     Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 
    423                                     IGCM_sys_QsubPost create_ts 
    424                                     echo 
    425                                 else 
    426                                     IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 
    427                                 fi 
    428                             fi 
    429  
    430                             if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then 
    431                                 eval Launch${Dimension}=true 
    432                             fi 
    433  
    434                             # Date update 
    435                             ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 ) 
    436  
    437                             (( YearsChunckLoop = YearsChunckLoop + 1 )) 
    438  
    439                             if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then  
    440                                 ChunckFin=${DateEnd} 
    441                             else 
    442                                 ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} $(( YearsChunckLength * DaysInYear - 1 )) ) 
    443                             fi 
    444                         done 
    445                     done 
    446                 else 
    447                     ListDimension[0]="" 
    448                     TimeSeries=true 
    449                     TimeSeries2D=false 
    450                     TimeSeries3D=false 
    451                     TimeSeriesChunck2D=false 
    452                     TimeSeriesChunck3D=false 
    453                 fi 
    454             fi 
    455             (( i=i+3 )) 
    456         done 
    457     fi 
     302                if [ -d ${DIRECTORY} ] ; then 
     303                  Candidat=$( find ${DIRECTORY} -name "${config_UserChoices_JobName}_${ChunckDebut}_*_${FlagDir}_${var}.nc" ) 
     304                else 
     305                  Candidat="" 
     306                fi 
     307                # 
     308                BestCandidat=${ChunckDebut} 
     309                # 
     310                FoundCandidat=false 
     311                if [ ! "X${Candidat}" = "X" ] ; then 
     312                  for candid in ${Candidat} ; do 
     313                    #IGCM_debug_Print 1 -e "\033[1;32m[CompletedFlag CANDIDAT MATCH FOUND]\033[m $( basename ${candid} )" 
     314                    CandidatEnd=$( echo ${candid}   | awk -F${config_UserChoices_JobName} '{print $3}' | awk -F_ '{print $3}' ) 
     315                    if [ ${CandidatEnd} -gt ${ChunckFin} ] ; then 
     316                      #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress" 
     317                      set +A RemoveList ${RemoveList[*]} ${candid} 
     318                    elif [ ${CandidatEnd} -lt ${ChunckFin} ] ; then 
     319                      #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress or used as a CompletedFlag baseline" 
     320                      # We keep the best candidat and remove the others 
     321                      if [ ${BestCandidat} -lt ${CandidatEnd} ] ; then 
     322                        if [ ${FoundCandidat} = true ] ; then 
     323                          set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 
     324                        else 
     325                          FoundCandidat=true 
     326                        fi 
     327                        BestCandidat=${CandidatEnd} 
     328                      else 
     329                        set +A RemoveList ${RemoveList[*]} ${candid} 
     330                      fi 
     331                    fi 
     332                  done 
     333                else 
     334                  # No CompletedFlag candidat found 
     335                  CandidatCompletedFlag="" 
     336                fi 
     337                # 
     338                if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then 
     339                  (( countBad = countBad + 1 )) 
     340                  [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} :" 
     341                  IGCM_debug_Print 3 ${DIRECTORY}/${TestedFile} 
     342                  # Then we keep a track of the Best Candidat 
     343                  if [ ${FoundCandidat} = true ] ; then 
     344                    if [ ${chunck} = true ] ; then 
     345                      set +A PotentialCompletedFlag ${PotentialCompletedFlag[*]} ${BestCandidat} 
     346                    else 
     347                      eval set +A PotentialCompletedFlag${Dimension} \${PotentialCompletedFlag${Dimension}[*]} \${BestCandidat} 
     348                    fi 
     349                  fi 
     350                else 
     351                  (( countGood = countGood + 1 )) 
     352                  # Then we do not need the best candidat if any 
     353                  [ ${FoundCandidat} = true ] && set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 
     354                fi 
     355                (( countTotal = countTotal + 1 )) 
     356              done 
     357 
     358              SuccessRate=$(( countGood * 100 / countTotal )) 
     359              if [ ${SuccessRate} -ne 100 ] ; then 
     360                IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 
     361              else 
     362                IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 
     363              fi 
     364              echo 
     365 
     366              # Remove what's in the RemoveList 
     367              if [ ${RemoveList} ] ; then 
     368                IGCM_debug_Print 2 "File(s) that will be removed ${RemoveList[*]}" 
     369                if [ ${action} = true ] ; then 
     370                  echo -e "\033[1;32mDo you want to remove them?\033[m" 
     371                  echo -n " Your answer (y/n) : " 
     372                  read RemoveAnswer 
     373                  case ${RemoveAnswer} in 
     374                  oui|OUI|o|y|yes|YES) 
     375                    echo "OK. I will erase them" 
     376                    IGCM_sys_Rm -f ${RemoveList[*]} 
     377                    ;; 
     378                  non|NON|n|no|NO) 
     379                    echo "OK. I won't erase them" 
     380                    ;; 
     381                  *) 
     382                    echo "I did not recognize your answer." 
     383                    echo "Please respond: oui|OUI|o|y|yes|YES" 
     384                    echo "Or please respond: non|NON|n|no|NO" 
     385                    exit 
     386                    ;; 
     387                  esac 
     388                fi 
     389              fi 
     390              #[ ${FoundCandidat} = true ] && IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag[*]}" 
     391              # 
     392              # TO REWRITE BEGIN 
     393              # 
     394              if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then 
     395                NbCandidats=${#PotentialCompletedFlag[@]} 
     396                countCandid=1 
     397                if [ ${NbCandidats} -eq 0 ] ; then 
     398                  ChunckCompletedFlag="" 
     399                  IGCM_debug_Print 2 -e "\033[1;31mNO CompletedFlag\033[m" 
     400                elif [ ${NbCandidats} -eq 1 ] ; then 
     401                  ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
     402                  IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 
     403                elif [ ${NbCandidats} -gt 1 ] ; then 
     404                  k=1 
     405                  until [ $k -ge ${NbCandidats} ]; do 
     406                    ((k_m1=k-1)) 
     407                    if [ ${PotentialCompletedFlag[${k_m1}]} = ${PotentialCompletedFlag[${k}]} ] ; then 
     408                      ((countCandid=countCandid+1)) 
     409                    fi 
     410                    ((k=k+1)) 
     411                  done 
     412                  if [ ${NbCandidats} -eq ${countCandid} ] ; then 
     413                    ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
     414                    IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 
     415                  else 
     416                    ChunckCompletedFlag=${PotentialCompletedFlag[0]} 
     417                    IGCM_debug_Print 2 -e "\033[1;31mToo Many Potential CompletedFlag\033[m Let start with first CompletedPeriod" 
     418                    IGCM_debug_Print 2 -e "\033[1;31mYou will have to redo TimeSeries_Checker\033[m for other period." 
     419                  fi 
     420                fi 
     421                # 
     422                # TO REWRITE END 
     423                # 
     424                if [ ${action} = true ] ; then 
     425                  IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 
     426                  listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead" 
     427                  export libIGCM=${libIGCM} 
     428                  export SUBMIT_DIR=${CARD_DIR} 
     429                  export POST_DIR=${POST_DIR} 
     430                  export DateBegin=${ChunckDebut} 
     431                  export PeriodDateEnd=${ChunckFin} 
     432                  export CompletedFlag=${ChunckCompletedFlag} 
     433                  export TsTask=Chunck${Dimension} 
     434                  export CompToRead=${comp} 
     435                  export FlagToRead=${i} 
     436                  export NameToRead=${flag_post} 
     437                  export listVarEnv=${listVarEnv} 
     438                  IGCM_sys_MkdirWork ${POST_DIR} 
     439                  IGCM_debug_Verif_Exit_Post 
     440                  Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 
     441                  IGCM_sys_QsubPost create_ts 
     442                  echo 
     443                else 
     444                  IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 
     445                fi 
     446              fi 
     447 
     448              if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then 
     449                eval Launch${Dimension}=true 
     450              fi 
     451 
     452              # Date update 
     453              ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 ) 
     454 
     455              (( YearsChunckLoop = YearsChunckLoop + 1 )) 
     456 
     457              if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then 
     458                ChunckFin=${DateEnd} 
     459              else 
     460                ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} $(( YearsChunckLength * DaysInYear - 1 )) ) 
     461              fi 
     462            done 
     463          done 
     464        else 
     465          ListDimension[0]="" 
     466          TimeSeries=true 
     467          TimeSeries2D=false 
     468          TimeSeries3D=false 
     469          TimeSeriesChunck2D=false 
     470          TimeSeriesChunck3D=false 
     471        fi 
     472      fi 
     473      (( i=i+3 )) 
     474    done 
     475  fi 
    458476done # comp loop 
    459477 
     
    468486 
    469487if [ X${Launch2D} = Xtrue ] ; then 
    470     if [ ${action} = true ] ; then 
    471         #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag2D[*]}" 
    472         IGCM_debug_Print 2 -e "\033[1;31mSubmit 2D\033[m without chunck period ${DateBegin}-${DateEnd}" 
    473         listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 
    474         export libIGCM=${libIGCM} 
    475         export SUBMIT_DIR=${CARD_DIR} 
    476         export POST_DIR=${POST_DIR} 
    477         export DateBegin=${DateBegin} 
    478         export PeriodDateEnd=${DateEnd} 
    479         export CompletedFlag=${CompletedFlag} 
    480         export TsTask=2D 
    481         export listVarEnv=${listVarEnv} 
    482         IGCM_sys_MkdirWork ${POST_DIR} 
    483         IGCM_debug_Verif_Exit_Post 
    484         Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 
    485         IGCM_sys_QsubPost create_ts 
    486         echo 
    487     else 
    488         IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 2D without chunck\033[m period ${DateBegin}-${DateEnd}" 
    489     fi 
     488  if [ ${action} = true ] ; then 
     489    #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag2D[*]}" 
     490    IGCM_debug_Print 2 -e "\033[1;31mSubmit 2D\033[m without chunck period ${DateBegin}-${DateEnd}" 
     491    listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 
     492    export libIGCM=${libIGCM} 
     493    export SUBMIT_DIR=${CARD_DIR} 
     494    export POST_DIR=${POST_DIR} 
     495    export DateBegin=${DateBegin} 
     496    export PeriodDateEnd=${DateEnd} 
     497    export CompletedFlag=${CompletedFlag} 
     498    export TsTask=2D 
     499    export listVarEnv=${listVarEnv} 
     500    IGCM_sys_MkdirWork ${POST_DIR} 
     501    IGCM_debug_Verif_Exit_Post 
     502    Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 
     503    IGCM_sys_QsubPost create_ts 
     504    echo 
     505  else 
     506    IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 2D without chunck\033[m period ${DateBegin}-${DateEnd}" 
     507  fi 
    490508fi 
    491509 
    492510if [ X${Launch3D} = Xtrue ] ; then 
    493     if [ ${action} = true ] ; then 
    494         #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag3D[*]}" 
    495         IGCM_debug_Print 2 -e "\033[1;31mSubmit 3D\033[m without chunck period ${DateBegin}-${DateEnd}" 
    496         listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 
    497         export libIGCM=${libIGCM} 
    498         export SUBMIT_DIR=${CARD_DIR} 
    499         export POST_DIR=${POST_DIR} 
    500         export DateBegin=${DateBegin} 
    501         export PeriodDateEnd=${DateEnd} 
    502         export CompletedFlag=${CompletedFlag} 
    503         export TsTask=3D 
    504         export listVarEnv=${listVarEnv} 
    505         IGCM_sys_MkdirWork ${POST_DIR} 
    506         IGCM_debug_Verif_Exit_Post 
    507         Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 
    508         IGCM_sys_QsubPost create_ts 
    509         echo 
    510     else 
    511         IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 3D without chunck\033[m  period ${DateBegin}-${DateEnd}" 
    512     fi 
     511  if [ ${action} = true ] ; then 
     512    #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag3D[*]}" 
     513    IGCM_debug_Print 2 -e "\033[1;31mSubmit 3D\033[m without chunck period ${DateBegin}-${DateEnd}" 
     514    listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 
     515    export libIGCM=${libIGCM} 
     516    export SUBMIT_DIR=${CARD_DIR} 
     517    export POST_DIR=${POST_DIR} 
     518    export DateBegin=${DateBegin} 
     519    export PeriodDateEnd=${DateEnd} 
     520    export CompletedFlag=${CompletedFlag} 
     521    export TsTask=3D 
     522    export listVarEnv=${listVarEnv} 
     523    IGCM_sys_MkdirWork ${POST_DIR} 
     524    IGCM_debug_Verif_Exit_Post 
     525    Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 
     526    IGCM_sys_QsubPost create_ts 
     527    echo 
     528  else 
     529    IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 3D without chunck\033[m  period ${DateBegin}-${DateEnd}" 
     530  fi 
    513531fi 
  • branches/libIGCM_MPI_OpenMP/AA_atlas_LMDZ

    r571 r592  
    185185    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    186186    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     187    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    187188    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    188189    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    189190else 
    190191    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     192    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    191193    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    192194    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    193195fi 
    194196# 
     197IGCM_sys_MkdirArchive ${R_FIGR} 
    195198 
    196199R_ATLAS=ATLAS/SE_${YEARS} 
     
    228231 
    229232# Save files 
    230 IGCM_sys_Put_Dir ATLAS ${R_SAVE} 
     233IGCM_sys_Put_Dir ATLAS ${R_FIGR} 
    231234IGCM_sys_Rm -Rf ATLAS 
    232235IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc 
    233236 
    234237# DODS copy 
    235 IGCM_sys_TestDirArchive ${R_SAVE}/${R_ATLAS} 
     238IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 
    236239[ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 
    237240 
    238 # Clean RUN_DIR_PATH (necessary for cesium) 
     241# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    239242IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_atlas_ORCA_LIM

    r571 r592  
    185185    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    186186    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     187    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    187188    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    188189    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    189190else 
    190191    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     192    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    191193    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    192194    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    193195fi 
    194196# 
     197IGCM_sys_MkdirArchive ${R_FIGR} 
    195198 
    196199R_ATLAS=ATLAS/SE_${YEARS} 
     
    263266 
    264267# Save files 
    265 IGCM_sys_Put_Dir ATLAS ${R_SAVE} 
     268IGCM_sys_Put_Dir ATLAS ${R_FIGR} 
    266269 
    267270IGCM_sys_Rm -Rf ATLAS 
     
    274277 
    275278# DODS copy 
    276 IGCM_sys_TestDirArchive ${R_SAVE}/${R_ATLAS} 
     279IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 
    277280[ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 
    278281 
    279 # Clean RUN_DIR_PATH (necessary for cesium) 
     282# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    280283IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_atlas_ORCHIDEE

    r571 r592  
    194194    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    195195    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     196    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    196197    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    197198    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    198199else 
    199200    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     201    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    200202    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    201203    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    202204fi 
    203205# 
     206IGCM_sys_MkdirArchive ${R_FIGR} 
    204207 
    205208R_ATLAS=ATLAS/SE_${YEARS} 
     
    234237 
    235238# Save files 
    236 IGCM_sys_Put_Dir ATLAS ${R_SAVE} 
     239IGCM_sys_Put_Dir ATLAS ${R_FIGR} 
    237240IGCM_sys_Rm -Rf ATLAS 
    238241IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc 
    239242 
    240243# DODS copy 
    241 IGCM_sys_TestDirArchive ${R_SAVE}/${R_ATLAS} 
     244IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 
    242245[ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 
    243246 
    244 # Clean RUN_DIR_PATH (necessary for cesium) 
     247# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    245248IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_atlas_PISCES

    r571 r592  
    186186    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    187187    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     188    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    188189    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    189190    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    190191else 
    191192    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     193    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    192194    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    193195    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    194196fi 
    195197# 
     198IGCM_sys_MkdirArchive ${R_FIGR} 
    196199 
    197200R_ATLAS=ATLAS/SE_${YEARS} 
     
    232235 
    233236# Save files 
    234 IGCM_sys_Put_Dir ATLAS ${R_SAVE} 
     237IGCM_sys_Put_Dir ATLAS ${R_FIGR} 
    235238 
    236239IGCM_sys_Rm -Rf ATLAS 
     
    239242 
    240243# DODS copy 
    241 IGCM_sys_TestDirArchive ${R_SAVE}/${R_ATLAS} 
     244IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 
    242245[ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 
    243246 
    244 # Clean RUN_DIR_PATH (necessary for cesium) 
     247# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    245248IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_create_multi_se

    r571 r592  
    546546fi 
    547547 
    548 # Clean RUN_DIR_PATH (necessary for cesium) 
     548# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    549549IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_create_se

    r571 r592  
    697697fi 
    698698 
    699 # Clean RUN_DIR_PATH (necessary for cesium) 
     699# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    700700IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_create_ts

    r571 r592  
    244244fi 
    245245 
    246 # 
     246#================================== 
    247247# First of all 
    248248# 
     249typeset option 
     250 
     251#================================== 
     252# Read UserChoices section:  
    249253IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card UserChoices 
    250 typeset option 
     254echo 
     255IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices" 
    251256for option in ${config_UserChoices[*]} ; do 
    252257    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option} 
     258    eval auxprint=\${config_UserChoices_${option}} 
     259    IGCM_debug_Print 3 "${option} : ${auxprint}" 
    253260done 
    254261# 
    255262echo 
    256 IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices" 
    257 IGCM_debug_PrintVariables 3 config_UserChoices_JobName 
    258 IGCM_debug_PrintVariables 3 config_UserChoices_LongName 
    259 IGCM_debug_PrintVariables 3 config_UserChoices_TagName 
    260 IGCM_debug_PrintVariables 3 config_UserChoices_SpaceName 
    261 IGCM_debug_PrintVariables 3 config_UserChoices_ExperimentName 
    262 IGCM_debug_PrintVariables 3 config_UserChoices_CalendarType 
    263 IGCM_debug_PrintVariables 3 config_UserChoices_DateBegin 
    264 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd 
    265 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength 
     263 
     264#================================== 
     265# Read Post section:  
     266IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post 
    266267echo 
     268IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 
     269for option in ${config_Post[*]} ; do 
     270  IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post ${option} 
     271  eval auxprint=\${config_Post_${option}} 
     272  IGCM_debug_Print 3 "${option} : ${auxprint}" 
     273done 
     274# 
     275echo 
     276 
     277#================================== 
     278# Define default value to keep compatibility with previous card: means before changes due to TGCC  
     279[ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} 
     280 
     281#================================== 
     282# If pack is active then PackFrequency overule the config_UserChoices_PeriodLength 
     283if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then 
     284  config_UserChoices_PeriodLength=${config_Post_PackFrequency} 
     285fi 
    267286 
    268287#================================== 
     
    869888fi 
    870889 
    871 # Clean RUN_DIR_PATH (necessary for cesium) 
     890# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    872891IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
    873892 
  • branches/libIGCM_MPI_OpenMP/AA_monitoring

    r571 r592  
    231231    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    232232    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     233    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    233234    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    234235    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    235236else 
    236237    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     238    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    237239    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    238240    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    239241fi 
     242 
     243IGCM_sys_MkdirArchive ${R_FIGR} 
    240244# 
    241 IGCM_sys_TestDirArchive ${R_SAVE}/MONITORING 
     245IGCM_sys_TestDirArchive ${R_FIGR}/MONITORING 
    242246if [ $? = 0 ] ; then 
    243247    IGCM_debug_Print 1 "Get MONITORING directory from archive" 
    244     IGCM_sys_Get_Dir ${R_SAVE}/MONITORING ${RUN_DIR} 
     248    IGCM_sys_Get_Dir ${R_FIGR}/MONITORING ${RUN_DIR} 
    245249else 
    246250    IGCM_debug_Print 1 "MONITORING first pass. Nothing has been done before" 
     
    292296 
    293297# Save files 
    294 IGCM_sys_Put_Dir MONITORING ${R_SAVE} 
     298IGCM_sys_Put_Dir MONITORING ${R_FIGR} 
    295299 
    296300# Dods copy 
    297301IGCM_sys_Put_Dods MONITORING 
    298302 
    299 # Clean RUN_DIR_PATH (necessary for cesium) 
     303# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    300304IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
  • branches/libIGCM_MPI_OpenMP/AA_pack_debug

    r571 r592  
    33#-Q- cesium ## CESIUM   CEA ## 
    44#-Q- cesium ###################### 
    5 #-Q- cesium #MSUB -r PACKDEBUG    # Nom du job                 
     5#-Q- cesium #MSUB -r PACKDEBUG    # Nom du job 
    66#-Q- cesium #MSUB -N 1              # Reservation du noeud 
    77#-Q- cesium #MSUB -n 1              # Reservation du processus 
     
    2727#-Q- sx8brodie # Nom du travail LoadLeveler 
    2828#-Q- sx8brodie # @ job_name   = PACKDEBUG 
    29 #-Q- sx8brodie # Fichier de sortie standard du travail        
     29#-Q- sx8brodie # Fichier de sortie standard du travail 
    3030#-Q- sx8brodie # @ output     = $(job_name).$(jobid) 
    3131#-Q- sx8brodie # Fichier de sortie d'erreur du travail 
     
    8181#-Q- sx9mercure ## CESIUM   CEA ## 
    8282#-Q- sx9mercure ###################### 
    83 #-Q- sx9mercure #MSUB -r PACKDEBUG    # Nom du job                 
     83#-Q- sx9mercure #MSUB -r PACKDEBUG    # Nom du job 
    8484#-Q- sx9mercure #MSUB -N 1              # Reservation du noeud 
    8585#-Q- sx9mercure #MSUB -n 1              # Reservation du processus 
     
    9191#-Q- titane ## TITANE   CEA     ## 
    9292#-Q- titane ###################### 
    93 #-Q- titane #MSUB -r PACKDEBUG    # Nom du job                 
     93#-Q- titane #MSUB -r PACKDEBUG    # Nom du job 
    9494#-Q- titane #MSUB -eo 
    9595#-Q- titane #MSUB -n 1              # Reservation du processus 
     
    178178#RESTART/ATM_****.nc 
    179179#RESTART/OCE_****.nc 
    180 #Attention de bien conserver les dates d'origines  
     180#Attention de bien conserver les dates d'origines 
    181181# 
    182182#Dans le cadre de la production nouvelle chaine 
    183183#ils auront directement le bon nom 
    184184# 
    185 #On veut egalement que l'archive soit par periode de temps  
    186 # cette periode est definie par la taille du pack donc connue  
    187 # en entree du script (1M, 1Y, 5Y, 10Y etc...)  
    188 # 
    189 # $1= PATH/config_card d'une simulation avec  
    190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd/PATH_SIMUL 
     185#On veut egalement que l'archive soit par periode de temps 
     186# cette periode est definie par la taille du pack donc connue 
     187# en entree du script (1M, 1Y, 5Y, 10Y etc...) 
     188# 
     189# $1= PATH/config_card d'une simulation avec 
     190# TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd 
    191191# $2=PeriodPack en M/m ou Y/y 
    192192 
     
    223223fi 
    224224 
    225 # 
     225#==================================================== 
    226226# First of all 
    227227# 
    228 #### 0- lecture de config.card  
    229 #### on veut les renseignements suivants :  
    230 #### JobName, PATH_SIMUL, DateBegin et DateEnd 
    231  
     228# Read config.card 
    232229IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card UserChoices 
    233230typeset option 
     
    250247 
    251248#==================================================== 
    252 #R_SAVE : Job output storage directory 
    253 #R_BUFR : Job output buffered directory 
     249# Prepare environment 
     250#R_SAVE      : Job output storage directory 
     251#R_BUFR      : Job output buffered directory 
     252#STORE_DEBUG : Where we store tar files 
    254253 
    255254if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then 
     
    264263[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive" 
    265264 
    266 #### Preparation de l'environnement 
    267 # repertoire dans lequel seront crees les archives 
    268 #STORE_DEBUG=/scratch/cont003/p86denv/Pack_Test/DEBUG 
     265#STORE_DEBUG=/ccc/store/cont003/dsm/p86denv/.../DEBUG 
    269266STORE_DEBUG=${R_SAVE}/DEBUG 
    270267IGCM_sys_MkdirArchive ${STORE_DEBUG} 
    271268 
     269#cd ${STORE_DEBUG} 
     270#rm -f * 
     271 
    272272# Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure) 
    273273JobName=${config_UserChoices_JobName} 
    274 PATH_SIMUL=${R_BUFR} 
    275 echo $JobName $PATH_SIMUL $DateBegin $DateEnd 
    276  
    277 #### 1- renommer les fichiers ###### 
    278 #cd ${STORE_DEBUG} 
    279 #rm -rf * 
    280  
    281 # On les copie sur le scratchdir en changeant le nom et conservant la date 
     274echo $JobName $DateBegin $DateEnd 
     275 
    282276# Clear txt file lists 
    283277rm -f ${RUN_DIR}/liste_debug_files.txt 
     
    286280 
    287281# Create sorted debug list to work with 
    288 find ${PATH_SIMUL}/*/Debug -type f | sort >> ${RUN_DIR}/liste_debug_files.txt 
     282find ${R_BUFR}/*/Debug -type f | sort >> ${RUN_DIR}/liste_debug_files.txt 
    289283 
    290284# Rename debug files we will work with using symlinks 
     
    312306  IGCM_debug_PrintVariables 3 number_pack 
    313307 
    314   DaysTemp=$( IGCM_date_DaysInNextPeriod ${date_begin_pack} ${PeriodPack} ) 
    315   date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} ${DaysTemp} ) 
     308  DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} ) 
     309  date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) ) 
    316310 
    317311  for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_debug_files.txt ); do 
    318312    extract_date_file=$( echo ${file}  | sed -e "s/.*${JobName}_[0-9]*_//" ) 
    319313    date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 
    320 #   echo pack n°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack}  
    321     if [ ${date_file} -lt ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then  
     314#   echo pack n°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack} 
     315    if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 
    322316        echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 
    323         echo $( ls -L ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 
    324  
     317        echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 
    325318#    Will not work. Need to find a better ordering. 
    326319#    elif [ ${date_file} -ge ${date_end_pack} ] ; then 
     
    350343 
    351344done 
     345 
     346# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
     347IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
     348 
     349date 
  • branches/libIGCM_MPI_OpenMP/AA_pack_restart

    r571 r592  
    33#-Q- cesium ## CESIUM   CEA ## 
    44#-Q- cesium ###################### 
    5 #-Q- cesium #MSUB -r PACKRESTART    # Nom du job                 
     5#-Q- cesium #MSUB -r PACKRESTART    # Nom du job 
    66#-Q- cesium #MSUB -N 1              # Reservation du noeud 
    77#-Q- cesium #MSUB -n 1              # Reservation du processus 
     
    2727#-Q- sx8brodie # Nom du travail LoadLeveler 
    2828#-Q- sx8brodie # @ job_name   = PACKRESTART 
    29 #-Q- sx8brodie # Fichier de sortie standard du travail        
     29#-Q- sx8brodie # Fichier de sortie standard du travail 
    3030#-Q- sx8brodie # @ output     = $(job_name).$(jobid) 
    3131#-Q- sx8brodie # Fichier de sortie d'erreur du travail 
     
    8181#-Q- sx9mercure ## CESIUM   CEA ## 
    8282#-Q- sx9mercure ###################### 
    83 #-Q- sx9mercure #MSUB -r PACKRESTART    # Nom du job                 
     83#-Q- sx9mercure #MSUB -r PACKRESTART    # Nom du job 
    8484#-Q- sx9mercure #MSUB -N 1              # Reservation du noeud 
    8585#-Q- sx9mercure #MSUB -n 1              # Reservation du processus 
     
    9191#-Q- titane ## TITANE   CEA     ## 
    9292#-Q- titane ###################### 
    93 #-Q- titane #MSUB -r PACKRESTART    # Nom du job                 
     93#-Q- titane #MSUB -r PACKRESTART    # Nom du job 
    9494#-Q- titane #MSUB -eo 
    9595#-Q- titane #MSUB -n 1              # Reservation du processus 
     
    178178#RESTART/ATM_****.nc 
    179179#RESTART/OCE_****.nc 
    180 #Attention de bien conserver les dates d'origines  
     180#Attention de bien conserver les dates d'origines 
    181181# 
    182182#Dans le cadre de la production nouvelle chaine 
    183183#ils auront directement le bon nom 
    184184# 
    185 #On veut egalement que l'archive soit par periode de temps  
    186 # cette periode est definie par la taille du pack donc connue  
    187 # en entree du script (1M, 1Y, 5Y, 10Y etc...)  
    188 # 
    189 # $1= PATH/config_card d'une simulation avec  
    190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd/PATH_SIMUL 
     185#On veut egalement que l'archive soit par periode de temps 
     186# cette periode est definie par la taille du pack donc connue 
     187# en entree du script (1M, 1Y, 5Y, 10Y etc...) 
     188# 
     189# $1= PATH/config_card d'une simulation avec 
     190# TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd 
    191191# $2=PeriodPack en M/m ou Y/y 
    192192 
     
    223223fi 
    224224 
    225 # 
     225#==================================================== 
    226226# First of all 
    227227# 
    228 #### 0- lecture de config.card  
    229 #### on veut les renseignements suivants :  
    230 #### JobName, PATH_SIMUL, DateBegin et DateEnd 
     228# Read config.card 
    231229 
    232230IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card UserChoices 
     
    250248 
    251249#==================================================== 
    252 #R_SAVE : Job output storage directory 
    253 #R_BUFR : Job output buffered directory 
     250# Prepare environment 
     251#R_SAVE        : Job output storage directory 
     252#R_BUFR        : Job output buffered directory 
     253#STORE_RESTART : Where we store tar files 
    254254 
    255255if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then 
     
    264264[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive" 
    265265 
    266 #### Preparation de l'environnement 
    267 # repertoire dans lequel seront crees les archives 
    268 #STORE_RESTART=/scratch/cont003/p86denv/Pack_Test/RESTART 
     266#STORE_RESTART=/ccc/store/cont003/dsm/p86denv/.../RESTART 
    269267STORE_RESTART=${R_SAVE}/RESTART 
    270268IGCM_sys_MkdirArchive ${STORE_RESTART} 
    271269 
     270#cd ${STORE_RESTART} 
     271#rm -f * 
     272 
    272273# Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure) 
    273274JobName=${config_UserChoices_JobName} 
    274 PATH_SIMUL=${R_BUFR} 
    275 echo $JobName $PATH_SIMUL $DateBegin $DateEnd 
    276  
    277 #### 1- renommer les fichiers ###### 
    278 #cd ${STORE_RESTART} 
    279 #rm -rf * 
    280  
    281 # On les copie sur le scratchdir en changeant le nom et conservant la date 
     275echo $JobName $R_BUFR $DateBegin $DateEnd 
     276 
    282277# Clear txt file lists 
    283278rm -f ${RUN_DIR}/liste_restart_files.txt 
     
    286281 
    287282# Create sorted restart list to work with 
    288 find ${PATH_SIMUL}/*/Restart -name "*nc" | sort >> ${RUN_DIR}/liste_restart_files.txt 
     283find ${R_BUFR}/*/Restart -name "*nc" | sort >> ${RUN_DIR}/liste_restart_files.txt 
    289284 
    290285# Rename restart files we will work with using symlinks 
     
    312307  IGCM_debug_PrintVariables 3 number_pack 
    313308 
    314   DaysTemp=$( IGCM_date_DaysInNextPeriod ${date_begin_pack} ${PeriodPack} ) 
    315   date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} ${DaysTemp} ) 
     309  DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} ) 
     310  date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) ) 
    316311 
    317312  for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_restart_files.txt ); do 
    318313    extract_date_file=$( echo ${file}  | sed -e "s/.*${JobName}_//" ) 
    319314    date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 
    320 #   echo pack n°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack}  
    321     if [ ${date_file} -lt ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then  
    322         echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 
    323         echo $( ls -L ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 
    324  
    325 #    Will not work. Need to find a better ordering. 
    326 #    elif [ ${date_file} -ge ${date_end_pack} ] ; then 
    327 #      break 
     315#   echo pack n°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack} 
     316    if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 
     317      echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 
     318      echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 
     319#   Will not work. Need to find a better ordering. 
     320#   elif [ ${date_file} -ge ${date_end_pack} ] ; then 
     321#     break 
    328322    fi 
    329323  done 
     
    350344 
    351345done 
     346 
     347# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
     348IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
     349 
     350date 
  • branches/libIGCM_MPI_OpenMP/AA_rebuild_fromArchive

    r571 r592  
    275275done 
    276276 
    277 # Clean RUN_DIR_PATH (necessary for cesium only) 
     277# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    278278IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
     279 
     280date 
  • branches/libIGCM_MPI_OpenMP/AA_rebuild_fromWorkdir

    r571 r592  
    275275done 
    276276 
    277 # Clean RUN_DIR_PATH (necessary for cesium only) 
     277# Clean RUN_DIR_PATH (necessary for cesium and titane only) 
    278278IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 
     279 
     280date 
  • branches/libIGCM_MPI_OpenMP/libIGCM_comp/libIGCM_comp.ksh

    r572 r592  
    482482        eval file_out=${file_out_} 
    483483 
    484         IGCM_sys_Get ${file_in} ${file_out} 
    485         IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     484        IGCM_sys_IsFileArchived ${file_in} 
     485        if [ $? = 0 ] ; then 
     486          IGCM_sys_Get ${file_in} ${file_out} 
     487          #IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 
     488        else 
     489          IGCM_sys_Cp ${file_in} ${file_out} 
     490        fi 
    486491 
    487492        (( i=i+2 )) 
     
    603608  echo 
    604609 
    605   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 
    606612  typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_  
    607613  typeset file_in file_out file_in_ file_out_ file_in_Name 
     
    632638        eval CompOldName=${comp} 
    633639      else 
    634                 # Read component Restarts parameters 
     640        # Read component Restarts parameters 
    635641        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} Restart 
    636642        eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1 
     
    726732 
    727733          if [ -f ${Path_BUF}*.nc ] ; then 
     734            IGCM_debug_Print 3 "Buffered restart" 
    728735            Buffered=true 
     736            Archived=false 
     737            Tared=false 
    729738            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) 
    730745          else 
     746            IGCM_debug_Print 3 "Tared restart" 
    731747            Buffered=false 
    732             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 ) 
    733762          fi 
    734763 
     
    739768              if [ X${Buffered} = Xtrue ] ; then 
    740769                IGCM_sys_GetBuffer ${Path_BUF}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 
    741               else 
     770              elif [ X${Archived} = Xtrue ] ; then 
    742771                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 
    743774              fi 
    744775              (( j=j+1 )) 
     
    747778            if [ X${Buffered} = Xtrue ] ; then 
    748779              eval IGCM_sys_GetBuffer \${R_BUF_${comp}_R}/${file_in_Name} ${file_out} 
    749             else 
     780            elif [ X${Archived} = Xtrue ] ; then 
    750781              eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out} 
    751             fi 
    752           fi 
    753  
     782            elif [ X${Tared} = Xtrue ] ; then 
     783              IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out} 
     784            fi 
     785          fi 
    754786          (( i=i+3 )) 
    755787        done 
     
    919951          until [ $j -ge $nb_restart_file ]; do 
    920952            j4=${j} 
    921             if [ X${Pack} = Xtrue ] ; then 
     953            if [ X${Pack} = Xtrue ] ; then 
    922954              eval IGCM_sys_PutBuffer_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_BUF_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 
    923             else 
    924               eval IGCM_sys_Put_Rest       ${generic_restart_file_name_in}_${j4}.nc \${R_OUT_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 
    925             fi 
     955            else 
     956              eval IGCM_sys_Put_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_OUT_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 
     957            fi 
    926958            if [ ! ${file_in} = ${file_outin} ] ; then 
    927959              if ( ${ExitFlag} ) ; then 
     
    934966          done 
    935967        else 
    936           if [ X${Pack} = Xtrue ] ; then 
     968          if [ X${Pack} = Xtrue ] ; then 
    937969            eval IGCM_sys_PutBuffer_Rest ${file_in} \${R_BUF_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 
    938           else 
    939             eval IGCM_sys_Put_Rest      ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 
    940           fi 
     970          else 
     971            eval IGCM_sys_Put_Rest ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 
     972          fi 
    941973          if [ ! ${file_in} = ${file_outin} ] ; then 
    942974            if ( ${ExitFlag} ) ; then 
     
    9761008        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
    9771009        eval file_out=${file_out_} 
     1010        # 
     1011        # Override file_out path remplacing R_SAVE by R_BUFR 
     1012        # 
     1013        if [ X${Pack} = Xtrue ] ; then 
     1014          file_out=$( echo $file_out | sed "s:^$R_SAVE:$R_BUFR:" ) 
     1015        fi 
     1016        # 
     1017        # Not necessarily the best option. /!\ Potential side effects /!\ 
     1018        # 
    9781019        (( i_ = i+2 )) 
    9791020        eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
     
    10061047                echo "echo                                              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    10071048                echo "export R_SAVE=${R_SAVE}                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1049                echo "export R_BUFR=${R_BUFR}                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    10081050                echo "export config_UserChoices_JobName=${config_UserChoices_JobName} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    10091051              fi 
     
    10271069            # 
    10281070            if [ $DRYRUN -le 1 ]; then 
    1029               echo "IGCM_sys_Put_Out ${file_in} ${file_out}             " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1071              if [ X${Pack} = Xtrue ] ; then 
     1072                echo "IGCM_sys_PutBuffer_Out ${file_in} ${file_out}     " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1073              else 
     1074                echo "IGCM_sys_Put_Out ${file_in} ${file_out}           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1075              fi 
    10301076              echo "IGCM_debug_Verif_Exit_Post                          " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    10311077              echo "IGCM_sys_Rm ${generic_file_name}_*.nc               " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     
    10661112              done 
    10671113              # 
    1068               echo "IGCM_sys_Put_Out ${file_in} ${file_out}           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1114              if [ X${Pack} = Xtrue ] ; then 
     1115                echo "IGCM_sys_PutBuffer_Out ${file_in} ${file_out}   " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1116              else 
     1117                echo "IGCM_sys_Put_Out ${file_in} ${file_out}         " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     1118              fi 
    10691119              echo "IGCM_debug_Verif_Exit_Post                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    10701120              # 
     
    10741124            # No Patch, No Asynchronous rebuild, online rebuild has been done or was not needed 
    10751125            # 
    1076             IGCM_sys_Put_Out ${file_in} ${file_out} 
     1126            if [ X${Pack} = Xtrue ] ; then 
     1127              IGCM_sys_PutBuffer_Out ${file_in} ${file_out} 
     1128            else 
     1129              IGCM_sys_Put_Out ${file_in} ${file_out} 
     1130            fi 
    10771131            eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 
    10781132            if [ ${nb_rebuild_file} -gt 1 ] ; then 
     
    11301184              done 
    11311185              if [ X${Pack} = Xtrue ] ; then 
    1132                 eval IGCM_sys_PutBuffer_Out ${file_out} \${R_BUF_${comp}_D}/${file_out} 
    1133               else 
    1134                 eval IGCM_sys_Put_Out      ${file_out} \${R_OUT_${comp}_D}/${file_out} 
    1135               fi 
     1186                eval IGCM_sys_PutBuffer_Out ${file_out} \${R_BUF_${comp}_D}/${file_out} 
     1187              else 
     1188                eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}_D}/${file_out} 
     1189              fi 
    11361190              eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_out}" > /dev/null 2>&1 
    11371191 
     
    11441198                if [ X${Pack} = Xtrue ] ; then 
    11451199                  eval IGCM_sys_PutBuffer_Out ${file} \${R_BUF_${comp}_D}/${PREFIX}_${file} 
    1146                 else 
    1147                   eval IGCM_sys_Put_Out       ${file} \${R_OUT_${comp}_D}/${PREFIX}_${file} 
    1148                 fi 
     1200                else 
     1201                  eval IGCM_sys_Put_Out ${file} \${R_OUT_${comp}_D}/${PREFIX}_${file} 
     1202                fi 
    11491203                eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1 
    11501204 
     
    11601214            if [ X${Pack} = Xtrue ] ; then 
    11611215              eval IGCM_sys_PutBuffer_Out ${file_in} \${R_BUF_${comp}_D}/${file_out} 
    1162             else 
    1163               eval IGCM_sys_Put_Out       ${file_in} \${R_OUT_${comp}_D}/${file_out} 
    1164             fi 
     1216            else 
     1217              eval IGCM_sys_Put_Out ${file_in} \${R_OUT_${comp}_D}/${file_out} 
     1218            fi 
    11651219            eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 
    11661220 
  • branches/libIGCM_MPI_OpenMP/libIGCM_config/libIGCM_config.ksh

    r571 r592  
    6161 
    6262  #================================== 
     63  # Read UserChoices section:  
    6364  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card UserChoices 
    6465 
     
    8889 
    8990  #================================== 
    90  
     91  # Read Post section:  
     92  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Post 
     93  echo 
     94  IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 
     95 
     96  for option in ${config_Post[*]} ; do 
     97    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Post ${option} 
     98    eval auxprint=\${config_Post_${option}} 
     99    IGCM_debug_Print 3 "${option} : ${auxprint}" 
     100  done 
     101 
     102  #================================== 
     103  # Define default value to keep compatibility with previous card: means before changes due to TGCC  
     104  [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} 
     105 
     106  #================================== 
     107  # Read ListOfComponents section:  
    91108  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card ListOfComponents 
    92109  for comp in ${config_ListOfComponents[*]} ; do 
     
    189206    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 
    190207    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
     208    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    191209    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    192210    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 
    193211  else 
    194212    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     213    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    195214    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    196215    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 
     
    218237    fi 
    219238  fi 
    220  
    221   #================================== 
    222   # Read Post section:  
    223   IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Post 
    224  
    225   echo 
    226   IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 
    227  
    228   for option in ${config_Post[*]} ; do 
    229     IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Post ${option} 
    230     eval auxprint=\${config_Post_${option}} 
    231     IGCM_debug_Print 3 "${option} : ${auxprint}" 
    232   done 
    233  
    234   #================================== 
    235   # Define default value to keep compatibility with previous card: means before changes due to TGCC  
    236   [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} 
    237239 
    238240  #==================================================== 
  • branches/libIGCM_MPI_OpenMP/libIGCM_date/libIGCM_date.ksh

    r571 r592  
    944944} 
    945945 
     946#D-#================================================================== 
     947#D-function IGCM_date_DaysInCurrentPeriod () 
     948#D-* Purpose: Give the numbers of days during the Current prd1 period from grg1 date  
     949#D-* Usage: IGCM_date_DaysInCurrentPeriod grg1 prd1 
     950#D-         where grg1 gregorian date is in the form yyyymmdd 
     951#D-         where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer 
     952#D- 
     953function IGCM_date_DaysInCurrentPeriod { 
     954  IGCM_debug_PushStack "IGCM_date_DaysInCurrentPeriod" $@ 
     955  typeset Length Period 
     956  Period=${2} 
     957  case ${Period} in 
     958  *Y|*y)  
     959    PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' ) 
     960    IGCM_date_GetYearMonth ${1} year month 
     961    year=$( IGCM_date_SupressZeros ${year} ) 
     962    (( Length=0 )) 
     963    (( i=0 )) 
     964    until [ $i -ge $PeriodLengthInYears ] ; do 
     965      (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) ))  
     966      (( i=i+1 )) 
     967    done 
     968    ;; 
     969  *M|*m)  
     970    PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' ) 
     971    IGCM_date_GetYearMonth ${1} year month 
     972    year=$( IGCM_date_SupressZeros ${year} ) 
     973    (( year0 = year )) 
     974    (( Length=0 )) 
     975    (( i=0 )) 
     976    until [ $i -ge $PeriodLengthInMonths ] ; do 
     977      if [ $(( month + i )) -lt 13 ] ; then 
     978        (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i )) ) )) 
     979      else 
     980        (( year = year0 + 1 )) 
     981        (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 )) ) )) 
     982      fi 
     983      (( i=i+1 )) 
     984    done 
     985    ;; 
     986  *D|*d) 
     987    Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;; 
     988  *) 
     989    IGCM_debug_Exit "IGCM_date_DaysInCurrentPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D." 
     990    IGCM_debug_Verif_Exit_Post ;; 
     991  esac 
     992  echo ${Length} 
     993 
     994  IGCM_debug_PopStack "IGCM_date_DaysInCurrentPeriod" 
     995} 
    946996 
    947997#D-#================================================================== 
  • branches/libIGCM_MPI_OpenMP/libIGCM_post/IGCM_Patch_20091118_mask.ksh

    r373 r592  
    2020    IGCM_debug_PushStack "IGCM_Patch_mask" $@ 
    2121 
    22     [ -f ${config_UserChoices_JobName}_mesh_mask.nc ] || IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 
     22    if [ ! -f ${config_UserChoices_JobName}_mesh_mask.nc ] ; then 
     23      if [ -f ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then 
     24        IGCM_sys_GetBuffer ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 
     25      elif [ -f ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then 
     26        IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 
     27      else 
     28        IGCM_debug_Exit "mesh_mask can not be found. Stop." 
     29        IGCM_debug_Exit "neither here ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc" 
     30        IGCM_debug_Exit "nor here ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc" 
     31        IGCM_debug_Verif_Exit_Post 
     32      fi 
     33    fi 
    2334 
    2435    filename=${1} 
  • branches/libIGCM_MPI_OpenMP/libIGCM_post/libIGCM_post.ksh

    r571 r592  
    248248          [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 )) 
    249249          # Starting Year of the current chunck 
    250           ChunckTsYearBegin=$(( ${NbYearsChunckLoop} *  ${YearsChunckLength} + ${YearBegin} )) 
     250          ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} )) 
    251251          # Starting date of the current chunck 
    252252          ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01 
     
    415415  fi 
    416416 
     417  #============== PACK PROCESSING FOR RESTART AND DEBUG FILES =============# 
     418  if [ ${PackFrequency} = true ] ; then 
     419    IGCM_debug_Print 1 "PACK POST-PROCESSING" 
     420    echo 
     421    ## Need to Remember This One 
     422    SavedDateBegin=${DateBegin} 
     423    ## Need to Remember This One 
     424    SavedDateEnd=${DateEnd} 
     425    # 
     426    DaysTemp=$(( $( IGCM_date_DaysInPreviousPeriod ${PeriodDateEnd} ${config_Post_PackFrequency} end ) - 1 )) 
     427    # 
     428    PackDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} -${DaysTemp} ) 
     429    # 
     430    script=pack_debug 
     431    # 
     432    Script_Post_Output=${script}.${PeriodDateEnd} 
     433    # 
     434    listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,DateBegin,DateEnd,PeriodPack,StandAlone" 
     435    IGCM_sys_RshPost <<-EOF 
     436    export DEBUG_debug=${DEBUG_debug} 
     437    export MODIPSL=${MODIPSL} 
     438    export libIGCM_SX=${libIGCM} 
     439    export libIGCM=${libIGCM_POST} 
     440    export SUBMIT_DIR=${SUBMIT_DIR} 
     441    export POST_DIR=${POST_DIR} 
     442    export MASTER=${MASTER} 
     443    export DateBegin=${PackDateBegin} 
     444    export DateEnd=${PeriodDateEnd} 
     445    export PeriodPack=${config_Post_PackFrequency} 
     446    export StandAlone=false 
     447    export listVarEnv=${listVarEnv} 
     448    export Script_Post_Output=${Script_Post_Output} 
     449    . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 
     450    . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 
     451    IGCM_sys_MkdirWork ${POST_DIR} 
     452    IGCM_debug_Verif_Exit_Post 
     453    IGCM_sys_QsubPost ${script} 
     454EOF 
     455    # 
     456    script=pack_restart 
     457    # 
     458    Script_Post_Output=${script}.${PeriodDateEnd} 
     459    # 
     460    IGCM_sys_RshPost <<-EOF 
     461    export DEBUG_debug=${DEBUG_debug} 
     462    export MODIPSL=${MODIPSL} 
     463    export libIGCM_SX=${libIGCM} 
     464    export libIGCM=${libIGCM_POST} 
     465    export SUBMIT_DIR=${SUBMIT_DIR} 
     466    export POST_DIR=${POST_DIR} 
     467    export MASTER=${MASTER} 
     468    export DateBegin=${PackDateBegin} 
     469    export DateEnd=${PeriodDateEnd} 
     470    export PeriodPack=${config_Post_PackFrequency} 
     471    export StandAlone=false 
     472    export listVarEnv=${listVarEnv} 
     473    export Script_Post_Output=${Script_Post_Output} 
     474    . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 
     475    . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 
     476    IGCM_sys_MkdirWork ${POST_DIR} 
     477    IGCM_debug_Verif_Exit_Post 
     478    IGCM_sys_QsubPost ${script} 
     479EOF 
     480    # 
     481    script=pack_output 
     482    # 
     483    Script_Post_Output=${script}.${PeriodDateEnd} 
     484    # 
     485    if [ ${RebuildFrequency} = true ] ; then 
     486      # 
     487      if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 
     488        # 
     489#       if [ X${MASTER} = Xtitane ] ; then 
     490#         echo "IGCM_sys_RshPost <<-EOF"                     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     491#       fi 
     492        echo "export DEBUG_debug=${DEBUG_debug}              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     493        echo "export MODIPSL=${MODIPSL}                      " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     494        echo "export libIGCM_SX=${libIGCM}                   " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     495        echo "export libIGCM=${libIGCM_POST}                 " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     496        echo "export SUBMIT_DIR=${SUBMIT_DIR}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     497        echo "export POST_DIR=${POST_DIR}                    " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     498        echo "export MASTER=${MASTER}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     499        echo "export DateBegin=${PackDateBegin}              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     500        echo "export DateEnd=${PeriodDateEnd}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     501        echo "export PeriodPack=${config_Post_PackFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     502        echo "export StandAlone=false                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     503        echo "export listVarEnv=${listVarEnv}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     504        echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     505        echo "export script=${script}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     506#       if [ X${MASTER} = Xtitane ] ; then 
     507#         echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     508#         echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh"     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     509#       fi 
     510        echo "IGCM_sys_MkdirWork ${POST_DIR}                 " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     511        echo "IGCM_debug_Verif_Exit_Post                     " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     512        echo "IGCM_sys_QsubPost ${script}                    " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     513#       if [ X${MASTER} = Xtitane ] ; then 
     514#         echo "EOF"                                         >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     515#       fi 
     516      fi 
     517    else 
     518      IGCM_sys_RshPost <<-EOF 
     519    export DEBUG_debug=${DEBUG_debug} 
     520    export MODIPSL=${MODIPSL} 
     521    export libIGCM_SX=${libIGCM} 
     522    export libIGCM=${libIGCM_POST} 
     523    export SUBMIT_DIR=${SUBMIT_DIR} 
     524    export POST_DIR=${POST_DIR} 
     525    export MASTER=${MASTER} 
     526    export DateBegin=${PackDateBegin} 
     527    export DateEnd=${PeriodDateEnd} 
     528    export PeriodPack=${config_Post_PackFrequency} 
     529    export StandAlone=false 
     530    export listVarEnv=${listVarEnv} 
     531    export Script_Post_Output=${Script_Post_Output} 
     532    . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 
     533    . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 
     534    IGCM_sys_MkdirWork ${POST_DIR} 
     535    IGCM_debug_Verif_Exit_Post 
     536    IGCM_sys_QsubPost ${script} 
     537EOF 
     538    export DateBegin=${SavedDateBegin} 
     539    export DateEnd=${SavedDateEnd} 
     540    fi 
     541  fi 
     542 
    417543  #============== REBUILD POST-PROCESSING =============# 
    418544  if [ X${AsynchronousRebuild} = Xtrue ] ; then 
     
    476602    IGCM_sys_QsubPost ${script} 
    477603EOF 
    478   fi 
    479  
    480   #============== PACK PROCESSING FOR RESTART AND DEBUG FILES =============# 
    481   if [ ${PackFrequency} = true ] ; then 
    482     IGCM_debug_Print 1 "PACK POST-PROCESSING" 
    483     echo 
    484     ## Need to Remember This One 
    485     SavedDateBegin=${DateBegin} 
    486     ## Need to Remember This One 
    487     SavedDateEnd=${DateEnd} 
    488     # 
    489     DaysTemp=$(( $( IGCM_date_DaysInPreviousPeriod ${PeriodDateEnd} ${config_Post_PackFrequency} end ) - 1 )) 
    490     # 
    491     PackDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} -${DaysTemp} ) 
    492     # 
    493     script=pack_debug 
    494     # 
    495     Script_Post_Output=${script}.${PeriodDateEnd} 
    496     # 
    497     listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,DateBegin,DateEnd,PeriodPack,StandAlone" 
    498     IGCM_sys_RshPost <<-EOF 
    499     export DEBUG_debug=${DEBUG_debug} 
    500     export MODIPSL=${MODIPSL} 
    501     export libIGCM_SX=${libIGCM} 
    502     export libIGCM=${libIGCM_POST} 
    503     export SUBMIT_DIR=${SUBMIT_DIR} 
    504     export POST_DIR=${POST_DIR} 
    505     export MASTER=${MASTER} 
    506     export DateBegin=${PackDateBegin} 
    507     export DateEnd=${PeriodDateEnd} 
    508     export PeriodPack=${config_Post_PackFrequency} 
    509     export StandAlone=false 
    510     export listVarEnv=${listVarEnv} 
    511     export Script_Post_Output=${Script_Post_Output} 
    512     . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 
    513     . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 
    514     IGCM_sys_MkdirWork ${POST_DIR} 
    515     IGCM_debug_Verif_Exit_Post 
    516     IGCM_sys_QsubPost ${script} 
    517 EOF 
    518     # 
    519     script=pack_restart 
    520     # 
    521     Script_Post_Output=${script}.${PeriodDateEnd} 
    522     # 
    523     IGCM_sys_RshPost <<-EOF 
    524     export DEBUG_debug=${DEBUG_debug} 
    525     export MODIPSL=${MODIPSL} 
    526     export libIGCM_SX=${libIGCM} 
    527     export libIGCM=${libIGCM_POST} 
    528     export SUBMIT_DIR=${SUBMIT_DIR} 
    529     export POST_DIR=${POST_DIR} 
    530     export MASTER=${MASTER} 
    531     export DateBegin=${PackDateBegin} 
    532     export DateEnd=${PeriodDateEnd} 
    533     export PeriodPack=${config_Post_PackFrequency} 
    534     export StandAlone=false 
    535     export listVarEnv=${listVarEnv} 
    536     export Script_Post_Output=${Script_Post_Output} 
    537     . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 
    538     . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 
    539     IGCM_sys_MkdirWork ${POST_DIR} 
    540     IGCM_debug_Verif_Exit_Post 
    541     IGCM_sys_QsubPost ${script} 
    542 EOF 
    543  
    544     export DateBegin=${SavedDateBegin} 
    545     export DateEnd=${SavedDateEnd} 
    546604  fi 
    547605  IGCM_debug_PopStack "IGCM_post_Submit" 
     
    610668  *M|*m) 
    611669    PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" ) 
    612     case ${SlaveFrequency} in                
     670    case ${SlaveFrequency} in 
    613671    *Y|*y) 
    614672      PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) 
  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_cesium.ksh

    r571 r592  
    112112 
    113113#==================================================== 
    114 #- ARCHIVE 
    115 typeset -r ARCHIVE=${DMFDIR} 
     114#- ARCHIVE (dedicated to large files) 
     115typeset -r ARCHIVE=${CCCSTOREDIR} 
     116 
     117#- ARCHIVE (dedicated to small/medium files) 
     118typeset -r STORAGE=${CCCWORKDIR} 
     119 
     120#==================================================== 
    116121 
    117122#==================================================== 
     
    123128#- R_OUT 
    124129typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     130 
     131#==================================================== 
     132#- R_FIG (hosting figures : monitoring and atlas, and/or small files) 
     133typeset -r R_FIG=${STORAGE}/IGCM_OUT 
    125134 
    126135#==================================================== 
     
    895904    # USUAL WAY 
    896905    # add dmfind/dmget (to demigrate all offline files) : 
    897     dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
     906    #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
    898907    \cp -r $1 $2 > out_rsync 2>&1 
    899908    RET=$? 
     
    10661075    if [ -f $2 ] ; then 
    10671076      IGCM_debug_Print 1 "$2 already exist" 
    1068       dmget $2 
     1077      #dmget $2 
     1078      ccc_hsm get $2 
    10691079      exist=true 
    10701080      if [ "X$( diff $1 $2 )" = X ] ; then 
     
    11611171    fi 
    11621172 
    1163     dmget ${dm_liste[*]} > out_rsync 2>&1 
     1173    #dmget ${dm_liste[*]} > out_rsync 2>&1 
     1174    ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    11641175    RET=$? 
    11651176    if [ ${RET} -gt 0 ] ; then 
     
    11741185    #   sleep 30 
    11751186    #   echo "We try another time" 
    1176     #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1187    ##  dmget ${dm_liste[*]} > out_rsync 2>&1 
     1188    #   ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    11771189    #   RET=$? 
    11781190    #   if [ ${RET} -gt 0 ] ; then 
     
    13151327  RET=0 
    13161328  if [ $DRYRUN = 0 ]; then 
    1317     if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
    1318       echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
    1319       echo "Nothing has been done." 
    1320       return 
    1321     fi 
    1322     dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
     1329 
     1330#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
     1331#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
     1332#      echo "Nothing has been done." 
     1333#      return 
     1334#    fi 
     1335 
     1336    /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
    13231337    RET=$? 
    13241338     
     
    13481362  typeset RET 
    13491363  RET=0 
    1350   if [ $DRYRUN = 0 ]; then 
    1351     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1352       echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
    1353       echo "Nothing has been done." 
    1354       return 
    1355     fi 
    1356     # 
    1357     dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
     1364 
     1365#  if [ $DRYRUN = 0 ]; then 
     1366#    if [ ! -d ${R_SAVE}/${1} ] ; then 
     1367#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
     1368#      echo "Nothing has been done." 
     1369#      return 
     1370#    fi 
     1371 
     1372    /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
    13581373    RET=$? 
    13591374 
     
    13821397    echo "IGCM_sys_Put_Dods :" $@ 
    13831398  fi 
     1399  typeset RET 
    13841400  if [ $DRYRUN = 0 ]; then 
    1385     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1386       echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 
     1401 
     1402    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 
     1403      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 
     1404      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 
     1405      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 
    13871406      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
    13881407      return 
    13891408    fi 
    13901409 
    1391     typeset RET 
    1392         # 
    1393     cd ${R_SAVE} 
     1410    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 
     1411      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 
     1412      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 
     1413      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 
     1414      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
     1415      return 
     1416    fi 
     1417    # 
     1418    if [ -d ${R_SAVE}/${1} ] ; then 
     1419      cd ${R_SAVE} 
     1420    elif [ -d ${R_FIGR}/${1} ] ; then 
     1421      cd ${R_FIGR} 
     1422    fi 
     1423 
    13941424    IGCM_sys_Dods_Rm ${1} 
    13951425    IGCM_sys_Dods_Cp ${1} 
  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercure.ksh

    r571 r592  
    102102 
    103103#==================================================== 
    104 #- ARCHIVE 
    105 typeset -r ARCHIVE=${DMFDIR} 
     104#- ARCHIVE (dedicated to large files) 
     105typeset -r ARCHIVE=${CCCSTOREDIR} 
     106 
     107#- ARCHIVE (dedicated to small/medium files) 
     108typeset -r STORAGE=${CCCWORKDIR} 
    106109 
    107110#==================================================== 
     
    113116#- R_OUT 
    114117typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     118 
     119#==================================================== 
     120#- R_FIG (hosting figures : monitoring and atlas, and/or small files) 
     121typeset -r R_FIG=${STORAGE}/IGCM_OUT 
    115122 
    116123#==================================================== 
     
    532539    echo "IGCM_sys_QsubPost :" $@ 
    533540  fi 
    534   /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
     541  /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
    535542  if [ $? -gt 0 ] ; then 
    536543    echo "IGCM_sys_QsubPost : erreur " $@ 
     
    833840    #USUAL WAY 
    834841    # add dmget (to demigrate all offline files) to reduce time of this command : 
    835     dmget $1/* 
     842    #dmget $1/* 
     843    ccc_hsm get $1/* 
    836844    \cp -r $1 $2 > out_rsync 2>&1 
    837845    RET=$? 
     
    10271035    if [ -f $2 ] ; then 
    10281036      IGCM_debug_Print 1 "$2 already exist" 
    1029       dmget $2 
     1037      #dmget $2 
     1038      ccc_hsm get $2 
    10301039      exist=true 
    10311040      if [ "X$( diff $1 $2 )" = X ] ; then 
     
    11661175    fi 
    11671176 
    1168     dmget ${dm_liste[*]} > out_rsync 2>&1 
     1177    #dmget ${dm_liste[*]} > out_rsync 2>&1 
     1178    ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    11691179    RET=$? 
    11701180    if [ ${RET} -gt 0 ] ; then 
     
    11801190    #   sleep 30 
    11811191    #   echo "We try another time" 
    1182     #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1192    ##  dmget ${dm_liste[*]} > out_rsync 2>&1 
     1193    #   ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    11831194    #   RET=$? 
    11841195    #   if [ ${RET} -gt 0 ] ; then 
     
    13211332  RET=0 
    13221333  if [ $DRYRUN = 0 ]; then 
    1323     if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
    1324       echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
    1325       echo "Nothing has been done." 
    1326       return 
    1327     fi 
    1328     dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
     1334 
     1335#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
     1336#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
     1337#      echo "Nothing has been done." 
     1338#      return 
     1339#    fi 
     1340 
     1341    /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
    13291342    RET=$? 
    13301343     
     
    13551368  RET=0 
    13561369  if [ $DRYRUN = 0 ]; then 
    1357     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1358       echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
    1359       echo "Nothing has been done." 
    1360       return 
    1361     fi 
    1362     # 
    1363     dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
     1370 
     1371#    if [ ! -d ${R_SAVE}/${1} ] ; then 
     1372#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
     1373#      echo "Nothing has been done." 
     1374#      return 
     1375#    fi 
     1376 
     1377    /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
    13641378    RET=$? 
    13651379 
     
    13881402    echo "IGCM_sys_Put_Dods :" $@ 
    13891403  fi 
     1404  typeset RET 
    13901405  if [ $DRYRUN = 0 ]; then 
    1391     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1392       echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 
     1406    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 
     1407      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 
     1408      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 
     1409      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 
    13931410      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
    13941411      return 
    13951412    fi 
    13961413 
    1397     typeset RET 
    1398         # 
    1399     cd ${R_SAVE} 
     1414    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 
     1415      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 
     1416      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 
     1417      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 
     1418      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
     1419      return 
     1420    fi 
     1421    # 
     1422    if [ -d ${R_SAVE}/${1} ] ; then 
     1423      cd ${R_SAVE} 
     1424    elif [ -d ${R_FIGR}/${1} ] ; then 
     1425      cd ${R_FIGR} 
     1426    fi 
     1427 
    14001428    IGCM_sys_Dods_Rm ${1} 
    14011429    IGCM_sys_Dods_Cp ${1} 
  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex8.ksh

    r571 r592  
    8989#==================================================== 
    9090 
     91# ============ CESIUM START ============ # 
     92 
     93#==================================================== 
     94#- Mirror libIGCM from mercure to cesium if needed 
     95#ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 
     96#if [ ! ${ROOTSYS} = "home" ] ; then 
     97#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 
     98#else 
     99#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
     100#fi 
     101 
     102#==================================================== 
     103#- libIGCM_POST 
     104#if ( ${MirrorlibIGCM} ) ; then 
     105#  PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 
     106#  typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 
     107#else 
     108#  typeset -r libIGCM_POST=${libIGCM} 
     109#fi 
     110 
     111# ============ CESIUM  END  ============ # 
     112 
     113#==================================================== 
     114#- MirrorlibIGCM uncomment for frontend 
     115typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
     116 
     117#==================================================== 
     118#- libIGCM_POST uncomment for frontend 
     119typeset -r libIGCM_POST=${libIGCM} 
     120 
    91121#==================================================== 
    92122#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin ) 
     
    98128 
    99129#==================================================== 
    100 #- ARCHIVE 
    101 typeset -r ARCHIVE=${DMFDIR} 
    102  
    103 # ============ CESIUM START ============ # 
    104  
    105 #==================================================== 
    106 #- Mirror libIGCM from mercure to cesium if needed 
    107 #ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $2}' ) 
    108 #if [ ! ${ROOTSYS} = "home" ] ; then 
    109 #    typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 
    110 #else 
    111 #    typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
    112 #fi 
    113  
    114 #==================================================== 
    115 #- libIGCM_POST 
    116 #if ( ${MirrorlibIGCM} ) ; then 
    117 #    PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 
    118 #    typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 
    119 #else 
    120 #    typeset -r libIGCM_POST=${libIGCM} 
    121 #fi 
    122  
    123 # ============ CESIUM  END  ============ # 
    124  
    125 #==================================================== 
    126 #- Mirror libIGCM from mercure to cesium if needed 
    127 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
    128  
    129 #==================================================== 
    130 #- libIGCM_POST 
    131 typeset -r libIGCM_POST=${libIGCM} 
     130#- ARCHIVE (dedicated to large files) 
     131typeset -r ARCHIVE=${CCCSTOREDIR} 
     132 
     133#- ARCHIVE (dedicated to small/medium files) 
     134typeset -r STORAGE=${CCCWORKDIR} 
    132135 
    133136#==================================================== 
     
    139142#- R_OUT 
    140143typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     144 
     145#==================================================== 
     146#- R_FIG (hosting figures : monitoring and atlas, and/or small files) 
     147typeset -r R_FIG=${STORAGE}/IGCM_OUT 
    141148 
    142149#==================================================== 
     
    271278    status=completed 
    272279  fi 
    273  
    274   ssh ${MASTER} /bin/ksh <<-EOF 
    275   export LOGIN=${LOGIN} 
    276   export config_UserChoices_JobName=${config_UserChoices_JobName} 
    277   export config_UserChoices_MailName=${config_UserChoices_MailName} 
    278   export DateBegin=${DateBegin} 
    279   export DateEnd=${DateEnd} 
    280   export R_SAVE=${R_SAVE} 
    281   export SUBMIT_DIR=${SUBMIT_DIR} 
    282   export status=${status} 
    283  
    284280  cat  << END_MAIL > job_end.mail 
    285281  Dear ${LOGIN}, 
     
    296292  elif [ -f ~/.forward ] ; then 
    297293    mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 
    298   fi 
    299  
    300   sleep 10 
    301   rm -f job_end.mail 
    302 EOF 
     294  else 
     295    mailx -s "${config_UserChoices_JobName} ${status}" ${LOGIN} < job_end.mail 
     296  fi 
    303297 
    304298  if [ $? -gt 0 ] ; then 
     
    627621# ============ FRONTEND START ============ # 
    628622 
    629   /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
     623  /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
    630624 
    631625# ============ FRONTEND  END  ============ # 
    632626 
    633627# ============ CESIUM START ============ # 
    634  
    635628#  typeset NB_ESSAI DELAI status i 
    636629#  # number of tentative 
     
    649642#    (( i = i + 1 )) 
    650643#  done  
    651  
    652644# ============ CESIUM  END  ============ # 
    653645 
     
    956948    # USUAL WAY 
    957949    # add dmfind/dmget (to demigrate all offline files) : 
    958     dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
     950    #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
    959951    \cp -r $1 $2 > out_rsync 2>&1 
    960952    RET=$? 
     
    12331225    fi 
    12341226 
    1235     dmget ${dm_liste[*]} > out_rsync 2>&1 
     1227    #dmget ${dm_liste[*]} > out_rsync 2>&1 
     1228    ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    12361229    RET=$? 
    12371230    if [ ${RET} -gt 0 ] ; then 
     
    12471240    #   sleep 30 
    12481241    #   echo "We try another time" 
    1249     #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1242    ##  dmget ${dm_liste[*]} > out_rsync 2>&1 
     1243    #   ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    12501244    #   RET=$? 
    12511245    #   if [ ${RET} -gt 0 ] ; then 
  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex9.ksh

    r571 r592  
    8989#==================================================== 
    9090 
     91# ============ CESIUM START ============ # 
     92 
     93#==================================================== 
     94#- Mirror libIGCM from mercure to cesium if needed 
     95#ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 
     96#if [ ! ${ROOTSYS} = "home" ] ; then 
     97#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 
     98#else 
     99#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
     100#fi 
     101 
     102#==================================================== 
     103#- libIGCM_POST 
     104#if ( ${MirrorlibIGCM} ) ; then 
     105#  PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 
     106#  typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 
     107#else 
     108#  typeset -r libIGCM_POST=${libIGCM} 
     109#fi 
     110 
     111# ============ CESIUM  END  ============ # 
     112 
     113#==================================================== 
     114#- MirrorlibIGCM uncomment for frontend 
     115typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
     116 
     117#==================================================== 
     118#- libIGCM_POST uncomment for frontend 
     119typeset -r libIGCM_POST=${libIGCM} 
     120 
    91121#==================================================== 
    92122#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin ) 
     
    98128 
    99129#==================================================== 
    100 #- ARCHIVE 
    101 typeset -r ARCHIVE=${DMFDIR} 
    102  
    103 # ============ CESIUM START ============ # 
    104  
    105 #==================================================== 
    106 #- Mirror libIGCM from mercure to cesium if needed 
    107 ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 
    108 if [ ! ${ROOTSYS} = "home" ] ; then 
    109   typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 
    110 else 
    111   typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
    112 fi 
    113  
    114 #==================================================== 
    115 #- libIGCM_POST 
    116 if ( ${MirrorlibIGCM} ) ; then 
    117   PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 
    118   typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 
    119 else 
    120   typeset -r libIGCM_POST=${libIGCM} 
    121 fi 
    122  
    123 # ============ CESIUM  END  ============ # 
    124  
    125 #==================================================== 
    126 #- MirrorlibIGCM uncomment for frontend 
    127 #typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 
    128  
    129 #==================================================== 
    130 #- libIGCM_POST uncomment for frontend 
    131 #typeset -r libIGCM_POST=${libIGCM} 
     130#- ARCHIVE (dedicated to large files) 
     131typeset -r ARCHIVE=${CCCSTOREDIR} 
     132 
     133#- ARCHIVE (dedicated to small/medium files) 
     134typeset -r STORAGE=${CCCWORKDIR} 
    132135 
    133136#==================================================== 
     
    139142#- R_OUT 
    140143typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     144 
     145#==================================================== 
     146#- R_FIG (hosting figures : monitoring and atlas, and/or small files) 
     147typeset -r R_FIG=${STORAGE}/IGCM_OUT 
    141148 
    142149#==================================================== 
     
    229236# ============ FRONTEND START ============ # 
    230237 
    231 #  /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
    232 #  if [ $? -gt 0 ] ; then 
    233 #    echo "IGCM_sys_RshPost : erreur." 
    234 #    IGCM_debug_Exit "IGCM_sys_RshPost" 
    235 #  fi 
    236 #  \rm tmp_IGCM_sys_RshPost_$$ 
     238  /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
     239  if [ $? -gt 0 ] ; then 
     240    echo "IGCM_sys_RshPost : erreur." 
     241    IGCM_debug_Exit "IGCM_sys_RshPost" 
     242  fi 
     243  \rm tmp_IGCM_sys_RshPost_$$ 
    237244 
    238245# ============ FRONTEND  END  ============ # 
    239246 
    240247# ============ CESIUM START ============ # 
    241   typeset NB_ESSAI DELAI status i 
    242   # number of tentative 
    243   NB_ESSAI=10 
    244   # time delay between tentative 
    245   DELAI=10 
    246   (( i = 0 )) 
    247   while [ $i -lt $NB_ESSAI ] ; do 
    248     ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
    249     status=$? 
    250     if [ ${status} -gt 0 ]; then 
    251       IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}" 
    252       IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again." 
    253       sleep $DELAI 
    254     else 
    255       break 
    256     fi 
    257     (( i = i + 1 )) 
    258   done  
    259   # delete temporary file 
    260   /bin/rm tmp_IGCM_sys_RshPost_$$ 
     248#  typeset NB_ESSAI DELAI status i 
     249#  # number of tentative 
     250#  NB_ESSAI=10 
     251#  # time delay between tentative 
     252#  DELAI=10 
     253#  (( i = 0 )) 
     254#  while [ $i -lt $NB_ESSAI ] ; do 
     255#    ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
     256#    status=$? 
     257#    if [ ${status} -gt 0 ]; then 
     258#      IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}" 
     259#      IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again." 
     260#      sleep $DELAI 
     261#    else 
     262#      break 
     263#    fi 
     264#    (( i = i + 1 )) 
     265#  done  
     266#  # delete temporary file 
     267#  /bin/rm tmp_IGCM_sys_RshPost_$$ 
    261268# ============ CESIUM  END  ============ # 
    262269 
     
    623630# ============ FRONTEND START ============ # 
    624631 
    625 #  /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
     632  /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
    626633 
    627634# ============ FRONTEND  END  ============ # 
    628635 
    629636# ============ CESIUM START ============ # 
    630   typeset NB_ESSAI DELAI status i 
    631   # number of tentative 
    632   NB_ESSAI=10 
    633   # time delay between tentative 
    634   DELAI=10 
    635   (( i = 0 )) 
    636   while [ $i -lt $NB_ESSAI ] ; do 
    637     /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job 
    638     status=$? 
    639     if [ ${status} -gt 0 ]; then 
    640       sleep $DELAI 
    641     else 
    642       break 
    643     fi 
    644     (( i = i + 1 )) 
    645   done  
     637#  typeset NB_ESSAI DELAI status i 
     638#  # number of tentative 
     639#  NB_ESSAI=10 
     640#  # time delay between tentative 
     641#  DELAI=10 
     642#  (( i = 0 )) 
     643#  while [ $i -lt $NB_ESSAI ] ; do 
     644#    /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job 
     645#    status=$? 
     646#    if [ ${status} -gt 0 ]; then 
     647#      sleep $DELAI 
     648#    else 
     649#      break 
     650#    fi 
     651#    (( i = i + 1 )) 
     652#  done  
    646653# ============ CESIUM  END  ============ # 
    647654 
     
    950957    # USUAL WAY 
    951958    # add dmfind/dmget (to demigrate all offline files) : 
    952     dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
     959    #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
    953960    \cp -r $1 $2 > out_rsync 2>&1 
    954961    RET=$? 
     
    12271234    fi 
    12281235 
    1229     dmget ${dm_liste[*]} > out_rsync 2>&1 
     1236    #dmget ${dm_liste[*]} > out_rsync 2>&1 
     1237    ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    12301238    RET=$? 
    12311239    if [ ${RET} -gt 0 ] ; then 
     
    12411249    #   sleep 30 
    12421250    #   echo "We try another time" 
    1243     #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1251    ##  dmget ${dm_liste[*]} > out_rsync 2>&1 
     1252    #   ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    12441253    #   RET=$? 
    12451254    #   if [ ${RET} -gt 0 ] ; then 
  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_titane.ksh

    r577 r592  
    9292. /home/cont003/p86ipsl/.atlas_env_titane_ksh 
    9393 
    94 module switch nco/4.0.8 nco/3.9.4_netcdf4 
     94module switch nco/3.9.4 nco/3.9.4_netcdf4 
    9595 
    9696#==================================================== 
     
    102102# Host specific DIRECTORIES 
    103103#==================================================== 
    104  
    105 #==================================================== 
    106 #- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin ) 
    107 typeset -r R_EXE="${MODIPSL}/bin" 
    108  
    109 #==================================================== 
    110 #- SUBMIT_DIR : submission dir 
    111 typeset SUBMIT_DIR=${SUBMIT_DIR:=${LS_SUBCWD}} 
    112  
    113 #==================================================== 
    114 #- ARCHIVE 
    115 typeset -r ARCHIVE=${DMFDIR} 
    116104 
    117105# ============ CESIUM START ============ # 
     
    146134 
    147135#==================================================== 
     136#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin ) 
     137typeset -r R_EXE="${MODIPSL}/bin" 
     138 
     139#==================================================== 
     140#- SUBMIT_DIR : submission dir 
     141typeset SUBMIT_DIR=${SUBMIT_DIR:=${LS_SUBCWD}} 
     142 
     143#==================================================== 
     144#- ARCHIVE (dedicated to large files) 
     145typeset -r ARCHIVE=${CCCSTOREDIR} 
     146 
     147#- ARCHIVE (dedicated to small/medium files) 
     148typeset -r STORAGE=${CCCWORKDIR} 
     149 
     150#==================================================== 
    148151#- IN 
    149152typeset -r R_IN=${R_IN:=/ccc/work/cont003/dsm/p86ipsl/IGCM} 
     
    153156#- R_OUT 
    154157typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     158 
     159#==================================================== 
     160#- R_FIG (hosting figures : monitoring and atlas, and/or small files) 
     161typeset -r R_FIG=${STORAGE}/IGCM_OUT 
    155162 
    156163#==================================================== 
     
    10381045    # USUAL WAY 
    10391046    # add dmfind/dmget (to demigrate all offline files) : 
    1040     dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
     1047    #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
    10411048    \cp -r $1 $2 > out_rsync 2>&1 
    10421049    RET=$? 
     
    13511358    fi 
    13521359 
    1353     dmget ${dm_liste[*]} > out_rsync 2>&1 
     1360    #dmget ${dm_liste[*]} > out_rsync 2>&1 
     1361    ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    13541362    RET=$? 
    13551363    if [ ${RET} -gt 0 ] ; then 
     
    13651373    #   sleep 30 
    13661374    #   echo "We try another time" 
    1367     #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1375    ##  dmget ${dm_liste[*]} > out_rsync 2>&1 
     1376    #   ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 
    13681377    #   RET=$? 
    13691378    #   if [ ${RET} -gt 0 ] ; then 
     
    15141523  RET=0 
    15151524  if [ $DRYRUN = 0 ]; then 
    1516     if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
    1517       echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
    1518       echo "Nothing has been done." 
    1519       return 
    1520     fi 
    1521     dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
     1525 
     1526#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 
     1527#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 
     1528#      echo "Nothing has been done." 
     1529#      return 
     1530#    fi 
     1531 
     1532    /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 
    15221533    RET=$? 
    15231534     
     
    15481559  RET=0 
    15491560  if [ $DRYRUN = 0 ]; then 
    1550     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1551       echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
    1552       echo "Nothing has been done." 
    1553       return 
    1554     fi 
    1555     # 
    1556     dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
     1561 
     1562#    if [ ! -d ${R_SAVE}/${1} ] ; then 
     1563#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 
     1564#      echo "Nothing has been done." 
     1565#      return 
     1566#    fi 
     1567 
     1568    /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 
    15571569    RET=$? 
    15581570 
     
    15811593    echo "IGCM_sys_Put_Dods :" $@ 
    15821594  fi 
     1595  set -vx 
     1596  typeset RET 
    15831597  if [ $DRYRUN = 0 ]; then 
    1584     if [ ! -d ${R_SAVE}/${1} ] ; then 
    1585       echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 
     1598    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 
     1599      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 
     1600      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 
     1601      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 
    15861602      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
    15871603      return 
    15881604    fi 
    15891605 
    1590     typeset RET 
    1591         # 
    1592     cd ${R_SAVE} 
     1606    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 
     1607      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 
     1608      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 
     1609      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 
     1610      IGCM_debug_PopStack "IGCM_sys_Put_Dods" 
     1611      return 
     1612    fi 
     1613    # 
     1614    if [ -d ${R_SAVE}/${1} ] ; then 
     1615      cd ${R_SAVE} 
     1616    elif [ -d ${R_FIGR}/${1} ] ; then 
     1617      cd ${R_FIGR} 
     1618    fi 
     1619 
    15931620    IGCM_sys_Dods_Rm ${1} 
    15941621    IGCM_sys_Dods_Cp ${1} 
     
    20862113    echo "IGCM_sys_ncrcat :" $@ 
    20872114  fi 
    2088   ncrcat $@ 
     2115  ncrcat --omp_num_threads 2 $@ 
    20892116  if [ $? -gt 0 ] ; then 
    20902117    echo "IGCM_sys_ncrcat : erreur ${@}." 
Note: See TracChangeset for help on using the changeset viewer.