Ignore:
Timestamp:
03/30/12 15:11:37 (12 years ago)
Author:
sdipsl
Message:
  • I messed up the merge of vargas, ulam and AA_job
  • cosmectics
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/libIGCM_sys/libIGCM_sys_vargas.ksh

    r567 r619  
    1414#========================================================= 
    1515# The documentation of this file can be automatically generated 
    16 # if you use the prefix #D- for comments to be extracted.  
     16# if you use the prefix #D- for comments to be extracted. 
    1717# Extract with command: cat lib* | grep "^#D-" | cut -c "4-" 
    1818#========================================================= 
     
    2222#D-#================================================== 
    2323#D- 
    24 #D- This ksh library if a layer under some usefull  
     24#D- This ksh library if a layer under some usefull 
    2525#D-environment variables and shell commands. 
    2626#D-All those definitions depend on host particularities. 
     
    6262 
    6363#===================================================== 
    64 # Host and user names  
     64# Host and user names 
    6565# $hostname ou hostname 
    6666typeset  HOST=${HOST:=$( hostname )} 
     
    100100 
    101101#==================================================== 
    102 #- Mirror libIGCM from vargas to ulam  
     102#- Mirror libIGCM from vargas to ulam 
    103103typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 
    104104 
     
    119119 
    120120#==================================================== 
    121 #- OUT_POST  
     121#- R_BUF  Buffer to pack files 
     122typeset -r R_BUF=${WORKDIR}/IGCM_OUT 
     123 
     124#==================================================== 
     125#- OUT_POST 
    122126typeset -r R_OUT_POST=$( echo ${HOME} | sed -e "s/homegpfs/workdir/" )/IGCM_OUT 
    123127 
     
    136140#==================================================== 
    137141#- Max number of arguments passed to nco operator or demigration command 
    138 UNIX_MAX_LIMIT=360 
     142UNIX_MAX_LIMIT=120 
     143 
     144#==================================================== 
     145#- Default number of MPI task for IPSL coupled model 
     146#- required for backward compatibility 
     147#- 
     148DEFAULT_NUM_PROC_OCE=5 
     149DEFAULT_NUM_PROC_CPL=1 
     150DEFAULT_NUM_PROC_ATM=26 
     151DEFAULT_NUM_PROC_TOTAL=32 
    139152 
    140153#D-#================================================== 
     
    145158(( RshMNum = 0 )) 
    146159function IGCM_sys_RshMaster { 
    147     IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ 
    148  
    149     typeset THEFILE OUTFILE ERR 
    150  
    151     RshDIR=${WORKDIR}/RUN_DIR/${config_UserChoices_TagName}/${config_UserChoices_JobName}.${$} 
    152     if [ ! -d ${RshDIR} ] ; then 
    153         IGCM_sys_Mkdir ${RshDIR} 
    154     fi 
    155     THEFILE=${RshDIR}/file_sys_RshMaster_$$_${RshMNum} 
    156     echo '#!/bin/ksh' > ${THEFILE} 
    157     echo "export libIGCM=${libIGCM} > /dev/null 2>&1" >> ${THEFILE} 
    158     echo "export DEBUG_debug=${DEBUG_debug} > /dev/null 2>&1" >> ${THEFILE} 
    159     echo ". ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh > /dev/null 2>&1" >> ${THEFILE} 
    160     echo ". ${libIGCM}/libIGCM_card/libIGCM_card.ksh > /dev/null 2>&1" >> ${THEFILE} 
    161     echo "${@} " >> ${THEFILE} 
     160  IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ 
     161 
     162  typeset THEFILE OUTFILE ERR 
     163 
     164  RshDIR=${WORKDIR}/RUN_DIR/${config_UserChoices_TagName}/${config_UserChoices_JobName}.${$} 
     165  if [ ! -d ${RshDIR} ] ; then 
     166    IGCM_sys_Mkdir ${RshDIR} 
     167  fi 
     168  THEFILE=${RshDIR}/file_sys_RshMaster_$$_${RshMNum} 
     169  echo '#!/bin/ksh' > ${THEFILE} 
     170  echo "export libIGCM=${libIGCM} > /dev/null 2>&1" >> ${THEFILE} 
     171  echo "export DEBUG_debug=${DEBUG_debug} > /dev/null 2>&1" >> ${THEFILE} 
     172  echo ". ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh > /dev/null 2>&1" >> ${THEFILE} 
     173  echo ". ${libIGCM}/libIGCM_card/libIGCM_card.ksh > /dev/null 2>&1" >> ${THEFILE} 
     174  echo "${@} " >> ${THEFILE} 
    162175 
    163176    # No frontend queue on brodie : just rsh the job on the frontend with submission. 
    164     sed -e "s@IGCM_sys_Qsub\(.*\)@\1@" ${THEFILE} > ${THEFILE}_ 
    165  
    166     chmod u+x  ${THEFILE}_ 
    167  
    168     OUTFILE=${RshDIR}/out_RshMaster.$$.${RshMNum} 
    169     (( RshMNum = RshMNum + 1 )) 
    170  
    171     rsh ${MASTER} 'bash -c "nohup '${THEFILE}'_ > '${OUTFILE}' 2>&1 &"' 
    172     if [ $? -gt 0 ] ; then 
    173         echo "IGCM_sys_RshMaster : erreur." 
    174         IGCM_debug_Exit "IGCM_sys_RshMaster" 
    175     fi 
    176     IGCM_debug_PopStack "IGCM_sys_RshMaster" 
     177  sed -e "s@IGCM_sys_Qsub\(.*\)@\1@" ${THEFILE} > ${THEFILE}_ 
     178 
     179  chmod u+x  ${THEFILE}_ 
     180 
     181  OUTFILE=${RshDIR}/out_RshMaster.$$.${RshMNum} 
     182  (( RshMNum = RshMNum + 1 )) 
     183 
     184  rsh ${MASTER} 'bash -c "nohup '${THEFILE}'_ > '${OUTFILE}' 2>&1 &"' 
     185  if [ $? -gt 0 ] ; then 
     186    echo "IGCM_sys_RshMaster : erreur." 
     187    IGCM_debug_Exit "IGCM_sys_RshMaster" 
     188  fi 
     189  IGCM_debug_PopStack "IGCM_sys_RshMaster" 
    177190} 
    178191 
     
    183196#D- 
    184197function IGCM_sys_RshArchive { 
    185     IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 
    186     rsh ${STOREHOST} exec /bin/ksh <<-EOF 
     198  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 
     199  rsh ${STOREHOST} exec /bin/ksh <<-EOF 
    187200    ${@} 
    188201EOF 
    189     if [ $? -gt 0 ] ; then 
    190         echo "IGCM_sys_RshArchive : erreur." 
    191         IGCM_debug_Exit "IGCM_sys_RshArchive" 
    192     fi 
    193     IGCM_debug_PopStack "IGCM_sys_RshArchive" 
     202  if [ $? -gt 0 ] ; then 
     203    echo "IGCM_sys_RshArchive : erreur." 
     204    IGCM_debug_Exit "IGCM_sys_RshArchive" 
     205  fi 
     206  IGCM_debug_PopStack "IGCM_sys_RshArchive" 
    194207} 
    195208 
     
    200213#D- 
    201214function IGCM_sys_RshPost { 
    202     IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 
    203     if ( $DEBUG_sys ) ; then 
    204         echo "IGCM_sys_RshPost :" $@ 
    205     fi 
    206  
    207     # keep standard input to keep it for postpone if ulam don't answer 
    208     cat >/tmp/tmp_IGCM_sys_RshPost_$$_${LOGIN} 
    209  
    210     ## Add submission for old postponed files only if command is a Qsub 
    211     ## 
    212     ISITQSUB=0 
    213     grep Qsub /tmp/tmp_IGCM_sys_RshPost_$$_${LOGIN} >/dev/null 2>&1 && ISITQSUB=1 
    214     if  ( [ ${ISITQSUB} -gt 0 ] ) ; then  
    215       if [ -d ${SUBMIT_DIR}/POSTPONE ] ; then 
    216             for postponed_file in ${SUBMIT_DIR}/POSTPONE/* ; do  
    217               if [ -f ${postponed_file} ] ; then 
    218                 IGCM_debug_Print 2 " submit postponed file : " ${postponed_file} 
    219                 rsh ulam exec /bin/ksh <${postponed_file} 
    220                 if [ $? -eq 0 ] ; then 
    221                      IGCM_sys_Rm ${postponed_file} 
    222                 else 
    223                      IGCM_debug_Print 2 "keep postponed file for an other submission :" ${postponed_file} 
    224                 fi 
    225               fi 
    226           done 
    227       fi 
    228     fi 
    229  
    230     RETURN=0 
    231     # rsh ulam command 
    232     rsh ulam exec /bin/ksh </tmp/tmp_IGCM_sys_RshPost_$$_${LOGIN} 
    233     RETURN=$? 
    234  
    235     # keep standard input for postpone if ulam don't answer 
    236     if ( [ ${RETURN} -gt 0 ] ) ; then 
    237         IGCM_debug_Print 2 "Postpone tmp_IGCM_sys_RshPost_$$_${LOGIN}" 
    238         [ -d ${SUBMIT_DIR}/POSTPONE ] || mkdir ${SUBMIT_DIR}/POSTPONE 
    239         mv /tmp/tmp_IGCM_sys_RshPost_$$_${LOGIN} ${SUBMIT_DIR}/POSTPONE 
    240     else 
    241         \rm /tmp/tmp_IGCM_sys_RshPost_$$_${LOGIN} 
    242     fi 
    243     IGCM_debug_PopStack "IGCM_sys_RshPost" 
     215  IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 
     216  if ( $DEBUG_sys ) ; then 
     217    echo "IGCM_sys_RshPost :" $@ 
     218  fi 
     219 
     220  # keep standard input to keep it for postpone if ulam don't answer 
     221  cat >/tmp/tmp_IGCM_sys_RshPost_$$_${LOGNAME} 
     222 
     223  ## Add submission for old postponed files only if command is a Qsub 
     224  ## 
     225  ISITQSUB=0 
     226  grep Qsub /tmp/tmp_IGCM_sys_RshPost_$$_${LOGNAME} >/dev/null 2>&1 && ISITQSUB=1 
     227  if  ( [ ${ISITQSUB} -gt 0 ] ) ; then 
     228    if [ -d ${SUBMIT_DIR}/POSTPONE ] ; then 
     229      for postponed_file in ${SUBMIT_DIR}/POSTPONE/* ; do 
     230        if [ -f ${postponed_file} ] ; then 
     231          IGCM_debug_Print 2 " submit postponed file : " ${postponed_file} 
     232          rsh ulam exec /bin/ksh <${postponed_file} 
     233          if [ $? -eq 0 ] ; then 
     234            IGCM_sys_Rm ${postponed_file} 
     235          else 
     236            IGCM_debug_Print 2 "keep postponed file for an other submission :" ${postponed_file} 
     237          fi 
     238        fi 
     239      done 
     240    fi 
     241  fi 
     242 
     243  RETURN=0 
     244  # rsh ulam command 
     245  rsh ulam exec /bin/ksh </tmp/tmp_IGCM_sys_RshPost_$$_${LOGNAME} 
     246  RETURN=$? 
     247 
     248  # keep standard input for postpone if ulam don't answer 
     249  if ( [ ${RETURN} -gt 0 ] ) ; then 
     250    IGCM_debug_Print 2 "Postpone tmp_IGCM_sys_RshPost_$$_${LOGNAME}" 
     251    [ -d ${SUBMIT_DIR}/POSTPONE ] || mkdir ${SUBMIT_DIR}/POSTPONE 
     252    mv /tmp/tmp_IGCM_sys_RshPost_$$_${LOGNAME} ${SUBMIT_DIR}/POSTPONE 
     253  else 
     254    IGCM_sys_Rm /tmp/tmp_IGCM_sys_RshPost_$$_${LOGNAME} 
     255  fi 
     256  IGCM_debug_PopStack "IGCM_sys_RshPost" 
    244257} 
    245258 
     
    250263#D- 
    251264function IGCM_sys_SendMail { 
    252     IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 
    253     if ( $DEBUG_sys ) ; then 
    254         echo "IGCM_sys_SendMail :" $@ 
    255     fi 
    256  
    257     if ( ${ExitFlag} ) ; then 
    258         status=failed 
    259     else 
    260         status=completed 
    261     fi 
    262     cat  << END_MAIL > job_end.mail 
     265  IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 
     266  if ( $DEBUG_sys ) ; then 
     267    echo "IGCM_sys_SendMail :" $@ 
     268  fi 
     269 
     270  if ( ${ExitFlag} ) ; then 
     271    status=failed 
     272  else 
     273    status=completed 
     274  fi 
     275  cat  << END_MAIL > job_end.mail 
    263276Dear ${LOGIN}, 
    264277 
     
    270283END_MAIL 
    271284 
    272     if [ ! -z ${config_UserChoices_MailName} ] ; then 
    273         mailx -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} <  job_end.mail 
    274     elif [ -f ~/.forward ] ; then 
    275         mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 
    276     else 
    277         mailx -s "${config_UserChoices_JobName} ${status}" ${USER} < job_end.mail 
    278     fi 
    279  
    280     if [ $? -gt 0 ] ; then 
    281         echo "IGCM_sys_SendMail : erreur." 
    282         IGCM_debug_Exit "IGCM_sys_SendMail" 
    283     fi 
    284     IGCM_debug_PopStack "IGCM_sys_SendMail" 
     285  if [ ! -z ${config_UserChoices_MailName} ] ; then 
     286    mailx -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} <  job_end.mail 
     287  elif [ -f ~/.forward ] ; then 
     288    mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 
     289  else 
     290    mailx -s "${config_UserChoices_JobName} ${status}" ${USER} < job_end.mail 
     291  fi 
     292 
     293  if [ $? -gt 0 ] ; then 
     294    echo "IGCM_sys_SendMail : erreur." 
     295    IGCM_debug_Exit "IGCM_sys_SendMail" 
     296  fi 
     297  IGCM_debug_PopStack "IGCM_sys_SendMail" 
    285298} 
    286299 
     
    291304#D- 
    292305function IGCM_sys_Mkdir { 
    293     IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 
    294     if ( $DEBUG_sys ) ; then 
    295         echo "IGCM_sys_Mkdir :" $@ 
    296     fi 
    297     if [ ! -d ${1} ]; then 
    298         \mkdir -p $1 
    299         if [ $? -gt 0 ] ; then 
    300             echo "IGCM_sys_Mkdir : erreur." 
    301             IGCM_debug_Exit "IGCM_sys_Mkdir" 
    302         fi 
    303     fi 
     306  IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 
     307  if ( $DEBUG_sys ) ; then 
     308    echo "IGCM_sys_Mkdir :" $@ 
     309  fi 
     310  if [ ! -d ${1} ]; then 
     311    \mkdir -p $1 
     312    if [ $? -gt 0 ] ; then 
     313      echo "IGCM_sys_Mkdir : erreur." 
     314      IGCM_debug_Exit "IGCM_sys_Mkdir" 
     315    fi 
     316  fi 
    304317    # vérification : 
    305     if [ ! -d ${1} ] ; then 
    306         echo "IGCM_sys_Mkdir : erreur." 
    307         IGCM_debug_Exit "IGCM_sys_Mkdir" 
    308     fi 
    309     IGCM_debug_PopStack "IGCM_sys_Mkdir" 
     318  if [ ! -d ${1} ] ; then 
     319    echo "IGCM_sys_Mkdir : erreur." 
     320    IGCM_debug_Exit "IGCM_sys_Mkdir" 
     321  fi 
     322  IGCM_debug_PopStack "IGCM_sys_Mkdir" 
    310323} 
    311324 
     
    316329#D- 
    317330function IGCM_sys_MkdirArchive { 
    318     IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 
    319     if ( $DEBUG_sys ) ; then 
    320         echo "IGCM_sys_MkdirArchive :" $@ 
    321     fi 
    322     #- creation de repertoire sur le serveur fichier 
    323     rsh ${STOREHOST} -n mkdir -p $1 
    324  
    325     if [ $? -gt 0 ] ; then 
    326         echo "IGCM_sys_MkdirArchive : erreur." 
    327         IGCM_debug_Exit "IGCM_sys_MkdirArchive" 
    328     fi 
    329     IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 
     331  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 
     332  if ( $DEBUG_sys ) ; then 
     333    echo "IGCM_sys_MkdirArchive :" $@ 
     334  fi 
     335  #- creation de repertoire sur le serveur fichier 
     336  rsh ${STOREHOST} -n mkdir -p $1 
     337 
     338  if [ $? -gt 0 ] ; then 
     339    echo "IGCM_sys_MkdirArchive : erreur." 
     340    IGCM_debug_Exit "IGCM_sys_MkdirArchive" 
     341  fi 
     342  IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 
    330343} 
    331344 
     
    336349#D- 
    337350function IGCM_sys_MkdirWork { 
    338     IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 
    339     if ( $DEBUG_sys ) ; then 
    340         echo "IGCM_sys_MkdirWork :" $@ 
    341     fi 
    342     #- creation de repertoire sur le serveur fichier 
    343     if [ ! -d ${1} ]; then  
    344         \mkdir -p $1 
    345         if [ $? -gt 0 ] ; then 
    346             echo "IGCM_sys_MkdirWork : erreur." 
    347             IGCM_debug_Exit "IGCM_sys_MkdirWork" 
    348         fi 
    349     fi 
    350     IGCM_debug_PopStack "IGCM_sys_MkdirWork" 
     351  IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 
     352  if ( $DEBUG_sys ) ; then 
     353    echo "IGCM_sys_MkdirWork :" $@ 
     354  fi 
     355  #- creation de repertoire sur le serveur fichier 
     356  if [ ! -d ${1} ]; then 
     357    \mkdir -p $1 
     358    if [ $? -gt 0 ] ; then 
     359      echo "IGCM_sys_MkdirWork : erreur." 
     360      IGCM_debug_Exit "IGCM_sys_MkdirWork" 
     361    fi 
     362  fi 
     363  IGCM_debug_PopStack "IGCM_sys_MkdirWork" 
    351364} 
    352365 
     
    357370#D- 
    358371function IGCM_sys_Cd { 
    359     IGCM_debug_PushStack "IGCM_sys_Cd" $@ 
    360     if ( $DEBUG_sys ) ; then 
    361         echo "IGCM_sys_Cd :" $@ 
    362     fi 
    363     \cd $1 
    364     if [ $? -gt 0 ] ; then 
    365         echo "IGCM_sys_Cd : erreur." 
    366         IGCM_debug_Exit "IGCM_sys_Cd" 
    367     fi 
    368     IGCM_debug_PopStack "IGCM_sys_Cd" 
     372  IGCM_debug_PushStack "IGCM_sys_Cd" $@ 
     373  if ( $DEBUG_sys ) ; then 
     374    echo "IGCM_sys_Cd :" $@ 
     375  fi 
     376  \cd $1 
     377  if [ $? -gt 0 ] ; then 
     378    echo "IGCM_sys_Cd : erreur." 
     379    IGCM_debug_Exit "IGCM_sys_Cd" 
     380  fi 
     381  IGCM_debug_PopStack "IGCM_sys_Cd" 
    369382} 
    370383 
     
    375388#D- 
    376389function IGCM_sys_Chmod { 
    377     IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 
    378     if ( $DEBUG_sys ) ; then 
    379         echo "IGCM_sys_Chmod :" $@ 
    380     fi 
    381     if [ $DRYRUN -le 1 ]; then 
    382         \chmod $@ 
    383         if [ $? -gt 0 ] ; then 
    384             echo "IGCM_sys_Chmod : erreur." 
    385             IGCM_debug_Exit "IGCM_sys_Chmod" 
    386         fi 
    387     else 
    388         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    389     fi 
    390     IGCM_debug_PopStack "IGCM_sys_Chmod" 
     390  IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 
     391  if ( $DEBUG_sys ) ; then 
     392    echo "IGCM_sys_Chmod :" $@ 
     393  fi 
     394  if [ $DRYRUN -le 1 ]; then 
     395    \chmod $@ 
     396    if [ $? -gt 0 ] ; then 
     397      echo "IGCM_sys_Chmod : erreur." 
     398      IGCM_debug_Exit "IGCM_sys_Chmod" 
     399    fi 
     400  else 
     401    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     402  fi 
     403  IGCM_debug_PopStack "IGCM_sys_Chmod" 
    391404} 
    392405 
     
    397410#D- 
    398411function IGCM_sys_FileSize { 
    399     IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 
    400  
    401     typeset sizeF 
    402     set +A sizeF -- $( ls -la ${1} ) 
    403     if [ $? -gt 0 ] ; then 
    404         IGCM_debug_Exit "IGCM_sys_FileSize" 
    405     fi 
    406     eval ${2}=${sizeF[4]} 
    407  
    408     IGCM_debug_PopStack "IGCM_sys_FileSize" 
     412  IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 
     413 
     414  typeset sizeF 
     415  set +A sizeF -- $( ls -la ${1} ) 
     416  if [ $? -gt 0 ] ; then 
     417    IGCM_debug_Exit "IGCM_sys_FileSize" 
     418  fi 
     419  eval ${2}=${sizeF[4]} 
     420 
     421  IGCM_debug_PopStack "IGCM_sys_FileSize" 
    409422} 
    410423 
     
    415428#D- 
    416429function IGCM_sys_TestDir { 
    417     IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 
    418     if ( $DEBUG_sys ) ; then 
    419         echo "IGCM_sys_TestDir :" $@ 
    420     fi 
    421     typeset ExistFlag 
    422     ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
    423     IGCM_debug_PopStack "IGCM_sys_TestDir" 
    424  
    425     return ${ExistFlag} 
     430  IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 
     431  if ( $DEBUG_sys ) ; then 
     432    echo "IGCM_sys_TestDir :" $@ 
     433  fi 
     434  typeset ExistFlag 
     435  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
     436  IGCM_debug_PopStack "IGCM_sys_TestDir" 
     437 
     438  return ${ExistFlag} 
    426439} 
    427440 
     
    432445#D- 
    433446function IGCM_sys_TestDirArchive { 
    434     IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 
    435     if ( $DEBUG_sys ) ; then 
    436         echo "IGCM_sys_TestDirArchive :" $@ 
    437     fi 
    438     typeset ExistFlag 
    439     ExistFlag=$( IGCM_sys_RshArchive "[ -d $1 ] && echo 0 || echo 1" ) 
    440     IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 
    441  
    442     return ${ExistFlag} 
     447  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 
     448  if ( $DEBUG_sys ) ; then 
     449    echo "IGCM_sys_TestDirArchive :" $@ 
     450  fi 
     451  typeset ExistFlag 
     452  ExistFlag=$( IGCM_sys_RshArchive "[ -d $1 ] && echo 0 || echo 1" ) 
     453  IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 
     454 
     455  return ${ExistFlag} 
     456} 
     457 
     458#D-#================================================== 
     459#D-function IGCM_sys_IsFileArchived 
     460#D-* Purpose: Test file that must NOT EXISTS on Archive 
     461#D-* always true on vargas. 
     462#D-* Examples: 
     463#D- 
     464function IGCM_sys_IsFileArchived { 
     465  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@ 
     466  if ( $DEBUG_sys ) ; then 
     467    echo "IGCM_sys_IsFileArchived :" $@ 
     468  fi 
     469  typeset IsArchivedFlag 
     470  IsArchivedFlag=$( echo 0 ) 
     471  IGCM_debug_PopStack "IGCM_sys_IsFileArchived" 
     472 
     473  return ${IsArchivedFlag} 
    443474} 
    444475 
     
    449480#D- 
    450481function IGCM_sys_TestFileArchive { 
    451     IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 
    452     typeset ExistFlag 
    453     ExistFlag=$( IGCM_sys_RshArchive "[ -f $1 ] && echo 0 || echo 1" ) 
    454     IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 
    455  
    456     return ${ExistFlag} 
     482  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 
     483  typeset ExistFlag 
     484  ExistFlag=$( IGCM_sys_RshArchive "[ -f $1 ] && echo 0 || echo 1" ) 
     485  IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 
     486 
     487  return ${ExistFlag} 
     488} 
     489 
     490#D-#================================================== 
     491#D-function IGCM_sys_TestFileBuffer 
     492#D-* Purpose: Test file that must NOT EXISTS on Buffer 
     493#D-* Examples: 
     494#D- 
     495function IGCM_sys_TestFileBuffer { 
     496  IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@ 
     497  typeset ExistFlag 
     498  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 
     499  IGCM_debug_PopStack "IGCM_sys_TestFileBuffer" 
     500 
     501  return ${ExistFlag} 
    457502} 
    458503 
     
    463508#D- 
    464509function IGCM_sys_CountFileArchive { 
    465     IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 
    466     IGCM_sys_RshArchive "ls ${@} 2>/dev/null | wc -l" 
    467     if [ $? -gt 0 ] ; then 
    468         echo "IGCM_sys_CountFileArchive : erreur." 
    469     fi 
    470     IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 
     510  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 
     511  IGCM_sys_RshArchive "ls ${@} 2>/dev/null | wc -l" 
     512  if [ $? -gt 0 ] ; then 
     513    echo "IGCM_sys_CountFileArchive : erreur." 
     514  fi 
     515  IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 
     516} 
     517 
     518#D-#================================================== 
     519#D-function IGCM_sys_CountFileBuffer 
     520#D-* Purpose: Count files on Scratch filesystem 
     521#D-* Examples: 
     522#D- 
     523function IGCM_sys_CountFileBuffer { 
     524  IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@ 
     525  ls ${@} 2>/dev/null | wc -l 
     526  if [ $? -gt 0 ] ; then 
     527    echo "IGCM_sys_CountFileBuffer : erreur." 
     528  fi 
     529  IGCM_debug_PopStack "IGCM_sys_CountFileBuffer" 
    471530} 
    472531 
     
    477536#D- 
    478537function IGCM_sys_Tree { 
    479     IGCM_debug_PushStack "IGCM_sys_Tree" $@ 
    480     if ( $DEBUG_sys ) ; then 
    481         echo "IGCM_sys_Tree :" $@ 
    482     fi 
    483  
    484     \mfls -r $@ 
    485  
    486     IGCM_debug_PopStack "IGCM_sys_Tree" 
     538  IGCM_debug_PushStack "IGCM_sys_Tree" $@ 
     539  if ( $DEBUG_sys ) ; then 
     540    echo "IGCM_sys_Tree :" $@ 
     541  fi 
     542 
     543  \mfls -r $@ 
     544 
     545  IGCM_debug_PopStack "IGCM_sys_Tree" 
    487546} 
    488547 
     
    493552#D- 
    494553function IGCM_sys_Tar { 
    495     IGCM_debug_PushStack "IGCM_sys_Tar" $@ 
    496     if ( $DEBUG_sys ) ; then 
    497         echo "IGCM_sys_Tar :" $@ 
    498     fi 
    499     \tar cf $@ 
    500     if [ $? -gt 0 ] ; then 
    501         echo "IGCM_sys_Tar : erreur." 
    502         IGCM_debug_Exit "IGCM_sys_Tar" 
    503     fi 
    504     IGCM_debug_PopStack "IGCM_sys_Tar" 
     554  IGCM_debug_PushStack "IGCM_sys_Tar" $@ 
     555  if ( $DEBUG_sys ) ; then 
     556    echo "IGCM_sys_Tar :" $@ 
     557  fi 
     558  \tar cf $@ 
     559  if [ $? -gt 0 ] ; then 
     560    echo "IGCM_sys_Tar : erreur." 
     561    IGCM_debug_Exit "IGCM_sys_Tar" 
     562  fi 
     563  IGCM_debug_PopStack "IGCM_sys_Tar" 
    505564} 
    506565 
     
    511570#D- 
    512571function IGCM_sys_UnTar { 
    513     IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 
    514     if ( $DEBUG_sys ) ; then 
    515         echo "IGCM_sys_UnTar :" $@ 
    516     fi 
    517     \tar xvf $1 
    518     if [ $? -gt 0 ] ; then 
    519         echo "IGCM_sys_UnTar : erreur." 
    520         IGCM_debug_Exit "IGCM_sys_UnTar" 
    521     fi 
    522     IGCM_debug_PopStack "IGCM_sys_UnTar" 
     572  IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 
     573  if ( $DEBUG_sys ) ; then 
     574    echo "IGCM_sys_UnTar :" $@ 
     575  fi 
     576  \tar xvf $1 
     577  if [ $? -gt 0 ] ; then 
     578    echo "IGCM_sys_UnTar : erreur." 
     579    IGCM_debug_Exit "IGCM_sys_UnTar" 
     580  fi 
     581  IGCM_debug_PopStack "IGCM_sys_UnTar" 
    523582} 
    524583 
     
    529588#D- 
    530589function IGCM_sys_Qsub { 
    531     IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 
    532     if ( $DEBUG_sys ) ; then 
    533         echo "IGCM_sys_Qsub :" $@ 
    534     fi 
    535     # We have to change output/error file 
    536     [ ${#@} = 1 ] &&  REP_FOR_JOB=$LOADL_STEP_INITDIR 
    537     [ ${#@} = 2 ] &&  REP_FOR_JOB=$2 
    538     sed -e "s/\# \@ output *= .*/\# \@ output = ${Script_Output}/" -e "s/\# \@ error *= .*/\# \@ error = ${Script_Output}/" <$1 >${REP_FOR_JOB}/JOB_FOR_IGCM 
    539     { 
    540        [ ${#@} = 1 ] &&  ( cd $LOADL_STEP_INITDIR ; /usr/local/bin/llsubmit JOB_FOR_IGCM ; ERROR=$? ; cd - ; ) 
    541        [ ${#@} = 2 ] &&  ( cd $2 ; /usr/local/bin/llsubmit JOB_FOR_IGCM ; ERROR=$? ; cd - ; ) 
    542     } 
    543     if [ ${ERROR} -gt 0 ] ; then 
    544        echo "IGCM_sys_Qsub : erreur $@." 
    545        IGCM_debug_Exit "IGCM_sys_Qsub" 
    546     fi 
    547     IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM 
    548     IGCM_debug_PopStack "IGCM_sys_Qsub" 
     590  IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 
     591 
     592  typeset ERROR 
     593  ERROR=0 
     594 
     595  if ( $DEBUG_sys ) ; then 
     596    echo "IGCM_sys_Qsub :" $@ 
     597  fi 
     598  # We have to change output/error file 
     599  [ ${#@} = 1 ] &&  REP_FOR_JOB=$LOADL_STEP_INITDIR 
     600  [ ${#@} = 2 ] &&  REP_FOR_JOB=$2 
     601  sed -e "s/\# \@ output *= .*/\# \@ output = ${Script_Output}/" -e "s/\# \@ error *= .*/\# \@ error = ${Script_Output}/" <$1 >${REP_FOR_JOB}/JOB_FOR_IGCM 
     602  { 
     603    [ ${#@} = 1 ] &&  ( cd $LOADL_STEP_INITDIR ; /usr/local/bin/llsubmit JOB_FOR_IGCM ; ERROR=$? ; cd - ; ) 
     604    [ ${#@} = 2 ] &&  ( cd $2 ; /usr/local/bin/llsubmit JOB_FOR_IGCM ; ERROR=$? ; cd - ; ) 
     605  } 
     606  if [ ${ERROR} -gt 0 ] ; then 
     607    echo "IGCM_sys_Qsub : erreur $@." 
     608    IGCM_debug_Exit "IGCM_sys_Qsub" 
     609  fi 
     610  IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM 
     611  IGCM_debug_PopStack "IGCM_sys_Qsub" 
    549612 
    550613} 
     
    556619#D- 
    557620function IGCM_sys_QsubPost { 
    558     IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 
    559     if ( $DEBUG_sys ) ; then 
    560         echo "IGCM_sys_QsubPost :" $@ 
    561     fi 
    562     cd ${POST_DIR} 
    563     /opt/ibmll/LoadL/full/bin/llsubmit ${libIGCM_POST}/$1.job 
    564     cd - 
    565     if [ $? -gt 0 ] ; then 
    566         echo "IGCM_sys_QsubPost : erreur " $@ 
    567         IGCM_debug_Exit "IGCM_sys_QsubPost" 
    568     fi 
    569     IGCM_debug_PopStack "IGCM_sys_QsubPost" 
     621  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 
     622  if ( $DEBUG_sys ) ; then 
     623    echo "IGCM_sys_QsubPost :" $@ 
     624  fi 
     625  cd ${POST_DIR} 
     626  /opt/ibmll/LoadL/full/bin/llsubmit ${libIGCM_POST}/$1.job 
     627  cd - 
     628  if [ $? -gt 0 ] ; then 
     629    echo "IGCM_sys_QsubPost : erreur " $@ 
     630    IGCM_debug_Exit "IGCM_sys_QsubPost" 
     631  fi 
     632  IGCM_debug_PopStack "IGCM_sys_QsubPost" 
    570633} 
    571634 
    572635#D-************************* 
    573 #D- File transfer functions  
     636#D- File transfer functions 
    574637#D-************************* 
    575638#D- 
     
    581644#D-  Error values and explanations can depend on your system version. 
    582645function IGCM_sys_Rsync_out { 
    583     RET=$1 
    584     if [ ! $RET ] ; then 
    585         echo "rsync error !" 
    586     fi 
    587  
    588     if [ $MYLANG = "fr" ]; then 
    589         case $RET in 
    590             0)  return ;; 
    591             1)  echo "Erreur de rsync ; RERR_SYNTAX : " 
    592                 echo "Erreur de syntaxe ou d'utilisation." 
    593                 return;; 
    594             2)  echo "Erreur de rsync ; RERR_PROTOCOL : " 
    595                 echo "Incompatibilité de protocole." 
    596                 return;; 
    597             3)  echo "Erreur de rsync ; RERR_FILESELECT 3" 
    598                 echo "Erreurs  lors  de  la  sélection des fichiers d'entrée sortie et" 
    599                 echo "répertoires" 
    600                 return;; 
    601             4)  echo "Erreur de rsync ; RERR_UNSUPPORTED" 
    602                 echo "Action demandée non supportée : une tentative de manipulation de" 
    603                 echo "fichiers  64-bits  sur une plate-forme qui ne les supporte pas a" 
    604                 echo "été faite ; ou une option qui est supportée par le  client  mais" 
    605                 echo "pas par le serveur a été spécifiée." 
    606                 return;; 
    607             10) echo "Erreur de rsync ; RERR_SOCKETIO" 
    608                 echo "Erreur dans le socket d'entrée sortie" 
    609                 return;; 
    610             11) echo "Erreur de rsync ; RERR_FILEIO" 
    611                 echo "Erreur d'entrée sortie fichier" 
    612                 return;; 
    613             12) echo "Erreur de rsync ; RERR_STREAMIO" 
    614                 echo "Erreur dans flux de donnée du protocole rsync" 
    615                 return;; 
    616             13) echo "Erreur de rsync ; RERR_MESSAGEIO" 
    617                 echo "Erreur avec les diagnostics du programme" 
    618                 return;; 
    619             14) echo "Erreur de rsync ; RERR_IPC" 
    620                 echo "Erreur dans le code IPC" 
    621                 return;; 
    622             20) echo "Erreur de rsync ; RERR_SIGNAL" 
    623                 echo "SIGUSR1 ou SIGINT reçu" 
    624                 return;; 
    625             21) echo "Erreur de rsync ; RERR_WAITCHILD" 
    626                 echo "Une erreur retournée par waitpid()" 
    627                 return;; 
    628             22) echo "Erreur de rsync ; RERR_MALLOC" 
    629                 echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 
    630                 return;; 
    631             23) echo "" 
    632                 echo "Erreur fichier inexistant" 
    633                 return;; 
    634             30) echo "Erreur de rsync ; RERR_TIMEOUT" 
    635                 echo "Temps d'attente écoulé dans l'envoi/réception de données" 
    636                 return;; 
    637             *)  echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 
    638                 return;; 
    639         esac 
    640     elif [ $MYLANG = "en" ] ; then 
    641         case $RET in 
    642             0)  return;;                 
    643             1)  echo "rsync error : Syntax or usage error " 
    644                 return;; 
    645             2)  echo "rsync error : Protocol incompatibility " 
    646                 return;; 
    647             3)  echo "rsync error : Errors selecting input/output files, dirs" 
    648                 return;; 
    649             4)  echo "rsync error : Requested action not supported: an attempt" 
    650                 echo "was made to manipulate 64-bit files on a platform that cannot support" 
    651                 echo "them; or an option was specified that is supported by the client and" 
    652                 echo "not by the server." 
    653                 return;; 
    654             5)  echo "rsync error : Error starting client-server protocol" 
    655                 return;; 
    656             10) echo "rsync error : Error in socket I/O " 
    657                 return;; 
    658             11) echo "rsync error : Error in file I/O " 
    659                 return;; 
    660             12) echo "rsync error : Error in rsync protocol data stream " 
    661                 return;; 
    662             13) echo "rsync error : Errors with program diagnostics " 
    663                 return;; 
    664             14) echo "rsync error : Error in IPC code " 
    665                 return;; 
    666             20) echo "rsync error : Received SIGUSR1 or SIGINT " 
    667                 return;; 
    668             21) echo "rsync error : Some error returned by waitpid() " 
    669                 return;; 
    670             22) echo "rsync error : Error allocating core memory buffers " 
    671                 return;; 
    672             23) echo "rsync error : Partial transfer due to error" 
    673                 return;; 
    674             24) echo "rsync error : Partial transfer due to vanished source files" 
    675                 return;; 
    676             30) echo "rsync error : Timeout in data send/receive " 
    677                 return;; 
    678             *)  echo "rsync error : return code of rsync unknown :" $RET 
    679                 return;; 
    680         esac 
    681     else 
    682         echo "unknown language $MYLANG." 
    683         return 
    684     fi 
    685 } 
    686      
     646  RET=$1 
     647  if [ ! $RET ] ; then 
     648    echo "rsync error !" 
     649  fi 
     650 
     651  if [ $MYLANG = "fr" ]; then 
     652    case $RET in 
     653    0)  return ;; 
     654    1)  echo "Erreur de rsync ; RERR_SYNTAX : " 
     655      echo "Erreur de syntaxe ou d'utilisation." 
     656      return;; 
     657    2)  echo "Erreur de rsync ; RERR_PROTOCOL : " 
     658      echo "Incompatibilité de protocole." 
     659      return;; 
     660    3)  echo "Erreur de rsync ; RERR_FILESELECT 3" 
     661      echo "Erreurs  lors  de  la  sélection des fichiers d'entrée sortie et" 
     662      echo "répertoires" 
     663      return;; 
     664    4)  echo "Erreur de rsync ; RERR_UNSUPPORTED" 
     665      echo "Action demandée non supportée : une tentative de manipulation de" 
     666      echo "fichiers  64-bits  sur une plate-forme qui ne les supporte pas a" 
     667      echo "été faite ; ou une option qui est supportée par le  client  mais" 
     668      echo "pas par le serveur a été spécifiée." 
     669      return;; 
     670    10) echo "Erreur de rsync ; RERR_SOCKETIO" 
     671      echo "Erreur dans le socket d'entrée sortie" 
     672      return;; 
     673    11) echo "Erreur de rsync ; RERR_FILEIO" 
     674      echo "Erreur d'entrée sortie fichier" 
     675      return;; 
     676    12) echo "Erreur de rsync ; RERR_STREAMIO" 
     677      echo "Erreur dans flux de donnée du protocole rsync" 
     678      return;; 
     679    13) echo "Erreur de rsync ; RERR_MESSAGEIO" 
     680      echo "Erreur avec les diagnostics du programme" 
     681      return;; 
     682    14) echo "Erreur de rsync ; RERR_IPC" 
     683      echo "Erreur dans le code IPC" 
     684      return;; 
     685    20) echo "Erreur de rsync ; RERR_SIGNAL" 
     686      echo "SIGUSR1 ou SIGINT reçu" 
     687      return;; 
     688    21) echo "Erreur de rsync ; RERR_WAITCHILD" 
     689      echo "Une erreur retournée par waitpid()" 
     690      return;; 
     691    22) echo "Erreur de rsync ; RERR_MALLOC" 
     692      echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 
     693      return;; 
     694    23) echo "" 
     695      echo "Erreur fichier inexistant" 
     696      return;; 
     697    30) echo "Erreur de rsync ; RERR_TIMEOUT" 
     698      echo "Temps d'attente écoulé dans l'envoi/réception de données" 
     699      return;; 
     700    *)  echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 
     701      return;; 
     702    esac 
     703  elif [ $MYLANG = "en" ] ; then 
     704    case $RET in 
     705    0)  return;; 
     706    1)  echo "rsync error : Syntax or usage error " 
     707      return;; 
     708    2)  echo "rsync error : Protocol incompatibility " 
     709      return;; 
     710    3)  echo "rsync error : Errors selecting input/output files, dirs" 
     711      return;; 
     712    4)  echo "rsync error : Requested action not supported: an attempt" 
     713      echo "was made to manipulate 64-bit files on a platform that cannot support" 
     714      echo "them; or an option was specified that is supported by the client and" 
     715      echo "not by the server." 
     716      return;; 
     717    5)  echo "rsync error : Error starting client-server protocol" 
     718      return;; 
     719    10) echo "rsync error : Error in socket I/O " 
     720      return;; 
     721    11) echo "rsync error : Error in file I/O " 
     722      return;; 
     723    12) echo "rsync error : Error in rsync protocol data stream " 
     724      return;; 
     725    13) echo "rsync error : Errors with program diagnostics " 
     726      return;; 
     727    14) echo "rsync error : Error in IPC code " 
     728      return;; 
     729    20) echo "rsync error : Received SIGUSR1 or SIGINT " 
     730      return;; 
     731    21) echo "rsync error : Some error returned by waitpid() " 
     732      return;; 
     733    22) echo "rsync error : Error allocating core memory buffers " 
     734      return;; 
     735    23) echo "rsync error : Partial transfer due to error" 
     736      return;; 
     737    24) echo "rsync error : Partial transfer due to vanished source files" 
     738      return;; 
     739    30) echo "rsync error : Timeout in data send/receive " 
     740      return;; 
     741    *)  echo "rsync error : return code of rsync unknown :" $RET 
     742      return;; 
     743    esac 
     744  else 
     745    echo "unknown language $MYLANG." 
     746    return 
     747  fi 
     748} 
    687749 
    688750#D-#================================================== 
     
    692754#D- 
    693755function IGCM_sys_Mirror_libIGCM { 
    694     IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" 
    695     if ( $DEBUG_sys ) ; then 
    696         echo "IGCM_sys_Mirror_libIGCM" 
    697     fi 
    698  
    699     typeset RET 
    700  
    701     IGCM_sys_RshPost <<-EOF 
     756  IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" 
     757  if ( $DEBUG_sys ) ; then 
     758    echo "IGCM_sys_Mirror_libIGCM" 
     759  fi 
     760 
     761  typeset RET 
     762 
     763  IGCM_sys_RshPost <<-EOF 
    702764    mkdir -p ${HOME_POST}/MIRROR/${PATHlibIGCM} 
    703765EOF 
    704     rsh ulam -n hostname > /dev/null 2>&1 
     766  rsh ulam -n hostname > /dev/null 2>&1 
     767  RET=$? 
     768  if [ $RET -eq 0 ] ; then 
     769    echo ${RSYNC} ${RSYNC_opt} -e "rsh " ${libIGCM} ulam:${HOME_POST}/MIRROR/${PATHlibIGCM} > out_rsync 2>&1 
     770    ${RSYNC} ${RSYNC_opt} -e "rsh " ${libIGCM} ulam:${HOME_POST}/MIRROR/${PATHlibIGCM} >> out_rsync 2>&1 
    705771    RET=$? 
    706     if [ $RET -eq 0 ] ; then 
    707         echo ${RSYNC} ${RSYNC_opt} -e "rsh " ${libIGCM} ulam:${HOME_POST}/MIRROR/${PATHlibIGCM} > out_rsync 2>&1 
    708         ${RSYNC} ${RSYNC_opt} -e "rsh " ${libIGCM} ulam:${HOME_POST}/MIRROR/${PATHlibIGCM} >> out_rsync 2>&1 
    709         RET=$? 
    710  
    711         if [ ${RET} -gt 0 ] ; then 
    712             echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on ulam." 
    713             cat out_rsync 
    714         fi 
    715     else 
    716         echo "No POST-TREATMENT avaible because ulam is down." 
    717     fi 
    718     IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" 
     772 
     773    if [ ${RET} -gt 0 ] ; then 
     774      echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on ulam." 
     775      cat out_rsync 
     776    fi 
     777    IGCM_sys_Rm out_rsync 
     778  else 
     779    echo "No POST-TREATMENT avaible because ulam is down." 
     780  fi 
     781  IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" 
    719782} 
    720783 
     
    722785#- Call IGCM_sys_Mirror_libIGCM now ! 
    723786if ( $MirrorlibIGCM ) ; then 
    724     IGCM_sys_Mirror_libIGCM 
     787  IGCM_sys_Mirror_libIGCM 
    725788fi 
    726789 
     
    731794#D- 
    732795function IGCM_sys_Cp { 
    733     IGCM_debug_PushStack "IGCM_sys_Cp" $@ 
    734     if ( $DEBUG_sys ) ; then 
    735         echo "IGCM_sys_Cp :" $@ 
    736     fi 
    737  
    738     typeset RET 
    739  
    740     echo cp $@ > out_rsync 2>&1 
    741     \cp $@ >> out_rsync 2>&1 
    742     RET=$? 
    743  
    744     if [ ${RET} -gt 0 ] ; then 
    745         echo "IGCM_sys_Cp : error." 
    746         cat out_rsync 
    747         IGCM_debug_Exit "IGCM_sys_Cp" 
    748      else 
    749         \rm out_rsync 
    750     fi 
    751     IGCM_debug_PopStack "IGCM_sys_Cp" 
     796  IGCM_debug_PushStack "IGCM_sys_Cp" $@ 
     797  if ( $DEBUG_sys ) ; then 
     798    echo "IGCM_sys_Cp :" $@ 
     799  fi 
     800 
     801  typeset RET 
     802 
     803  echo cp $@ > out_rsync 2>&1 
     804  \cp $@ >> out_rsync 2>&1 
     805  RET=$? 
     806 
     807  if [ ${RET} -gt 0 ] ; then 
     808    echo "IGCM_sys_Cp : error." 
     809    cat out_rsync 
     810    IGCM_debug_Exit "IGCM_sys_Cp" 
     811  else 
     812    \rm out_rsync 
     813  fi 
     814  IGCM_debug_PopStack "IGCM_sys_Cp" 
    752815} 
    753816 
     
    758821#D- 
    759822function IGCM_sys_Rm { 
    760     IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 
    761     if ( $DEBUG_sys ) ; then 
    762         echo "IGCM_sys_Rm :" $@ 
    763     fi 
    764  
    765     typeset RET 
    766  
    767     echo rm $@ > out_rsync 2>&1 
    768     \rm $@ >> out_rsync 2>&1 
    769     RET=$? 
    770  
    771     if [ ${RET} -gt 0 ] ; then 
    772         echo "IGCM_sys_Rm : error." 
    773         cat out_rsync 
    774         IGCM_debug_Exit "IGCM_sys_Rm" 
    775     else 
    776         \rm out_rsync 
    777     fi 
    778     IGCM_debug_PopStack "IGCM_sys_Rm" 
     823  IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 
     824  if ( $DEBUG_sys ) ; then 
     825    echo "IGCM_sys_Rm :" $@ 
     826  fi 
     827 
     828  typeset RET 
     829 
     830  echo rm $@ > out_rsync 2>&1 
     831  \rm $@ >> out_rsync 2>&1 
     832  RET=$? 
     833 
     834  if [ ${RET} -gt 0 ] ; then 
     835    echo "IGCM_sys_Rm : error." 
     836    cat out_rsync 
     837    IGCM_debug_Exit "IGCM_sys_Rm" 
     838  else 
     839    \rm out_rsync 
     840  fi 
     841  IGCM_debug_PopStack "IGCM_sys_Rm" 
    779842} 
    780843 
     
    786849#D- 
    787850function IGCM_sys_RmRunDir { 
    788     IGCM_debug_PushStack "IGCM_sys_RmRunDir" -- $@ 
    789     if ( $DEBUG_sys ) ; then 
    790         echo "IGCM_sys_RmRunDir :" $@ 
    791         echo "Dummy call, let the scheduler do that." 
    792     fi 
    793     IGCM_debug_PopStack "IGCM_sys_RmRunDir" 
     851  IGCM_debug_PushStack "IGCM_sys_RmRunDir" -- $@ 
     852  if ( $DEBUG_sys ) ; then 
     853    echo "IGCM_sys_RmRunDir :" $@ 
     854    echo "Dummy call, let the scheduler do that." 
     855  fi 
     856  IGCM_debug_PopStack "IGCM_sys_RmRunDir" 
    794857} 
    795858 
     
    800863#D- 
    801864function IGCM_sys_Mv { 
    802     IGCM_debug_PushStack "IGCM_sys_Mv" $@ 
    803     if ( $DEBUG_sys ) ; then 
    804         echo "IGCM_sys_Mv :" $@ 
    805     fi 
    806  
    807     if [ $DRYRUN = 0 ]; then 
    808  
    809         typeset RET 
    810              
    811         echo mv $@ > out_rsync 2>&1 
    812         \mv $@ >> out_rsync 2>&1 
    813         RET=$? 
    814      
    815         if [ ${RET} -gt 0 ] ; then 
    816             echo "IGCM_sys_Mv : error in mv." 
    817             cat out_rsync 
    818             IGCM_debug_Exit "IGCM_sys_Mv" 
    819         else 
    820             \rm out_rsync 
    821         fi 
     865  IGCM_debug_PushStack "IGCM_sys_Mv" $@ 
     866  if ( $DEBUG_sys ) ; then 
     867    echo "IGCM_sys_Mv :" $@ 
     868  fi 
     869 
     870  if [ $DRYRUN = 0 ]; then 
     871 
     872    typeset RET 
     873 
     874    echo mv $@ > out_rsync 2>&1 
     875    \mv $@ >> out_rsync 2>&1 
     876    RET=$? 
     877 
     878    if [ ${RET} -gt 0 ] ; then 
     879      echo "IGCM_sys_Mv : error in mv." 
     880      cat out_rsync 
     881      IGCM_debug_Exit "IGCM_sys_Mv" 
    822882    else 
    823         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    824     fi 
    825  
    826     IGCM_debug_PopStack "IGCM_sys_Mv" 
     883      \rm out_rsync 
     884    fi 
     885  else 
     886    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     887  fi 
     888 
     889  IGCM_debug_PopStack "IGCM_sys_Mv" 
    827890} 
    828891 
     
    833896#D- 
    834897function IGCM_sys_Put_Dir { 
    835     IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 
    836     if ( $DEBUG_sys ) ; then 
    837         echo "IGCM_sys_Put_Dir :" $@ 
    838     fi 
    839     if [ $DRYRUN = 0 ]; then 
    840         if [ ! -d ${1} ] ; then 
    841             echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 
    842             IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
    843             return 
    844         fi 
    845  
    846         typeset RET 
    847  
    848         # Only if we use rsync 
    849         #IGCM_sys_TestDirArchive $( dirname $2 ) 
    850         # 
    851         #USUAL WAY 
    852         rcp -r $1 ${STOREHOST}:$2 > out_rsync 2>&1 
    853         RET=$? 
    854  
    855         if [ ${RET} -gt 0 ] ; then 
    856             echo "IGCM_sys_Put_Dir : error." 
    857             cat out_rsync 
    858             IGCM_debug_Exit "IGCM_sys_Put_Dir" 
    859         else 
    860             \rm out_rsync 
    861         fi 
     898  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 
     899  if ( $DEBUG_sys ) ; then 
     900    echo "IGCM_sys_Put_Dir :" $@ 
     901  fi 
     902  if [ $DRYRUN = 0 ]; then 
     903    if [ ! -d ${1} ] ; then 
     904      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 
     905      IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
     906      return 
     907    fi 
     908 
     909    typeset RET 
     910 
     911    # Only if we use rsync 
     912    #IGCM_sys_TestDirArchive $( dirname $2 ) 
     913    # 
     914    #USUAL WAY 
     915    rcp -r $1 ${STOREHOST}:$2 > out_rsync 2>&1 
     916    RET=$? 
     917 
     918    if [ ${RET} -gt 0 ] ; then 
     919      echo "IGCM_sys_Put_Dir : error." 
     920      cat out_rsync 
     921      IGCM_debug_Exit "IGCM_sys_Put_Dir" 
    862922    else 
    863         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    864     fi 
    865     IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
     923      \rm out_rsync 
     924    fi 
     925  else 
     926    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     927  fi 
     928  IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
    866929} 
    867930 
     
    872935#D- 
    873936function IGCM_sys_Get_Dir { 
    874     IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 
    875     if ( $DEBUG_sys ) ; then 
    876         echo "IGCM_sys_Get_Dir :" $@ 
    877     fi 
    878     if [ $DRYRUN = 0 ]; then 
    879         if [ ! -d ${1} ] ; then 
    880             echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 
    881             IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
    882             return 
    883         fi 
    884  
    885         typeset RET 
    886  
    887         #USUAL WAY 
    888         rcp -rp ${STOREHOST}:$1 $2 > out_rsync 2>&1 
    889         RET=$? 
    890  
    891         if [ ${RET} -gt 0 ] ; then 
    892             echo "IGCM_sys_Get_Dir : error." 
    893             cat out_rsync 
    894             IGCM_debug_Exit "IGCM_sys_Get_Dir" 
    895         fi 
    896     else 
    897         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    898     fi 
    899     IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
     937  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 
     938  if ( $DEBUG_sys ) ; then 
     939    echo "IGCM_sys_Get_Dir :" $@ 
     940  fi 
     941  if [ $DRYRUN = 0 ]; then 
     942    if [ ! -d ${1} ] ; then 
     943      echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 
     944      IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
     945      return 
     946    fi 
     947 
     948    typeset RET 
     949 
     950        #USUAL WAY 
     951    rcp -rp ${STOREHOST}:$1 $2 > out_rsync 2>&1 
     952    RET=$? 
     953 
     954    if [ ${RET} -gt 0 ] ; then 
     955      echo "IGCM_sys_Get_Dir : error." 
     956      cat out_rsync 
     957      IGCM_debug_Exit "IGCM_sys_Get_Dir" 
     958    fi 
     959  else 
     960    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     961  fi 
     962  IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
    900963} 
    901964 
     
    907970#D- 
    908971function IGCM_sys_Put_Rest { 
    909     IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 
    910     if ( $DEBUG_sys ) ; then 
    911         echo "IGCM_sys_Put_Rest :" $@ 
    912     fi 
    913     if [ $DRYRUN = 0 ]; then 
    914         if [ ! -f ${1} ] ; then 
    915             echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 
    916             IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    917         fi 
    918  
    919         typeset RET 
    920         # 
    921         if [ X${JobType} = XRUN ] ; then 
    922             IGCM_sys_Chmod 444 ${1} 
    923         fi 
    924         # 
    925         # Only if we use rsync 
    926         #IGCM_sys_MkdirArchive $( dirname $2 ) 
    927         # 
    928         #USUAL WAY 
    929         mfput $1 $2 > out_rsync 2>&1 
    930         RET=$? 
    931  
    932 #       #RSYNC WITH NETWORK RSH CALL 
    933 #       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
    934 #       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
    935  
    936 #       #RSYNC WITH NFS USE 
    937 #       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > out_rsync 2>&1 
    938 #       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> out_rsync 2>&1 
    939          
    940 #       RET=$? 
    941 #       IGCM_sys_Rsync_out $RET 
    942  
    943 #       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
    944 #       (( RET=RET+$? )) 
    945  
    946         if [ ${RET} -gt 0 ] ; then 
    947             echo "IGCM_sys_Put_Rest : error." 
    948             cat out_rsync 
    949             IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    950         else 
    951             \rm out_rsync 
    952         fi 
     972  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 
     973  if ( $DEBUG_sys ) ; then 
     974    echo "IGCM_sys_Put_Rest :" $@ 
     975  fi 
     976  if [ $DRYRUN = 0 ]; then 
     977    if [ ! -f ${1} ] ; then 
     978      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 
     979      IGCM_debug_Exit "IGCM_sys_Put_Rest" 
     980    fi 
     981 
     982    typeset RET 
     983        # 
     984    if [ X${JobType} = XRUN ] ; then 
     985      IGCM_sys_Chmod 444 ${1} 
     986    fi 
     987    # 
     988    # Only if we use rsync 
     989    #IGCM_sys_MkdirArchive $( dirname $2 ) 
     990    # 
     991    #USUAL WAY 
     992    mfput $1 $2 > out_rsync 2>&1 
     993    RET=$? 
     994 
     995#       #RSYNC WITH NETWORK RSH CALL 
     996#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
     997#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
     998 
     999#       #RSYNC WITH NFS USE 
     1000#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > out_rsync 2>&1 
     1001#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> out_rsync 2>&1 
     1002 
     1003#       RET=$? 
     1004#       IGCM_sys_Rsync_out $RET 
     1005 
     1006#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
     1007#       (( RET=RET+$? )) 
     1008 
     1009    if [ ${RET} -gt 0 ] ; then 
     1010      echo "IGCM_sys_Put_Rest : error." 
     1011      cat out_rsync 
     1012      IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    9531013    else 
    954         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    955     fi 
    956     IGCM_debug_PopStack "IGCM_sys_Put_Rest" 
     1014      \rm out_rsync 
     1015    fi 
     1016  else 
     1017    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1018  fi 
     1019  IGCM_debug_PopStack "IGCM_sys_Put_Rest" 
     1020} 
     1021 
     1022#D-#================================================== 
     1023#D-function IGCM_sys_PutBuffer_Rest 
     1024#D-* Purpose: Put computied restarts on ${SCRATCHDIR}. 
     1025#D-           File and target directory must exist. 
     1026#D-* Examples: 
     1027#D- 
     1028function IGCM_sys_PutBuffer_Rest { 
     1029  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Rest" $@ 
     1030  if ( $DEBUG_sys ) ; then 
     1031    echo "IGCM_sys_PutBuffer_Rest :" $@ 
     1032  fi 
     1033  if [ $DRYRUN = 0 ]; then 
     1034    if [ ! -f ${1} ] ; then 
     1035      echo "ERROR : IGCM_sys_PutBuffer_Rest ${1} DOES NOT EXIST ." 
     1036      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 
     1037    fi 
     1038 
     1039    typeset RET 
     1040    # 
     1041    if [ X${JobType} = XRUN ] ; then 
     1042      IGCM_sys_Chmod 444 ${1} 
     1043    fi 
     1044 
     1045    # 
     1046    # USUAL WAY 
     1047    \cp $1 $2 > out_rsync 2>&1 
     1048    RET=$? 
     1049 
     1050    if [ ${RET} -gt 0 ] ; then 
     1051      echo "IGCM_sys_PutBuffer_Rest : error." 
     1052      cat out_rsync 
     1053      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 
     1054    else 
     1055      \rm out_rsync 
     1056    fi 
     1057  else 
     1058    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1059  fi 
     1060  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Rest" 
    9571061} 
    9581062 
     
    9631067#D- 
    9641068function IGCM_sys_Put_Out { 
    965     IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 
    966     if ( $DEBUG_sys ) ; then 
    967         echo "IGCM_sys_Put_Out :" $@ 
    968     fi 
    969     if [ $DRYRUN = 0 ]; then 
    970         if [ ! -f ${1} ] ; then 
    971             echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 
    972             IGCM_debug_PopStack "IGCM_sys_Put_Out" 
    973             return 1 
    974         fi 
    975  
    976         typeset RET 
    977         # 
    978         if [ X${JobType} = XRUN ] ; then 
    979             if [ X${3} = X ] ; then 
    980                 IGCM_sys_Chmod 444 ${1} 
    981             fi 
    982         fi 
    983         # 
    984         # Only if we use rsync 
    985         #IGCM_sys_MkdirArchive $( dirname $2 ) 
    986         # 
    987         #USUAL WAY 
    988         mfput $1 $2 > out_rsync 2>&1 
    989         RET=$? 
    990  
    991 #       #RSYNC WITH NETWORK RSH CALL 
    992 #       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
    993 #       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
    994  
    995 #       #RSYNC WITH NFS USE 
    996 #       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > out_rsync 2>&1 
    997 #       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> out_rsync 2>&1 
    998  
    999 #       RET=$? 
    1000 #       IGCM_sys_Rsync_out $RET 
    1001  
    1002 #       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
    1003 #       (( RET=RET+$? )) 
    1004  
    1005         if [ ${RET} -gt 0 ] ; then 
    1006             echo "IGCM_sys_Put_Out : error." 
    1007             cat out_rsync 
    1008             IGCM_debug_Exit "IGCM_sys_Put_Out" 
    1009         else 
    1010             \rm out_rsync 
    1011         fi 
     1069  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 
     1070  if ( $DEBUG_sys ) ; then 
     1071    echo "IGCM_sys_Put_Out :" $@ 
     1072  fi 
     1073  if [ $DRYRUN = 0 ]; then 
     1074    if [ ! -f ${1} ] ; then 
     1075      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 
     1076      IGCM_debug_PopStack "IGCM_sys_Put_Out" 
     1077      return 1 
     1078    fi 
     1079 
     1080    typeset RET 
     1081        # 
     1082    if [ X${JobType} = XRUN ] ; then 
     1083      if [ X${3} = X ] ; then 
     1084        IGCM_sys_Chmod 444 ${1} 
     1085      fi 
     1086    fi 
     1087    # 
     1088    # Only if we use rsync 
     1089    #IGCM_sys_MkdirArchive $( dirname $2 ) 
     1090    # 
     1091    #USUAL WAY 
     1092    mfput $1 $2 > out_rsync 2>&1 
     1093    RET=$? 
     1094 
     1095#       #RSYNC WITH NETWORK RSH CALL 
     1096#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
     1097#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
     1098 
     1099#       #RSYNC WITH NFS USE 
     1100#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > out_rsync 2>&1 
     1101#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> out_rsync 2>&1 
     1102 
     1103#       RET=$? 
     1104#       IGCM_sys_Rsync_out $RET 
     1105 
     1106#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
     1107#       (( RET=RET+$? )) 
     1108 
     1109    if [ ${RET} -gt 0 ] ; then 
     1110      echo "IGCM_sys_Put_Out : error." 
     1111      cat out_rsync 
     1112      IGCM_debug_Exit "IGCM_sys_Put_Out" 
    10121113    else 
    1013         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    1014     fi 
    1015     IGCM_debug_PopStack "IGCM_sys_Put_Out" 
    1016     return 0 
     1114      \rm out_rsync 
     1115    fi 
     1116    IGCM_sys_Rm out_rsync 
     1117  else 
     1118    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1119  fi 
     1120  IGCM_debug_PopStack "IGCM_sys_Put_Out" 
     1121  return 0 
     1122} 
     1123 
     1124#D-#================================================== 
     1125#D-function IGCM_sys_PutBuffer_Out 
     1126#D-* Purpose: Copy a file on ${SCRATCHDIR} after having chmod it in readonly 
     1127#D-* Examples: 
     1128#D- 
     1129function IGCM_sys_PutBuffer_Out { 
     1130  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Out" $@ 
     1131  if ( $DEBUG_sys ) ; then 
     1132    echo "IGCM_sys_PutBuffer_Out :" $@ 
     1133  fi 
     1134  if [ $DRYRUN = 0 ]; then 
     1135    if [ ! -f ${1} ] ; then 
     1136      echo "WARNING : IGCM_sys_PutBuffer_Out ${1} DOES NOT EXIST ." 
     1137      IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 
     1138      return 1 
     1139    fi 
     1140    # 
     1141    IGCM_sys_Mkdir $( dirname $2 ) 
     1142    # 
     1143    typeset RET 
     1144 
     1145    if [ X${JobType} = XRUN ] ; then 
     1146      if [ X${3} = X ] ; then 
     1147        IGCM_sys_Chmod 444 ${1} 
     1148      fi 
     1149    fi 
     1150    # 
     1151    # USUAL WAY 
     1152    \cp $1 $2 > out_rsync 2>&1 
     1153    RET=$? 
     1154 
     1155    if [ ${RET} -gt 0 ] ; then 
     1156      echo "IGCM_sys_PutBuffer_Out : error." 
     1157      cat out_rsync 
     1158      IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" 
     1159    else 
     1160      \rm out_rsync 
     1161    fi 
     1162  else 
     1163    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1164  fi 
     1165  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 
     1166  return 0 
    10171167} 
    10181168 
     
    10231173#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/ 
    10241174function IGCM_sys_Get { 
    1025     IGCM_debug_PushStack "IGCM_sys_Get" $@ 
    1026  
    1027     typeset DEST RET dm_liste ifile target 
    1028  
    1029     if ( $DEBUG_sys ) ; then 
    1030         echo "IGCM_sys_Get :" $@ 
    1031     fi 
    1032     if [ $DRYRUN -le 2 ]; then 
    1033         if [ X${1} = X'/l' ] ; then 
    1034             # test if the first file is present in the old computation : 
    1035             eval set +A dm_liste \${${2}} 
    1036         else 
    1037             dm_liste=${1} 
    1038         fi 
    1039         eval DEST=\${${#}} 
    1040  
    1041         # test if the (first) file is present in the old computation : 
    1042         IGCM_sys_TestFileArchive ${dm_liste[0]} 
    1043         RET=$? 
    1044         if [ ${RET} -gt 0 ] ; then 
    1045             echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 
    1046             IGCM_debug_Exit "IGCM_sys_Get" 
    1047             return 
    1048         fi 
    1049  
    1050         # SD : dm_liste is not suited for computing job 
    1051         #      because we change filename during transfert 
    1052         #      dm_liste is better suited for post-treatment 
    1053         #dm_liste=" " 
    1054         #(( ifile=1 )) 
    1055         #while [ $ifile -lt $# ] ; do 
    1056         #    dm_liste=$( eval echo ${dm_liste} " "\${${ifile}} ) 
    1057         #    (( ifile = ifile + 1 )) 
    1058         #done 
    1059         #DEST=$( eval echo \${${#}} ) 
    1060  
    1061         #USUAL WAY 
    1062         mfget ${dm_liste[*]} ${DEST} > out_rsync 2>&1 
    1063         #mfget $1 $2 > out_rsync 2>&1 
    1064         RET=$? 
    1065  
    1066 #       #RSYNC WITH NETWORK RSH CALL 
    1067 #       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&1 
    1068 #       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&1 
    1069  
    1070 #       #RSYNC WITH NFS USE 
    1071 #       echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > out_rsync 2>&1 
    1072 #       ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> out_rsync 2>&1 
    1073  
    1074 #       RET=$? 
    1075 #       IGCM_sys_Rsync_out $RET 
    1076  
    1077 #       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
    1078 #       (( RET=RET+$? )) 
    1079  
    1080         if [ ${RET} -gt 0 ] ; then 
    1081             echo "IGCM_sys_Get : copy error." 
    1082             cat out_rsync 
    1083             IGCM_debug_Exit "IGCM_sys_Get" 
    1084         else 
    1085             \rm out_rsync 
    1086         fi 
     1175  IGCM_debug_PushStack "IGCM_sys_Get" $@ 
     1176 
     1177  typeset DEST RET dm_liste ifile target 
     1178 
     1179  if ( $DEBUG_sys ) ; then 
     1180    echo "IGCM_sys_Get :" $@ 
     1181  fi 
     1182  if [ $DRYRUN -le 2 ]; then 
     1183    if [ X${1} = X'/l' ] ; then 
     1184      # test if the first file is present in the old computation : 
     1185      eval set +A dm_liste \${${2}} 
    10871186    else 
    1088         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    1089     fi 
    1090     IGCM_debug_PopStack "IGCM_sys_Get" 
     1187      dm_liste=${1} 
     1188    fi 
     1189    eval DEST=\${${#}} 
     1190 
     1191    # test if the (first) file is present in the old computation : 
     1192    IGCM_sys_TestFileArchive ${dm_liste[0]} 
     1193    RET=$? 
     1194    if [ ${RET} -gt 0 ] ; then 
     1195      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 
     1196      IGCM_debug_Exit "IGCM_sys_Get" 
     1197      return 
     1198    fi 
     1199 
     1200    # SD : dm_liste is not suited for computing job 
     1201    #      because we change filename during transfert 
     1202    #      dm_liste is better suited for post-treatment 
     1203    #dm_liste=" " 
     1204    #(( ifile=1 )) 
     1205    #while [ $ifile -lt $# ] ; do 
     1206    #    dm_liste=$( eval echo ${dm_liste} " "\${${ifile}} ) 
     1207    #    (( ifile = ifile + 1 )) 
     1208    #done 
     1209    #DEST=$( eval echo \${${#}} ) 
     1210 
     1211    #USUAL WAY 
     1212    mfget ${dm_liste[*]} ${DEST} > out_rsync 2>&1 
     1213    RET=$? 
     1214 
     1215#       #RSYNC WITH NETWORK RSH CALL 
     1216#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&1 
     1217#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&1 
     1218 
     1219#       #RSYNC WITH NFS USE 
     1220#       echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > out_rsync 2>&1 
     1221#       ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> out_rsync 2>&1 
     1222 
     1223#       RET=$? 
     1224#       IGCM_sys_Rsync_out $RET 
     1225 
     1226#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk out_rsync 
     1227#       (( RET=RET+$? )) 
     1228 
     1229    if [ ${RET} -gt 0 ] ; then 
     1230      echo "IGCM_sys_Get : copy error." 
     1231      cat out_rsync 
     1232      IGCM_debug_Exit "IGCM_sys_Get" 
     1233    else 
     1234      \rm out_rsync 
     1235    fi 
     1236  else 
     1237    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1238  fi 
     1239  IGCM_debug_PopStack "IGCM_sys_Get" 
     1240} 
     1241 
     1242#D-#================================================== 
     1243#D-function IGCM_sys_GetBuffer 
     1244#D-* Purpose: Get a file from ${SCRATCHDIR} 
     1245#D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX 
     1246#D-            IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/ 
     1247function IGCM_sys_GetBuffer { 
     1248  IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@ 
     1249 
     1250  typeset DEST RET buf_liste ifile target file_work 
     1251 
     1252  if ( $DEBUG_sys ) ; then 
     1253    echo "IGCM_sys_GetBuffer :" $@ 
     1254  fi 
     1255  if [ $DRYRUN -le 2 ]; then 
     1256    if [ X${1} = X'/l' ] ; then 
     1257      # test if the first file is present in the old computation : 
     1258      eval set +A buf_liste \${${2}} 
     1259    else 
     1260      eval set +A buf_liste ${1} 
     1261    fi 
     1262    eval DEST=\${${#}} 
     1263 
     1264    #USUAL WAY 
     1265    if [ X${1} = X'/l' ] ; then 
     1266      (( RET=0 )) 
     1267      for target in ${buf_liste[*]} ; do 
     1268        local_file=$( basename ${target} ) 
     1269        \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 
     1270        (( RET = RET + $? )) 
     1271      done 
     1272    else 
     1273      \cp ${buf_liste} ${DEST} >> out_rsync 2>&1 
     1274      RET=$? 
     1275    fi 
     1276 
     1277    if [ ${RET} -gt 0 ] ; then 
     1278      echo "IGCM_sys_GetBuffer : copy error." 
     1279      cat out_rsync 
     1280      IGCM_debug_Exit "IGCM_sys_GetBuffer" 
     1281    else 
     1282      \rm out_rsync 
     1283    fi 
     1284  else 
     1285    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1286  fi 
     1287  IGCM_debug_PopStack "IGCM_sys_GetBuffer" 
    10911288} 
    10921289 
     
    10991296#D- 
    11001297function IGCM_sys_GetDate_FichWork { 
    1101     IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 
    1102     if ( $DEBUG_sys ) ; then 
    1103         echo "IGCM_sys_GetDate_FichWork :" $@ 
    1104     fi 
    1105     typeset dateF 
    1106     set +A dateF -- $( rsh ${MASTER} -n /opt/freeware/bin/ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
    1107     eval ${2}=${dateF[5]} 
    1108  
    1109     # donne la date filesys d'un fichier sur la machine work 
    1110     IGCM_debug_PopStack "IGCM_sys_FichWork" 
     1298  IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 
     1299  if ( $DEBUG_sys ) ; then 
     1300    echo "IGCM_sys_GetDate_FichWork :" $@ 
     1301  fi 
     1302  typeset dateF 
     1303  set +A dateF -- $( rsh ${MASTER} -n /opt/freeware/bin/ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
     1304  eval ${2}=${dateF[5]} 
     1305 
     1306  # donne la date filesys d'un fichier sur la machine work 
     1307  IGCM_debug_PopStack "IGCM_sys_FichWork" 
    11111308} 
    11121309 
    11131310#D-#================================================== 
    11141311#D-function IGCM_sys_GetDate_FichArchive 
    1115 #D-* Purpose: donne la date filesys d'un fichier sur le filesystem ARCHIVE  
     1312#D-* Purpose: donne la date filesys d'un fichier sur le filesystem ARCHIVE 
    11161313#D-* Examples: 
    11171314#D- 
    11181315function IGCM_sys_GetDate_FichArchive { 
    1119     IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 
    1120     if ( $DEBUG_sys ) ; then 
    1121         echo "IGCM_sys_GetDate_FichArchive :" $@ 
    1122     fi 
    1123     typeset dateF 
    1124     set +A dateF -- $( rsh ${STOREHOST} -n ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
    1125     eval ${2}=${dateF[5]} 
    1126  
    1127     IGCM_debug_PopStack "IGCM_sys_FichArchive" 
     1316  IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 
     1317  if ( $DEBUG_sys ) ; then 
     1318    echo "IGCM_sys_GetDate_FichArchive :" $@ 
     1319  fi 
     1320  typeset dateF 
     1321  set +A dateF -- $( rsh ${STOREHOST} -n ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
     1322  eval ${2}=${dateF[5]} 
     1323 
     1324  IGCM_debug_PopStack "IGCM_sys_FichArchive" 
    11281325} 
    11291326 
     
    11321329 
    11331330function IGCM_sys_rebuild { 
    1134     IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 
    1135     if ( $DEBUG_sys ) ; then 
    1136         echo "IGCM_sys_rebuild :" $@ 
    1137     fi 
    1138     /homegpfs/rech/psl/rpsl035/bin/rebuild -f -o $@ 
    1139     if [ $? -gt 0 ] ; then 
    1140        echo "IGCM_sys_rebuild : erreur ${@}." 
    1141        IGCM_debug_Exit "rebuild" 
    1142     fi 
    1143  
    1144     IGCM_debug_PopStack "IGCM_sys_rebuild" 
     1331  IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 
     1332  if ( $DEBUG_sys ) ; then 
     1333    echo "IGCM_sys_rebuild :" $@ 
     1334  fi 
     1335  /homegpfs/rech/psl/rpsl035/bin/rebuild -f -o $@ 
     1336  if [ $? -gt 0 ] ; then 
     1337    echo "IGCM_sys_rebuild : erreur ${@}." 
     1338    IGCM_debug_Exit "rebuild" 
     1339  fi 
     1340 
     1341  IGCM_debug_PopStack "IGCM_sys_rebuild" 
    11451342} 
    11461343 
     
    11491346 
    11501347function IGCM_sys_activ_variables { 
    1151     IGCM_debug_PushStack "IGCM_sys_activ_variables" 
    1152     if ( $DEBUG_sys ) ; then 
    1153         echo "IGCM_sys_activ_variables " 
    1154     fi 
     1348  IGCM_debug_PushStack "IGCM_sys_activ_variables" 
     1349  if ( $DEBUG_sys ) ; then 
     1350    echo "IGCM_sys_activ_variables " 
     1351  fi 
    11551352 
    11561353# -------------------------------------------------------------------- 
     
    11621359# -------------------------------------------------------------------- 
    11631360 
    1164     IGCM_debug_PopStack "IGCM_sys_activ_variables" 
     1361  IGCM_debug_PopStack "IGCM_sys_activ_variables" 
    11651362 
    11661363} 
     
    11701367 
    11711368function IGCM_sys_desactiv_variables { 
    1172     IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 
    1173     if ( $DEBUG_sys ) ; then 
    1174         echo "IGCM_sys_desactiv_variables " 
    1175     fi 
     1369  IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 
     1370  if ( $DEBUG_sys ) ; then 
     1371    echo "IGCM_sys_desactiv_variables " 
     1372  fi 
    11761373# -------------------------------------------------------------------- 
    11771374#D- MPI specifications 
     
    11821379# -------------------------------------------------------------------- 
    11831380 
    1184     IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 
    1185    
     1381  IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 
     1382 
    11861383} 
    11871384 
    11881385############################################################ 
    1189 # Build run file 
     1386# Build MPI/OMP scripts 
     1387function IGCM_sys_build_execution_scripts 
     1388{ 
     1389  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@ 
     1390  if ( $DEBUG_sys ) ; then 
     1391    echo "IGCM_sys_build_execution_scripts " $@ 
     1392  fi 
     1393 
     1394  typeset NbNodes_Job NbProc_Job comp_proc_mpi_loc comp_proc_omp_loc mpi_count 
     1395 
     1396  if [ ! -f ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ]  ; then 
     1397    IGCM_debug_Exit "IGCM_sys_vargas build_execution_scripts : Job_${config_UserChoices_JobName} don't exist in SUBMIT_DIR : ${SUBMIT_DIR} " 
     1398  fi 
     1399 
     1400  if ( ${OK_PARA_MPMD} ) ; then 
     1401 
     1402    if [ -f run_file ] ; then 
     1403      IGCM_sys_Rm -f run_file 
     1404    fi 
     1405    touch run_file 
     1406 
     1407    if ( ${OK_PARA_OMP} ) ; then 
     1408# NEW : 2 Noeuds 
     1409# @ task_geometry={(0)(1,2,3)} 
     1410# Nombre de processus demandes 
     1411      echo "Job_${config_UserChoices_JobName} includes task_geometry = \c" 
     1412      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g" 
     1413      echo "Job_${config_UserChoices_JobName} includes task_geometry  with NbNodes = \c" 
     1414      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g" | wc -c 
     1415      NbNodes_Job=$(( $( cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g" | wc -c ) - 1 )) 
     1416 
     1417      if [ ${NbNodes_Job} -eq 0 ] ; then 
     1418        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources : no task_geometry defined with OpenMP run." 
     1419        exit 1 
     1420      fi 
     1421    else 
     1422 
     1423# OLD : 
     1424# @ total_tasks = 3 
     1425# @ environment = "BATCH_NUM_PROC_TOT=3" 
     1426# Pas d OpenMP 
     1427# @ resources = ConsumableCpus(1) 
     1428 
     1429      echo "Job_${config_UserChoices_JobName} includes total_tasks = \c" 
     1430      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "total_tasks" | sed -e "s/.*total_tasks = //" 
     1431      NbProc_Job=$( cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "total_tasks" | sed -e "s/.*total_tasks = //" ) 
     1432      NbProc_Job=${NbProc_Job:=0} 
     1433      if [ ${NbProc_Job} -eq 0 ] ; then 
     1434        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources : no total_tasks defined with MPI only run." 
     1435        exit 1 
     1436      fi 
     1437      if ( $( egrep '^# *@ *resources *= *ConsumableCpus\(1\)' ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} >/dev/null 2>&1 ) ) ; then 
     1438        IGCM_debug_Print 2 "ressources =  ConsumableCpus(1) line found into Job_${config_UserChoices_JobName}" 
     1439      else 
     1440        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources = line not found. Job should include resources = ConsumableCpus(1) " 
     1441        exit 1 
     1442      fi 
     1443    fi 
     1444 
     1445# run_file construction 
     1446 
     1447# Then first loop on the components for the coupler ie oasis 
     1448 
     1449### the coupler ie oasis must be the first one 
     1450    for comp in ${config_ListOfComponents[*]} ; do 
     1451 
     1452      eval ExeNameIn=\${config_Executable_${comp}[0]} 
     1453      eval ExeNameOut=\${config_Executable_${comp}[1]} 
     1454 
     1455      # for CPL component only 
     1456      if [ "X${comp}" = "XCPL" ] ; then 
     1457 
     1458        eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} 
     1459        eval comp_proc_omp_loc=\${${comp}_PROC_OMP} 
     1460 
     1461        if ( ${OK_PARA_MPI} ) ; then 
     1462 
     1463          (( mpi_count = 1 )) 
     1464          until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do 
     1465            if ( ${OK_PARA_OMP} ) ; then 
     1466              echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file 
     1467            else 
     1468              echo "./${ExeNameOut}" >> run_file 
     1469            fi 
     1470            (( mpi_count = mpi_count + 1 )) 
     1471          done 
     1472        else 
     1473          if ( ${OK_PARA_OMP} ) ; then 
     1474            echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file 
     1475          else 
     1476            echo "./${ExeNameOut} " >> run_file 
     1477          fi 
     1478        fi 
     1479      fi 
     1480    done 
     1481 
     1482# Then second loop on the components 
     1483 
     1484    for comp in ${config_ListOfComponents[*]} ; do 
     1485 
     1486      eval ExeNameIn=\${config_Executable_${comp}[0]} 
     1487      eval ExeNameOut=\${config_Executable_${comp}[1]} 
     1488 
     1489      # Only if we really have an executable for the component and not the coupler ie oasis: 
     1490      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then 
     1491 
     1492        eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} 
     1493        eval comp_proc_omp_loc=\${${comp}_PROC_OMP} 
     1494 
     1495        if ( ${OK_PARA_MPI} ) ; then 
     1496 
     1497          (( mpi_count = 1 )) 
     1498          until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do 
     1499            if ( ${OK_PARA_OMP} ) ; then 
     1500              echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file 
     1501            else 
     1502              echo "./${ExeNameOut}" >> run_file 
     1503            fi 
     1504            (( mpi_count = mpi_count + 1 )) 
     1505          done 
     1506        else 
     1507          if ( ${OK_PARA_OMP} ) ; then 
     1508            echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file 
     1509          else 
     1510                    # to be tested : no MPI only OpenMP into MPMD mode 
     1511            echo "./${ExeNameOut} " >> run_file 
     1512          fi 
     1513        fi 
     1514      fi 
     1515    done 
     1516 
     1517    EXECUTION="${HOST_MPIRUN_COMMAND} -pgmmodel mpmd -cmdfile ./run_file" 
     1518 
     1519    IGCM_sys_Chmod u+x run_file 
     1520    if ( $DEBUG_sys ) ; then 
     1521      echo "run_file contains : " 
     1522      cat run_file 
     1523    fi 
     1524 
     1525  else # Only one executable. launch it. 
     1526 
     1527    for comp in ${config_ListOfComponents[*]} ; do 
     1528 
     1529      eval ExeNameIn=\${config_Executable_${comp}[0]} 
     1530      eval ExeNameOut=\${config_Executable_${comp}[1]} 
     1531 
     1532      [ "X${ExeNameOut}" != X\"\" ] &&  EXECUTION="time ./${ExeNameOut}" 
     1533 
     1534    done 
     1535 
     1536  fi 
     1537 
     1538  IGCM_debug_Print 1 "sys vargas : execution command is " 
     1539  IGCM_debug_Print 1 "$EXECUTION" 
     1540 
     1541  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts" 
     1542} 
    11901543 
    11911544function IGCM_sys_build_run_file { 
    1192     IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 
    1193 set -x 
    1194     if ( $DEBUG_sys ) ; then 
    1195         echo "IGCM_sys_build_run_file " $@ 
    1196     fi 
    1197  
    1198     NUM_PROC_OASIS=1 
    1199  
    1200     # Set the number of processors for OCE here 
    1201     NUM_PROC_OCE=5 
    1202  
    1203     (( NUM_PROC_ATM = BATCH_NUM_PROC_TOT - NUM_PROC_OASIS - NUM_PROC_OCE )) 
    1204      
    1205     if [ $1 = MPI2 ]; then 
    1206        echo "IGCM_sys_build_run_file : error - MPI2 not available on vargas. " 
    1207        IGCM_debug_Exit "IGCM_sys_build_run_file" 
    1208     elif [ $1 = MPI1 ]; then 
    1209         cat <<EOF > run_file 
    1210 ./oasis 
    1211 EOF 
    1212  
    1213         typeset i 
    1214         (( i = 0 )) 
    1215         while [ ${i} -lt ${NUM_PROC_ATM} ] ; do 
    1216             (( i = i + 1 )) 
    1217             cat <<EOF >> run_file 
    1218 ./lmdz.x 
    1219 EOF 
    1220         done 
    1221  
    1222         (( i = 0 )) 
    1223         while [ ${i} -lt ${NUM_PROC_OCE} ] ; do 
    1224             (( i = i + 1 )) 
    1225             cat <<EOF >> run_file 
    1226 ./opa.xx 
    1227 EOF 
    1228         done 
    1229  
    1230         wc -l run_file 
    1231     fi 
    1232 set +x 
    1233     IGCM_debug_PopStack "IGCM_sys_build_run_file" 
    1234 } 
     1545 
     1546  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file " 
     1547 
     1548} 
Note: See TracChangeset for help on using the changeset viewer.