Ignore:
Timestamp:
03/07/12 10:39:55 (12 years ago)
Author:
mafoipsl
Message:

First try to merge libIGCM_MPI_OpenMP branch with libIGCM trunk revision 569. Tested on vargas with PackFrequency?=NONE included into config.card.

Location:
branches/libIGCM_MPI_OpenMP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/libIGCM_MPI_OpenMP

  • branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex8.ksh

    r458 r571  
    8383typeset -r RSYNC_opt="-va" 
    8484# ie storage filesystem 
    85 typeset -r RHOST=mercure 
     85typeset -r STOREHOST=${MASTER} 
    8686 
    8787#==================================================== 
     
    133133#==================================================== 
    134134#- IN 
    135 typeset -r R_IN=${R_IN:=/dmnfs/cont003/p86ipsl/IGCM} 
     135typeset -r R_IN=${R_IN:=/ccc/work/cont003/dsm/p86ipsl/IGCM} 
    136136typeset -r R_IN_ECMWF=${R_IN_ECMWF:=/dmnfs/cont003/p24data} 
    137137 
    138138#==================================================== 
    139 #- OUT 
     139#- R_OUT 
    140140typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 
     141 
     142#==================================================== 
     143#- R_BUF (ONLY FOR double copy an scratch) 
     144typeset -r R_BUF=${SCRATCHDIR}/IGCM_OUT 
     145 
     146#==================================================== 
     147#- BIG_DIR : BIG_DIR to store files waiting for rebuild 
     148typeset -r BIG_DIR=${BIG_DIR:=${SCRATCHDIR}/REBUILD} 
    141149 
    142150#==================================================== 
     
    149157 
    150158#==================================================== 
    151 #- BIG_DIR : BIG_DIR to store files waiting for rebuild 
    152 typeset -r BIG_DIR=${BIG_DIR:=${SCRATCHDIR}/REBUILD} 
    153  
    154 #==================================================== 
    155159#- HOST_MPIRUN_COMMAND 
    156160typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="mpirun"} 
     
    161165 
    162166#D-#================================================== 
     167#D-function IGCM_sys_RshMaster 
     168#D-* Purpose: Connection to frontend machine. 
     169#D-* Examples: 
     170#D- 
     171function IGCM_sys_RshMaster { 
     172  IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ 
     173  ssh -t ${MASTER} /bin/ksh <<-EOF 
     174  export libIGCM=${libIGCM} 
     175  export DEBUG_debug=${DEBUG_debug} 
     176  . ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh 
     177  . ${libIGCM}/libIGCM_card/libIGCM_card.ksh 
     178  ${@} 
     179EOF 
     180  if [ $? -gt 0 ] ; then 
     181    echo "IGCM_sys_RshMaster : erreur." 
     182    IGCM_debug_Exit "IGCM_sys_RshMaster" 
     183  fi 
     184  IGCM_debug_PopStack "IGCM_sys_RshMaster" 
     185} 
     186 
     187#D-#================================================== 
    163188#D-function IGCM_sys_RshArchive 
    164189#D-* Purpose: Archive rsh command 
     
    166191#D- 
    167192function IGCM_sys_RshArchive { 
    168     IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 
    169     /bin/ksh <<-EOF 
    170 ${@} 
     193  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 
     194  /bin/ksh <<-EOF 
     195    ${@} 
    171196EOF 
    172     if [ $? -gt 0 ] ; then 
    173         echo "IGCM_sys_RshArchive : erreur." 
    174         IGCM_debug_Exit "IGCM_sys_RshArchive" 
    175     fi 
    176     IGCM_debug_PopStack "IGCM_sys_RshArchive" 
     197  if [ $? -gt 0 ] ; then 
     198    echo "IGCM_sys_RshArchive : erreur." 
     199    IGCM_debug_Exit "IGCM_sys_RshArchive" 
     200  fi 
     201  IGCM_debug_PopStack "IGCM_sys_RshArchive" 
    177202} 
    178203 
     
    183208#D- 
    184209function IGCM_sys_RshPost { 
    185     IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 
    186     if ( $DEBUG_sys ) ; then 
    187         echo "IGCM_sys_RshPost :" $@ 
    188     fi 
     210  IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 
     211  if ( $DEBUG_sys ) ; then 
     212    echo "IGCM_sys_RshPost :" $@ 
     213  fi 
     214 
     215  #echo cat tmp_IGCM_sys_RshPost_$$ INITIAL 
     216  #cat tmp_IGCM_sys_RshPost_$$ 
     217  # keep standard input (stdin) for the loop onto temporary file 
     218  cat >tmp_IGCM_sys_RshPost_$$ 
     219 
     220# ============ FRONTEND START ============ # 
     221 
     222  /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
     223  if [ $? -gt 0 ] ; then 
     224    echo "IGCM_sys_RshPost : erreur." 
     225    IGCM_debug_Exit "IGCM_sys_RshPost" 
     226  fi 
     227  \rm tmp_IGCM_sys_RshPost_$$ 
     228 
     229# ============ FRONTEND  END  ============ # 
    189230 
    190231# ============ CESIUM START ============ # 
    191 #    typeset NB_ESSAI DELAI status 
    192 #    #nombre d'essai avant abandon 
    193 #    NB_ESSAI=5 
    194 #    #temps entre chaque essai 
    195 #    DELAI=10 
    196 #    i=0 
    197 #    while [ $i -ne $NB_ESSAI ] ; do 
    198 #        ssh -t mercure ssh cesium /bin/ksh ${@} 2>/dev/null 
    199 #        status=$? 
    200 #        if [ ${status} -ne 0 ]; 
    201 #        then 
    202 #            sleep $DELAI 
    203 #        else 
    204 #            break 
    205 #        fi 
    206 #        let i=$i+1 
    207 #    done  
     232#  typeset NB_ESSAI DELAI status i 
     233#  # number of tentative 
     234#  NB_ESSAI=10 
     235#  # time delay between tentative 
     236#  DELAI=10 
     237#  (( i = 0 )) 
     238#  while [ $i -lt $NB_ESSAI ] ; do 
     239#    ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$ 
     240#    status=$? 
     241#    if [ ${status} -gt 0 ]; then 
     242#      IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}" 
     243#      IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again." 
     244#      sleep $DELAI 
     245#    else 
     246#      break 
     247#    fi 
     248#    (( i = i + 1 )) 
     249#  done  
     250#  # delete temporary file 
     251#  /bin/rm tmp_IGCM_sys_RshPost_$$ 
    208252# ============ CESIUM  END  ============ # 
    209253 
    210     /bin/ksh ${@} 
    211     if [ $? -gt 0 ] ; then 
    212         echo "IGCM_sys_RshPost : erreur." 
    213         IGCM_debug_Exit "IGCM_sys_RshPost" 
    214     fi 
    215     IGCM_debug_PopStack "IGCM_sys_RshPost" 
     254  IGCM_debug_PopStack "IGCM_sys_RshPost" 
    216255} 
    217256 
     
    222261#D- 
    223262function IGCM_sys_SendMail { 
    224     IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 
    225     if ( $DEBUG_sys ) ; then 
    226         echo "IGCM_sys_SendMail :" $@ 
    227     fi 
    228  
    229     if ( ${ExitFlag} ) ; then 
    230         status=failed 
    231         # Nothing fo now 
    232     else 
    233         status=completed 
    234     fi 
    235  
    236     ssh ${MASTER} /bin/ksh <<-EOF 
    237     export LOGIN=${LOGIN} 
    238     export config_UserChoices_JobName=${config_UserChoices_JobName} 
    239     export config_UserChoices_MailName=${config_UserChoices_MailName} 
    240     export DateBegin=${DateBegin} 
    241     export DateEnd=${DateEnd} 
    242     export R_SAVE=${R_SAVE} 
    243     export SUBMIT_DIR=${SUBMIT_DIR} 
    244     export status=${status} 
    245  
    246     cat  << END_MAIL > job_end.mail 
    247 Dear ${LOGIN}, 
     263  IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 
     264  if ( $DEBUG_sys ) ; then 
     265    echo "IGCM_sys_SendMail :" $@ 
     266  fi 
     267 
     268  if ( ${ExitFlag} ) ; then 
     269    status=failed 
     270  else 
     271    status=completed 
     272  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 
     284  cat  << END_MAIL > job_end.mail 
     285  Dear ${LOGIN}, 
    248286 
    249287  Simulation ${config_UserChoices_JobName} is ${status} on supercomputer `hostname`. 
     
    254292END_MAIL 
    255293 
    256     if [ ! -z ${config_UserChoices_MailName} ] ; then 
    257        mailx -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} <  job_end.mail 
    258     elif [ -f ~/.forward ] ; then 
    259        mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 
    260     fi 
    261  
    262     sleep 10 
    263     rm -f job_end.mail 
     294  if  [ X"${config_UserChoices_MailName}" != X ] ; then 
     295    mailx -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} <  job_end.mail 
     296  elif [ -f ~/.forward ] ; then 
     297    mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 
     298  fi 
     299 
     300  sleep 10 
     301  rm -f job_end.mail 
    264302EOF 
    265303 
    266     if [ $? -gt 0 ] ; then 
    267         echo "IGCM_sys_SendMail : erreur." 
    268         IGCM_debug_Exit "IGCM_sys_SendMail" 
    269     fi 
    270     IGCM_debug_PopStack "IGCM_sys_SendMail" 
     304  if [ $? -gt 0 ] ; then 
     305    echo "IGCM_sys_SendMail : erreur." 
     306    IGCM_debug_Exit "IGCM_sys_SendMail" 
     307  fi 
     308  IGCM_debug_PopStack "IGCM_sys_SendMail" 
    271309} 
    272310 
     
    277315#D- 
    278316function IGCM_sys_Mkdir { 
    279     IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 
    280     if ( $DEBUG_sys ) ; then 
    281         echo "IGCM_sys_Mkdir :" $@ 
    282     fi 
    283     if [ ! -d ${1} ]; then 
    284         \mkdir -p $1 
    285         if [ $? -gt 0 ] ; then 
    286             echo "IGCM_sys_Mkdir : erreur." 
    287             IGCM_debug_Exit "IGCM_sys_Mkdir" 
    288         fi 
    289     fi 
    290     # vérification : 
    291     if [ ! -d ${1} ] ; then 
    292         echo "IGCM_sys_Mkdir : erreur." 
    293         IGCM_debug_Exit "IGCM_sys_Mkdir" 
    294     fi 
    295     IGCM_debug_PopStack "IGCM_sys_Mkdir" 
     317  IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 
     318  if ( $DEBUG_sys ) ; then 
     319    echo "IGCM_sys_Mkdir :" $@ 
     320  fi 
     321  if [ ! -d ${1} ]; then 
     322    \mkdir -p $1 
     323    if [ $? -gt 0 ] ; then 
     324      echo "IGCM_sys_Mkdir : erreur." 
     325      IGCM_debug_Exit "IGCM_sys_Mkdir" 
     326    fi 
     327  fi 
     328  # vérification : 
     329  if [ ! -d ${1} ] ; then 
     330    echo "IGCM_sys_Mkdir : erreur." 
     331    IGCM_debug_Exit "IGCM_sys_Mkdir" 
     332  fi 
     333  IGCM_debug_PopStack "IGCM_sys_Mkdir" 
    296334} 
    297335 
     
    302340#D- 
    303341function IGCM_sys_MkdirArchive { 
    304     IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 
    305     if ( $DEBUG_sys ) ; then 
    306         echo "IGCM_sys_MkdirArchive :" $@ 
    307     fi 
    308     #- creation de repertoire sur le serveur fichier 
    309     if [ ! -d ${1} ]; then  
    310         \mkdir -p $1 
    311         if [ $? -gt 0 ] ; then 
    312             echo "IGCM_sys_MkdirArchive : erreur." 
    313             IGCM_debug_Exit "IGCM_sys_MkdirArchive" 
    314         fi 
    315     fi 
    316     IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 
     342  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 
     343  if ( $DEBUG_sys ) ; then 
     344    echo "IGCM_sys_MkdirArchive :" $@ 
     345  fi 
     346  #- creation de repertoire sur le serveur fichier 
     347  if [ ! -d ${1} ]; then  
     348    \mkdir -p $1 
     349    if [ $? -gt 0 ] ; then 
     350      echo "IGCM_sys_MkdirArchive : erreur." 
     351      IGCM_debug_Exit "IGCM_sys_MkdirArchive" 
     352    fi 
     353  fi 
     354  IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 
    317355} 
    318356 
     
    323361#D- 
    324362function IGCM_sys_MkdirWork { 
    325     IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 
    326     if ( $DEBUG_sys ) ; then 
    327         echo "IGCM_sys_MkdirWork :" $@ 
    328     fi 
    329     #- creation de repertoire sur le serveur fichier 
    330     if [ ! -d ${1} ]; then  
    331         \mkdir -p $1 
    332         if [ $? -gt 0 ] ; then 
    333             echo "IGCM_sys_MkdirWork : erreur." 
    334             IGCM_debug_Exit "IGCM_sys_MkdirWork" 
    335         fi 
    336     fi 
    337     IGCM_debug_PopStack "IGCM_sys_MkdirWork" 
     363  IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 
     364  if ( $DEBUG_sys ) ; then 
     365    echo "IGCM_sys_MkdirWork :" $@ 
     366  fi 
     367  #- creation de repertoire sur le serveur fichier 
     368  if [ ! -d ${1} ]; then  
     369    \mkdir -p $1 
     370    if [ $? -gt 0 ] ; then 
     371      echo "IGCM_sys_MkdirWork : erreur." 
     372      IGCM_debug_Exit "IGCM_sys_MkdirWork" 
     373    fi 
     374  fi 
     375  IGCM_debug_PopStack "IGCM_sys_MkdirWork" 
    338376} 
    339377 
     
    344382#D- 
    345383function IGCM_sys_Cd { 
    346     IGCM_debug_PushStack "IGCM_sys_Cd" $@ 
    347     if ( $DEBUG_sys ) ; then 
    348         echo "IGCM_sys_Cd :" $@ 
    349     fi 
    350     \cd $1 
    351     if [ $? -gt 0 ] ; then 
    352         echo "IGCM_sys_Cd : erreur." 
    353         IGCM_debug_Exit "IGCM_sys_Cd" 
    354     fi 
    355     IGCM_debug_PopStack "IGCM_sys_Cd" 
     384  IGCM_debug_PushStack "IGCM_sys_Cd" $@ 
     385  if ( $DEBUG_sys ) ; then 
     386    echo "IGCM_sys_Cd :" $@ 
     387  fi 
     388  \cd $1 
     389  if [ $? -gt 0 ] ; then 
     390    echo "IGCM_sys_Cd : erreur." 
     391    IGCM_debug_Exit "IGCM_sys_Cd" 
     392  fi 
     393  IGCM_debug_PopStack "IGCM_sys_Cd" 
    356394} 
    357395 
     
    362400#D- 
    363401function IGCM_sys_Chmod { 
    364     IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 
    365     if ( $DEBUG_sys ) ; then 
    366         echo "IGCM_sys_Chmod :" $@ 
    367     fi 
    368     if [ $DRYRUN -le 1 ]; then 
    369         \chmod $@ 
    370         if [ $? -gt 0 ] ; then 
    371             echo "IGCM_sys_Chmod : erreur." 
    372             IGCM_debug_Exit "IGCM_sys_Chmod" 
    373         fi 
    374     else 
    375         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    376     fi 
    377     IGCM_debug_PopStack "IGCM_sys_Chmod" 
     402  IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 
     403  if ( $DEBUG_sys ) ; then 
     404    echo "IGCM_sys_Chmod :" $@ 
     405  fi 
     406  if [ $DRYRUN -le 1 ]; then 
     407    \chmod $@ 
     408    if [ $? -gt 0 ] ; then 
     409      echo "IGCM_sys_Chmod : erreur." 
     410      IGCM_debug_Exit "IGCM_sys_Chmod" 
     411    fi 
     412  else 
     413    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     414  fi 
     415  IGCM_debug_PopStack "IGCM_sys_Chmod" 
    378416} 
    379417 
     
    384422#D- 
    385423function IGCM_sys_FileSize { 
    386     IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 
    387  
    388     typeset sizeF 
    389     set +A sizeF -- $( ls -la ${1} ) 
    390     if [ $? -gt 0 ] ; then 
    391         IGCM_debug_Exit "IGCM_sys_FileSize" 
    392     fi 
    393     eval ${2}=${sizeF[4]} 
    394  
    395     IGCM_debug_PopStack "IGCM_sys_FileSize" 
     424  IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 
     425 
     426  typeset sizeF 
     427  set +A sizeF -- $( ls -la ${1} ) 
     428  if [ $? -gt 0 ] ; then 
     429    IGCM_debug_Exit "IGCM_sys_FileSize" 
     430  fi 
     431  eval ${2}=${sizeF[4]} 
     432 
     433  IGCM_debug_PopStack "IGCM_sys_FileSize" 
    396434} 
    397435 
     
    402440#D- 
    403441function IGCM_sys_TestDir { 
    404     IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 
    405     if ( $DEBUG_sys ) ; then 
    406         echo "IGCM_sys_TestDir :" $@ 
    407     fi 
    408     typeset ExistFlag 
    409     ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
    410     IGCM_debug_PopStack "IGCM_sys_TestDir" 
    411  
    412     return ${ExistFlag} 
     442  IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 
     443  if ( $DEBUG_sys ) ; then 
     444    echo "IGCM_sys_TestDir :" $@ 
     445  fi 
     446  typeset ExistFlag 
     447  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
     448  IGCM_debug_PopStack "IGCM_sys_TestDir" 
     449 
     450  return ${ExistFlag} 
    413451} 
    414452 
     
    419457#D- 
    420458function IGCM_sys_TestDirArchive { 
    421     IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 
    422     if ( $DEBUG_sys ) ; then 
    423         echo "IGCM_sys_TestDirArchive :" $@ 
    424     fi 
    425     typeset ExistFlag 
    426     ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
    427     IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 
    428  
    429     return ${ExistFlag} 
     459  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 
     460  if ( $DEBUG_sys ) ; then 
     461    echo "IGCM_sys_TestDirArchive :" $@ 
     462  fi 
     463  typeset ExistFlag 
     464  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 
     465  IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 
     466 
     467  return ${ExistFlag} 
     468} 
     469 
     470#D-#================================================== 
     471#D-function IGCM_sys_IsFileArchived 
     472#D-* Purpose: Test file that must NOT EXISTS on Archive 
     473#D-* Examples: 
     474#D- 
     475function IGCM_sys_IsFileArchived { 
     476  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@ 
     477  if ( $DEBUG_sys ) ; then 
     478    echo "IGCM_sys_IsFileArchived :" $@ 
     479  fi 
     480  typeset IsArchivedFlag 
     481  IsArchivedFlag=$( [ X$( echo $1 | grep ^\/dmnfs ) != X ] && echo 0 || echo 1 ) 
     482  IGCM_debug_PopStack "IGCM_sys_IsFileArchived" 
     483 
     484  return ${IsArchivedFlag} 
    430485} 
    431486 
     
    436491#D- 
    437492function IGCM_sys_TestFileArchive { 
    438     IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 
    439     typeset ExistFlag 
    440     ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 
    441     IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 
    442  
    443     return ${ExistFlag} 
     493  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 
     494  if ( $DEBUG_sys ) ; then 
     495    echo "IGCM_sys_TestFileArchive :" $@ 
     496  fi 
     497  typeset ExistFlag 
     498  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 
     499  IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 
     500 
     501  return ${ExistFlag} 
     502} 
     503 
     504#D-#================================================== 
     505#D-function IGCM_sys_TestFileBuffer 
     506#D-* Purpose: Test file that must NOT EXISTS on Buffer 
     507#D-* Examples: 
     508#D- 
     509function IGCM_sys_TestFileBuffer { 
     510  IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@ 
     511  typeset ExistFlag 
     512  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 
     513  IGCM_debug_PopStack "IGCM_sys_TestFileBuffer" 
     514 
     515  return ${ExistFlag} 
    444516} 
    445517 
     
    450522#D- 
    451523function IGCM_sys_CountFileArchive { 
    452     IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 
    453     ls ${@} 2>/dev/null | wc -l 
    454     if [ $? -gt 0 ] ; then 
    455         echo "IGCM_sys_CountFileArchive : erreur." 
    456     fi 
    457     IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 
     524  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 
     525  ls ${@} 2>/dev/null | wc -l 
     526  if [ $? -gt 0 ] ; then 
     527    echo "IGCM_sys_CountFileArchive : erreur." 
     528  fi 
     529  IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 
     530} 
     531 
     532#D-#================================================== 
     533#D-function IGCM_sys_CountFileBuffer 
     534#D-* Purpose: Count files on Scratch filesystem 
     535#D-* Examples: 
     536#D- 
     537function IGCM_sys_CountFileBuffer { 
     538  IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@ 
     539  ls ${@} 2>/dev/null | wc -l 
     540  if [ $? -gt 0 ] ; then 
     541    echo "IGCM_sys_CountFileBuffer : erreur." 
     542  fi 
     543  IGCM_debug_PopStack "IGCM_sys_CountFileBuffer" 
    458544} 
    459545 
     
    464550#D- 
    465551function IGCM_sys_Tree { 
    466     IGCM_debug_PushStack "IGCM_sys_Tree" $@ 
    467     if ( $DEBUG_sys ) ; then 
    468         echo "IGCM_sys_Tree :" $@ 
    469     fi 
    470  
    471     \ls -lR ${@} 
    472  
    473     IGCM_debug_PopStack "IGCM_sys_Tree" 
     552  IGCM_debug_PushStack "IGCM_sys_Tree" $@ 
     553  if ( $DEBUG_sys ) ; then 
     554    echo "IGCM_sys_Tree :" $@ 
     555  fi 
     556 
     557  \ls -lR ${@} 
     558 
     559  IGCM_debug_PopStack "IGCM_sys_Tree" 
    474560} 
    475561 
    476562#D-#================================================== 
    477563#D-function IGCM_sys_Tar 
    478 #D-* Purpose: master un-tar command 
     564#D-* Purpose: master tar command 
    479565#D-* Examples: 
    480566#D- 
    481567function IGCM_sys_Tar { 
    482     IGCM_debug_PushStack "IGCM_sys_Tar" $@ 
    483     if ( $DEBUG_sys ) ; then 
    484         echo "IGCM_sys_Tar :" $@ 
    485     fi 
    486     \tar xvf $1 
    487     if [ $? -gt 0 ] ; then 
    488         echo "IGCM_sys_Tar : erreur." 
    489         IGCM_debug_Exit "IGCM_sys_Tar" 
    490     fi 
    491     IGCM_debug_PopStack "IGCM_sys_Tar" 
     568  IGCM_debug_PushStack "IGCM_sys_Tar" $@ 
     569  if ( $DEBUG_sys ) ; then 
     570    echo "IGCM_sys_Tar :" $@ 
     571  fi 
     572  \tar cf $@ 
     573  if [ $? -gt 0 ] ; then 
     574    echo "IGCM_sys_Tar : erreur." 
     575    IGCM_debug_Exit "IGCM_sys_Tar" 
     576  fi 
     577  IGCM_debug_PopStack "IGCM_sys_Tar" 
    492578} 
    493579 
     
    498584#D- 
    499585function IGCM_sys_UnTar { 
    500     IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 
    501     if ( $DEBUG_sys ) ; then 
    502         echo "IGCM_sys_UnTar :" $@ 
    503     fi 
    504     \tar xvf $1 
    505     if [ $? -gt 0 ] ; then 
    506         echo "IGCM_sys_UnTar : erreur." 
    507         IGCM_debug_Exit "IGCM_sys_UnTar" 
    508     fi 
    509     IGCM_debug_PopStack "IGCM_sys_UnTar" 
     586  IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 
     587  if ( $DEBUG_sys ) ; then 
     588    echo "IGCM_sys_UnTar :" $@ 
     589  fi 
     590  \tar xvf $1 
     591  if [ $? -gt 0 ] ; then 
     592    echo "IGCM_sys_UnTar : erreur." 
     593    IGCM_debug_Exit "IGCM_sys_UnTar" 
     594  fi 
     595  IGCM_debug_PopStack "IGCM_sys_UnTar" 
    510596} 
    511597 
     
    516602#D- 
    517603function IGCM_sys_Qsub { 
    518     IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 
    519     if ( $DEBUG_sys ) ; then 
    520         echo "IGCM_sys_Qsub :" $@ 
    521     fi 
    522     /usr/bin/nqsII/qsub -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} < $1 
    523     if [ $? -gt 0 ] ; then 
    524         echo "IGCM_sys_Qsub : erreur -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} $@." 
    525         IGCM_debug_Exit "IGCM_sys_Qsub" 
    526     fi 
    527     IGCM_debug_PopStack "IGCM_sys_Qsub" 
     604  IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 
     605  if ( $DEBUG_sys ) ; then 
     606    echo "IGCM_sys_Qsub :" $@ 
     607  fi 
     608  /usr/bin/nqsII/qsub -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} < $1 
     609  if [ $? -gt 0 ] ; then 
     610    echo "IGCM_sys_Qsub : erreur -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} $@." 
     611    IGCM_debug_Exit "IGCM_sys_Qsub" 
     612  fi 
     613  IGCM_debug_PopStack "IGCM_sys_Qsub" 
    528614} 
    529615 
     
    534620#D- 
    535621function IGCM_sys_QsubPost { 
    536     IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 
    537     if ( $DEBUG_sys ) ; then 
    538         echo "IGCM_sys_QsubPost :" $@ 
    539     fi 
    540     # ============ CESIUM START ============ # 
    541     #/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 
    542     # ============ CESIUM  END  ============ # 
    543     /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
    544     if [ $? -gt 0 ] ; then 
    545         echo "IGCM_sys_QsubPost : erreur " $@ 
    546         IGCM_debug_Exit "IGCM_sys_QsubPost" 
    547     fi 
    548     IGCM_debug_PopStack "IGCM_sys_QsubPost" 
     622  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 
     623  if ( $DEBUG_sys ) ; then 
     624    echo "IGCM_sys_QsubPost :" $@ 
     625  fi 
     626 
     627# ============ FRONTEND START ============ # 
     628 
     629  /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 
     630 
     631# ============ FRONTEND  END  ============ # 
     632 
     633# ============ CESIUM START ============ # 
     634 
     635#  typeset NB_ESSAI DELAI status i 
     636#  # number of tentative 
     637#  NB_ESSAI=10 
     638#  # time delay between tentative 
     639#  DELAI=10 
     640#  (( i = 0 )) 
     641#  while [ $i -lt $NB_ESSAI ] ; do 
     642#    /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 
     643#    status=$? 
     644#    if [ ${status} -gt 0 ]; then 
     645#      sleep $DELAI 
     646#    else 
     647#      break 
     648#    fi 
     649#    (( i = i + 1 )) 
     650#  done  
     651 
     652# ============ CESIUM  END  ============ # 
     653 
     654  if [ $? -gt 0 ] ; then 
     655    echo "IGCM_sys_QsubPost : erreur " $@ 
     656    IGCM_debug_Exit "IGCM_sys_QsubPost" 
     657  fi 
     658  IGCM_debug_PopStack "IGCM_sys_QsubPost" 
    549659} 
    550660 
     
    560670#D-  Error values and explanations can depend on your system version. 
    561671function IGCM_sys_Rsync_out { 
    562     RET=$1 
    563     if [ ! $RET ] ; then 
    564         echo "rsync error !" 
    565     fi 
    566  
    567     if [ $MYLANG = "fr" ]; then 
    568         case $RET in 
    569             0)  return ;; 
    570             1)  echo "Erreur de rsync ; RERR_SYNTAX : " 
    571                 echo "Erreur de syntaxe ou d'utilisation." 
    572                 return;; 
    573             2)  echo "Erreur de rsync ; RERR_PROTOCOL : " 
    574                 echo "Incompatibilité de protocole." 
    575                 return;; 
    576             3)  echo "Erreur de rsync ; RERR_FILESELECT 3" 
    577                 echo "Erreurs  lors  de  la  sélection des fichiers d'entrée sortie et" 
    578                 echo "répertoires" 
    579                 return;; 
    580             4)  echo "Erreur de rsync ; RERR_UNSUPPORTED" 
    581                 echo "Action demandée non supportée : une tentative de manipulation de" 
    582                 echo "fichiers  64-bits  sur une plate-forme qui ne les supporte pas a" 
    583                 echo "été faite ; ou une option qui est supportée par le  client  mais" 
    584                 echo "pas par le serveur a été spécifiée." 
    585                 return;; 
    586             10) echo "Erreur de rsync ; RERR_SOCKETIO" 
    587                 echo "Erreur dans le socket d'entrée sortie" 
    588                 return;; 
    589             11) echo "Erreur de rsync ; RERR_FILEIO" 
    590                 echo "Erreur d'entrée sortie fichier" 
    591                 return;; 
    592             12) echo "Erreur de rsync ; RERR_STREAMIO" 
    593                 echo "Erreur dans flux de donnée du protocole rsync" 
    594                 return;; 
    595             13) echo "Erreur de rsync ; RERR_MESSAGEIO" 
    596                 echo "Erreur avec les diagnostics du programme" 
    597                 return;; 
    598             14) echo "Erreur de rsync ; RERR_IPC" 
    599                 echo "Erreur dans le code IPC" 
    600                 return;; 
    601             20) echo "Erreur de rsync ; RERR_SIGNAL" 
    602                 echo "SIGUSR1 ou SIGINT reçu" 
    603                 return;; 
    604             21) echo "Erreur de rsync ; RERR_WAITCHILD" 
    605                 echo "Une erreur retournée par waitpid()" 
    606                 return;; 
    607             22) echo "Erreur de rsync ; RERR_MALLOC" 
    608                 echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 
    609                 return;; 
    610             23) echo "" 
    611                 echo "Erreur fichier inexistant" 
    612                 return;; 
    613             30) echo "Erreur de rsync ; RERR_TIMEOUT" 
    614                 echo "Temps d'attente écoulé dans l'envoi/réception de données" 
    615                 return;; 
    616             *)  echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 
    617                 return;; 
    618         esac 
    619     elif [ $MYLANG = "en" ] ; then 
    620         case $RET in 
    621             0)  return;;                 
    622             1)  echo "rsync error : Syntax or usage error " 
    623                 return;; 
    624             2)  echo "rsync error : Protocol incompatibility " 
    625                 return;; 
    626             3)  echo "rsync error : Errors selecting input/output files, dirs" 
    627                 return;; 
    628             4)  echo "rsync error : Requested action not supported: an attempt" 
    629                 echo "was made to manipulate 64-bit files on a platform that cannot support" 
    630                 echo "them; or an option was specified that is supported by the client and" 
    631                 echo "not by the server." 
    632                 return;; 
    633             5)  echo "rsync error : Error starting client-server protocol" 
    634                 return;; 
    635             10) echo "rsync error : Error in socket I/O " 
    636                 return;; 
    637             11) echo "rsync error : Error in file I/O " 
    638                 return;; 
    639             12) echo "rsync error : Error in rsync protocol data stream " 
    640                 return;; 
    641             13) echo "rsync error : Errors with program diagnostics " 
    642                 return;; 
    643             14) echo "rsync error : Error in IPC code " 
    644                 return;; 
    645             20) echo "rsync error : Received SIGUSR1 or SIGINT " 
    646                 return;; 
    647             21) echo "rsync error : Some error returned by waitpid() " 
    648                 return;; 
    649             22) echo "rsync error : Error allocating core memory buffers " 
    650                 return;; 
    651             23) echo "rsync error : Partial transfer due to error" 
    652                 return;; 
    653             24) echo "rsync error : Partial transfer due to vanished source files" 
    654                 return;; 
    655             30) echo "rsync error : Timeout in data send/receive " 
    656                 return;; 
    657             *)  echo "rsync error : return code of rsync unknown :" $RET 
    658                 return;; 
    659         esac 
    660     else 
    661         echo "unknown language $MYLANG." 
    662         return 
    663     fi 
    664 } 
    665      
     672  RET=$1 
     673  if [ ! $RET ] ; then 
     674    echo "rsync error !" 
     675  fi 
     676 
     677  if [ $MYLANG = "fr" ]; then 
     678    case $RET in 
     679    0)  return ;; 
     680    1)  echo "Erreur de rsync ; RERR_SYNTAX : " 
     681      echo "Erreur de syntaxe ou d'utilisation." 
     682      return;; 
     683    2)  echo "Erreur de rsync ; RERR_PROTOCOL : " 
     684      echo "Incompatibilité de protocole." 
     685      return;; 
     686    3)  echo "Erreur de rsync ; RERR_FILESELECT 3" 
     687      echo "Erreurs  lors  de  la  sélection des fichiers d'entrée sortie et" 
     688      echo "répertoires" 
     689      return;; 
     690    4)  echo "Erreur de rsync ; RERR_UNSUPPORTED" 
     691      echo "Action demandée non supportée : une tentative de manipulation de" 
     692      echo "fichiers  64-bits  sur une plate-forme qui ne les supporte pas a" 
     693      echo "été faite ; ou une option qui est supportée par le  client  mais" 
     694      echo "pas par le serveur a été spécifiée." 
     695      return;; 
     696    10) echo "Erreur de rsync ; RERR_SOCKETIO" 
     697      echo "Erreur dans le socket d'entrée sortie" 
     698      return;; 
     699    11) echo "Erreur de rsync ; RERR_FILEIO" 
     700      echo "Erreur d'entrée sortie fichier" 
     701      return;; 
     702    12) echo "Erreur de rsync ; RERR_STREAMIO" 
     703      echo "Erreur dans flux de donnée du protocole rsync" 
     704      return;; 
     705    13) echo "Erreur de rsync ; RERR_MESSAGEIO" 
     706      echo "Erreur avec les diagnostics du programme" 
     707      return;; 
     708    14) echo "Erreur de rsync ; RERR_IPC" 
     709      echo "Erreur dans le code IPC" 
     710      return;; 
     711    20) echo "Erreur de rsync ; RERR_SIGNAL" 
     712      echo "SIGUSR1 ou SIGINT reçu" 
     713      return;; 
     714    21) echo "Erreur de rsync ; RERR_WAITCHILD" 
     715      echo "Une erreur retournée par waitpid()" 
     716      return;; 
     717    22) echo "Erreur de rsync ; RERR_MALLOC" 
     718      echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 
     719      return;; 
     720    23) echo "" 
     721      echo "Erreur fichier inexistant" 
     722      return;; 
     723    30) echo "Erreur de rsync ; RERR_TIMEOUT" 
     724      echo "Temps d'attente écoulé dans l'envoi/réception de données" 
     725      return;; 
     726    *)  echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 
     727      return;; 
     728    esac 
     729  elif [ $MYLANG = "en" ] ; then 
     730    case $RET in 
     731    0)  return;;                 
     732    1)  echo "rsync error : Syntax or usage error " 
     733      return;; 
     734    2)  echo "rsync error : Protocol incompatibility " 
     735      return;; 
     736    3)  echo "rsync error : Errors selecting input/output files, dirs" 
     737      return;; 
     738    4)  echo "rsync error : Requested action not supported: an attempt" 
     739      echo "was made to manipulate 64-bit files on a platform that cannot support" 
     740      echo "them; or an option was specified that is supported by the client and" 
     741      echo "not by the server." 
     742      return;; 
     743    5)  echo "rsync error : Error starting client-server protocol" 
     744      return;; 
     745    10) echo "rsync error : Error in socket I/O " 
     746      return;; 
     747    11) echo "rsync error : Error in file I/O " 
     748      return;; 
     749    12) echo "rsync error : Error in rsync protocol data stream " 
     750      return;; 
     751    13) echo "rsync error : Errors with program diagnostics " 
     752      return;; 
     753    14) echo "rsync error : Error in IPC code " 
     754      return;; 
     755    20) echo "rsync error : Received SIGUSR1 or SIGINT " 
     756      return;; 
     757    21) echo "rsync error : Some error returned by waitpid() " 
     758      return;; 
     759    22) echo "rsync error : Error allocating core memory buffers " 
     760      return;; 
     761    23) echo "rsync error : Partial transfer due to error" 
     762      return;; 
     763    24) echo "rsync error : Partial transfer due to vanished source files" 
     764      return;; 
     765    30) echo "rsync error : Timeout in data send/receive " 
     766      return;; 
     767    *)  echo "rsync error : return code of rsync unknown :" $RET 
     768      return;; 
     769    esac 
     770  else 
     771    echo "unknown language $MYLANG." 
     772    return 
     773  fi 
     774} 
    666775 
    667776#D-#================================================== 
     
    671780#D- 
    672781function IGCM_sys_Mirror_libIGCM { 
    673     IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" 
    674     if ( $DEBUG_sys ) ; then 
    675         echo "IGCM_sys_Mirror_libIGCM" 
    676     fi 
    677  
    678     typeset RET DEST 
    679  
    680     mkdir -p ${HOME}/MIRROR/${PATHlibIGCM} 
    681  
    682     echo ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} > out_rsync 2>&1 
    683     ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} >> out_rsync 2>&1 
    684     RET=$? 
    685  
    686     if [ ${RET} -gt 0 ] ; then 
    687         echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on cesium." 
    688         cat out_rsync 
    689     fi 
    690     IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" 
     782  IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" 
     783  if ( $DEBUG_sys ) ; then 
     784    echo "IGCM_sys_Mirror_libIGCM" 
     785  fi 
     786 
     787  typeset RET DEST 
     788 
     789  mkdir -p ${HOME}/MIRROR/${PATHlibIGCM} 
     790 
     791  echo ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} > out_rsync 2>&1 
     792  ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} >> out_rsync 2>&1 
     793  RET=$? 
     794 
     795  if [ ${RET} -gt 0 ] ; then 
     796    echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on cesium." 
     797    cat out_rsync 
     798  fi 
     799  IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" 
    691800} 
    692801 
     
    694803#- Call IGCM_sys_Mirror_libIGCM now ! 
    695804if ( $MirrorlibIGCM ) ; then 
    696     IGCM_sys_Mirror_libIGCM 
     805  IGCM_sys_Mirror_libIGCM 
    697806fi 
    698807 
     
    703812#D- 
    704813function IGCM_sys_Cp { 
    705     IGCM_debug_PushStack "IGCM_sys_Cp" $@ 
    706     if ( $DEBUG_sys ) ; then 
    707         echo "IGCM_sys_Cp :" $@ 
    708     fi 
    709  
    710     typeset RET 
    711  
    712     echo cp $@ > out_rsync 2>&1 
    713     \cp $@ >> out_rsync 2>&1 
    714     RET=$? 
    715  
    716     if [ ${RET} -gt 0 ] ; then 
    717         echo "IGCM_sys_Cp : error." 
    718         cat out_rsync 
    719         IGCM_debug_Exit "IGCM_sys_Cp" 
    720      else 
    721         \rm out_rsync 
    722     fi 
    723     IGCM_debug_PopStack "IGCM_sys_Cp" 
     814  IGCM_debug_PushStack "IGCM_sys_Cp" $@ 
     815  if ( $DEBUG_sys ) ; then 
     816    echo "IGCM_sys_Cp :" $@ 
     817  fi 
     818 
     819  typeset RET 
     820 
     821  echo cp $@ > out_rsync 2>&1 
     822  \cp $@ >> out_rsync 2>&1 
     823  RET=$? 
     824 
     825  if [ ${RET} -gt 0 ] ; then 
     826    echo "IGCM_sys_Cp : error." 
     827    cat out_rsync 
     828    IGCM_debug_Exit "IGCM_sys_Cp" 
     829  else 
     830    \rm out_rsync 
     831  fi 
     832  IGCM_debug_PopStack "IGCM_sys_Cp" 
    724833} 
    725834 
     
    730839#D- 
    731840function IGCM_sys_Rm { 
    732     IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 
    733     if ( $DEBUG_sys ) ; then 
    734         echo "IGCM_sys_Rm :" $@ 
    735     fi 
    736  
    737     typeset RET 
    738  
    739     echo rm $@ > out_rsync 2>&1 
    740     \rm $@ >> out_rsync 2>&1 
    741     RET=$? 
    742  
    743     if [ ${RET} -gt 0 ] ; then 
    744         echo "IGCM_sys_Rm : error." 
    745         cat out_rsync 
    746         IGCM_debug_Exit "IGCM_sys_Rm" 
    747     else 
    748         \rm out_rsync 
    749     fi 
    750     IGCM_debug_PopStack "IGCM_sys_Rm" 
     841  IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 
     842  if ( $DEBUG_sys ) ; then 
     843    echo "IGCM_sys_Rm :" $@ 
     844  fi 
     845 
     846  typeset RET 
     847 
     848  echo rm $@ > out_rsync 2>&1 
     849  \rm $@ >> out_rsync 2>&1 
     850  RET=$? 
     851 
     852  if [ ${RET} -gt 0 ] ; then 
     853    echo "IGCM_sys_Rm : error." 
     854    cat out_rsync 
     855    IGCM_debug_Exit "IGCM_sys_Rm" 
     856  else 
     857    \rm out_rsync 
     858  fi 
     859  IGCM_debug_PopStack "IGCM_sys_Rm" 
    751860} 
    752861 
     
    757866#D- 
    758867function IGCM_sys_Mv { 
    759     IGCM_debug_PushStack "IGCM_sys_Mv" $@ 
    760     if ( $DEBUG_sys ) ; then 
    761         echo "IGCM_sys_Mv :" $@ 
    762     fi 
    763  
    764     if [ $DRYRUN = 0 ]; then 
    765  
    766         typeset RET 
    767              
    768         echo mv $@ > out_rsync 2>&1 
    769         \mv $@ >> out_rsync 2>&1 
    770         RET=$? 
     868  IGCM_debug_PushStack "IGCM_sys_Mv" $@ 
     869  if ( $DEBUG_sys ) ; then 
     870    echo "IGCM_sys_Mv :" $@ 
     871  fi 
     872 
     873  if [ $DRYRUN = 0 ]; then 
     874 
     875    typeset RET 
    771876     
    772         if [ ${RET} -gt 0 ] ; then 
    773             echo "IGCM_sys_Mv : error in mv." 
    774             cat out_rsync 
    775             IGCM_debug_Exit "IGCM_sys_Mv" 
    776         else 
    777             \rm out_rsync 
    778         fi 
     877    echo mv $@ > out_rsync 2>&1 
     878    \mv $@ >> out_rsync 2>&1 
     879    RET=$? 
     880     
     881    if [ ${RET} -gt 0 ] ; then 
     882      echo "IGCM_sys_Mv : error in mv." 
     883      cat out_rsync 
     884      IGCM_debug_Exit "IGCM_sys_Mv" 
    779885    else 
    780         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    781     fi 
    782  
    783     IGCM_debug_PopStack "IGCM_sys_Mv" 
     886      \rm out_rsync 
     887    fi 
     888  else 
     889    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     890  fi 
     891 
     892  IGCM_debug_PopStack "IGCM_sys_Mv" 
    784893} 
    785894 
     
    790899#D- 
    791900function IGCM_sys_Put_Dir { 
    792     IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 
    793     if ( $DEBUG_sys ) ; then 
    794         echo "IGCM_sys_Put_Dir :" $@ 
    795     fi 
    796     if [ $DRYRUN = 0 ]; then 
    797         if [ ! -d ${1} ] ; then 
    798             echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 
    799             IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
    800             return 
    801         fi 
    802  
    803         typeset RET 
    804  
    805         # Only if we use rsync 
    806         #IGCM_sys_TestDirArchive $( dirname $2 ) 
    807         # 
    808         #USUAL WAY 
    809         \cp -r $1 $2 > out_rsync 2>&1 
    810         RET=$? 
    811  
    812         if [ ${RET} -gt 0 ] ; then 
    813             echo "IGCM_sys_Put_Dir : error." 
    814             cat out_rsync 
    815             IGCM_debug_Exit "IGCM_sys_Put_Dir" 
    816         else 
    817             \rm out_rsync 
    818         fi 
     901  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 
     902  if ( $DEBUG_sys ) ; then 
     903    echo "IGCM_sys_Put_Dir :" $@ 
     904  fi 
     905  if [ $DRYRUN = 0 ]; then 
     906    if [ ! -d ${1} ] ; then 
     907      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 
     908      IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
     909      return 
     910    fi 
     911 
     912    typeset RET 
     913 
     914    # Only if we use rsync 
     915    #IGCM_sys_TestDirArchive $( dirname $2 ) 
     916    # 
     917    #USUAL WAY 
     918    \cp -r $1 $2 > out_rsync 2>&1 
     919    RET=$? 
     920 
     921    if [ ${RET} -gt 0 ] ; then 
     922      echo "IGCM_sys_Put_Dir : error." 
     923      cat out_rsync 
     924      IGCM_debug_Exit "IGCM_sys_Put_Dir" 
    819925    else 
    820         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    821     fi 
    822     IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
     926      \rm out_rsync 
     927    fi 
     928  else 
     929    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     930  fi 
     931  IGCM_debug_PopStack "IGCM_sys_Put_Dir" 
    823932} 
    824933 
    825934#D-#================================================== 
    826935#D-function IGCM_sys_Get_Dir 
    827 #D-* Purpose: Copy a complete directory from $(ARCHIVE) 
     936#D-* Purpose: Copy a complete directory from ${ARCHIVE} 
    828937#D-* Examples: 
    829938#D- 
    830939function IGCM_sys_Get_Dir { 
    831     IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 
    832     if ( $DEBUG_sys ) ; then 
    833         echo "IGCM_sys_Get_Dir :" $@ 
    834     fi 
    835     if [ $DRYRUN = 0 ]; then 
    836         if [ ! -d ${1} ] ; then 
    837             echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 
    838             IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
    839             return 
    840         fi 
    841  
    842         typeset RET 
    843  
    844         # Only if we use rsync 
    845         #IGCM_sys_TestDirArchive $( dirname $2 ) 
    846         # 
    847         #USUAL WAY 
    848         \cp -r $1 $2 > out_rsync 2>&1 
    849         RET=$? 
    850  
    851         if [ ${RET} -gt 0 ] ; then 
    852             echo "IGCM_sys_Get_Dir : error." 
    853             cat out_rsync 
    854             IGCM_debug_Exit "IGCM_sys_Get_Dir" 
    855         else 
    856             \rm out_rsync 
    857         fi 
     940  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 
     941  if ( $DEBUG_sys ) ; then 
     942    echo "IGCM_sys_Get_Dir :" $@ 
     943  fi 
     944  if [ $DRYRUN = 0 ]; then 
     945#    if [ ! -d ${1} ] ; then 
     946#      echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 
     947#      IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
     948#      return 
     949#    fi 
     950 
     951    typeset RET 
     952 
     953    # Only if we use rsync 
     954    #IGCM_sys_TestDirArchive $( dirname $2 ) 
     955    # 
     956    # USUAL WAY 
     957    # add dmfind/dmget (to demigrate all offline files) : 
     958    dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 
     959    \cp -r $1 $2 > out_rsync 2>&1 
     960    RET=$? 
     961 
     962    if [ ${RET} -gt 0 ] ; then 
     963      echo "IGCM_sys_Get_Dir : error." 
     964      cat out_rsync 
     965      IGCM_debug_Exit "IGCM_sys_Get_Dir" 
    858966    else 
    859         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    860     fi 
    861     IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
     967      \rm out_rsync 
     968    fi 
     969  else 
     970    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     971  fi 
     972  IGCM_debug_PopStack "IGCM_sys_Get_Dir" 
    862973} 
    863974 
    864975#D-#================================================== 
    865976#D-function IGCM_sys_Put_Rest 
    866 #D-* Purpose: Put computied restarts on $(ARCHIVE). 
     977#D-* Purpose: Put computied restarts on ${ARCHIVE}. 
    867978#D-           File and target directory must exist. 
    868979#D-* Examples: 
    869980#D- 
    870981function IGCM_sys_Put_Rest { 
    871     IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 
    872     if ( $DEBUG_sys ) ; then 
    873         echo "IGCM_sys_Put_Rest :" $@ 
    874     fi 
    875     if [ $DRYRUN = 0 ]; then 
    876         if [ ! -f ${1} ] ; then 
    877             echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 
    878             IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    879         fi 
    880  
    881         typeset RET 
    882         # 
    883         if [ X${JobType} = XRUN ] ; then 
    884             IGCM_sys_Chmod 444 ${1} 
    885         fi 
    886         # 
    887         IGCM_sys_TestDirArchive $( dirname $2 ) 
    888         # 
    889         # USUAL WAY 
    890         putfer $1 $2 > out_rsync 2>&1 
    891         RET=$? 
     982  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 
     983  if ( $DEBUG_sys ) ; then 
     984    echo "IGCM_sys_Put_Rest :" $@ 
     985  fi 
     986  if [ $DRYRUN = 0 ]; then 
     987    if [ ! -f ${1} ] ; then 
     988      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 
     989      IGCM_debug_Exit "IGCM_sys_Put_Rest" 
     990    fi 
     991 
     992    typeset RET 
     993    # 
     994    if [ X${JobType} = XRUN ] ; then 
     995      IGCM_sys_Chmod 444 ${1} 
     996    fi 
     997 
     998    # 
     999    # USUAL WAY 
     1000    \cp $1 $2 > out_rsync 2>&1 
     1001    RET=$? 
    8921002 
    8931003#       #RSYNC WITH NETWORK SSH CALL 
    894 #       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${RHOST}:${2} > out_rsync 2>&1 
    895 #       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${RHOST}:${2} >> out_rsync 2>&1 
     1004#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
     1005#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
    8961006 
    8971007#       #RSYNC WITH NFS USE 
     
    9051015#       (( RET=RET+$? )) 
    9061016 
    907         if [ ${RET} -gt 0 ] ; then 
    908             echo "IGCM_sys_Put_Rest : error." 
    909             cat out_rsync 
    910             IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    911         else 
    912             \rm out_rsync 
    913         fi 
     1017    if [ ${RET} -gt 0 ] ; then 
     1018      echo "IGCM_sys_Put_Rest : error." 
     1019      cat out_rsync 
     1020      IGCM_debug_Exit "IGCM_sys_Put_Rest" 
    9141021    else 
    915         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    916     fi 
    917     IGCM_debug_PopStack "IGCM_sys_Put_Rest" 
     1022      \rm out_rsync 
     1023    fi 
     1024  else 
     1025    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1026  fi 
     1027  IGCM_debug_PopStack "IGCM_sys_Put_Rest" 
     1028} 
     1029 
     1030#D-#================================================== 
     1031#D-function IGCM_sys_PutBuffer_Rest 
     1032#D-* Purpose: Put computied restarts on ${SCRATCHDIR}. 
     1033#D-           File and target directory must exist. 
     1034#D-* Examples: 
     1035#D- 
     1036function IGCM_sys_PutBuffer_Rest { 
     1037  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Rest" $@ 
     1038  if ( $DEBUG_sys ) ; then 
     1039    echo "IGCM_sys_PutBuffer_Rest :" $@ 
     1040  fi 
     1041  if [ $DRYRUN = 0 ]; then 
     1042    if [ ! -f ${1} ] ; then 
     1043      echo "ERROR : IGCM_sys_PutBuffer_Rest ${1} DOES NOT EXIST ." 
     1044      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 
     1045    fi 
     1046 
     1047    typeset RET 
     1048    # 
     1049    if [ X${JobType} = XRUN ] ; then 
     1050      IGCM_sys_Chmod 444 ${1} 
     1051    fi 
     1052 
     1053    # 
     1054    # USUAL WAY 
     1055    \cp $1 $2 > out_rsync 2>&1 
     1056    RET=$? 
     1057 
     1058    if [ ${RET} -gt 0 ] ; then 
     1059      echo "IGCM_sys_PutBuffer_Rest : error." 
     1060      cat out_rsync 
     1061      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 
     1062    else 
     1063      \rm out_rsync 
     1064    fi 
     1065  else 
     1066    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1067  fi 
     1068  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Rest" 
    9181069} 
    9191070 
    9201071#D-#================================================== 
    9211072#D-function IGCM_sys_Put_Out 
    922 #D-* Purpose: Copy a file on $(ARCHIVE) after have chmod it in readonly 
     1073#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly 
    9231074#D-* Examples: 
    9241075#D- 
    9251076function IGCM_sys_Put_Out { 
    926     IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 
    927     if ( $DEBUG_sys ) ; then 
    928         echo "IGCM_sys_Put_Out :" $@ 
    929     fi 
    930     if [ $DRYRUN = 0 ]; then 
    931         if [ ! -f ${1} ] ; then 
    932             echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 
    933             IGCM_debug_PopStack "IGCM_sys_Put_Out" 
    934             return 1 
    935         fi 
    936         # 
    937         IGCM_sys_MkdirArchive $( dirname $2 ) 
    938         # 
    939         typeset RET 
    940  
    941         #===================================================== 
    942         #         COMMENT OUT DOUBLE COPY ON SCRATCHDIR 
    943         #===================================================== 
    944  
    945         #echo ${2} | grep "${R_OUT}" > /dev/null 2>&1 
    946         #if [ $? -eq 0 ] ; then 
    947         #    typeset WORKPATH FILEPATH 
    948         #    WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_OUT_SCR}|" ) 
    949         #    IGCM_sys_MkdirWork ${WORKPATH}  
    950         #    FILEPATH=${WORKPATH}/$( basename $2 ) 
    951         #    # 
    952         #    IGCM_sys_Cp ${1} ${FILEPATH} 
    953         #fi 
    954  
    955         if [ X${JobType} = XRUN ] ; then 
    956             if [ X${3} = X ] ; then 
    957                 IGCM_sys_Chmod 444 ${1} 
    958             fi 
    959         fi 
    960         # 
    961         # USUAL WAY 
    962         putfer $1 $2 > out_rsync 2>&1 
    963         RET=$? 
     1077  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 
     1078  if ( $DEBUG_sys ) ; then 
     1079    echo "IGCM_sys_Put_Out :" $@ 
     1080  fi 
     1081  if [ $DRYRUN = 0 ]; then 
     1082    if [ ! -f ${1} ] ; then 
     1083      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 
     1084      IGCM_debug_PopStack "IGCM_sys_Put_Out" 
     1085      return 1 
     1086    fi 
     1087    # 
     1088    IGCM_sys_MkdirArchive $( dirname $2 ) 
     1089    # 
     1090    typeset RET 
     1091 
     1092    #===================================================== 
     1093    #         COMMENT OUT DOUBLE COPY ON SCRATCHDIR 
     1094    #===================================================== 
     1095 
     1096    #echo ${2} | grep "${R_OUT}" > /dev/null 2>&1 
     1097    #if [ $? -eq 0 ] ; then 
     1098    #    typeset WORKPATH FILEPATH 
     1099    #    WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_BUF}|" ) 
     1100    #    IGCM_sys_MkdirWork ${WORKPATH}  
     1101    #    FILEPATH=${WORKPATH}/$( basename $2 ) 
     1102    #    # 
     1103    #    IGCM_sys_Cp ${1} ${FILEPATH} 
     1104    #fi 
     1105 
     1106    if [ X${JobType} = XRUN ] ; then 
     1107      if [ X${3} = X ] ; then 
     1108        IGCM_sys_Chmod 444 ${1} 
     1109      fi 
     1110    fi 
     1111    # 
     1112    # USUAL WAY 
     1113    \cp $1 $2 > out_rsync 2>&1 
     1114    RET=$? 
    9641115 
    9651116#       #RSYNC WITH NETWORK SSH CALL 
    966 #       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${RHOST}:${2} > out_rsync 2>&1 
    967 #       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${RHOST}:${2} >> out_rsync 2>&1 
     1117#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 
     1118#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 
    9681119 
    9691120#       #RSYNC WITH NFS USE 
     
    9771128#       (( RET=RET+$? )) 
    9781129 
    979         if [ ${RET} -gt 0 ] ; then 
    980             echo "IGCM_sys_Put_Out : error." 
    981             cat out_rsync 
    982             IGCM_debug_Exit "IGCM_sys_Put_Out" 
    983         else 
    984             \rm out_rsync 
    985         fi 
     1130    if [ ${RET} -gt 0 ] ; then 
     1131      echo "IGCM_sys_Put_Out : error." 
     1132      cat out_rsync 
     1133      IGCM_debug_Exit "IGCM_sys_Put_Out" 
    9861134    else 
    987         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    988     fi 
    989     IGCM_debug_PopStack "IGCM_sys_Put_Out" 
    990     return 0 
     1135      \rm out_rsync 
     1136    fi 
     1137  else 
     1138    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1139  fi 
     1140  IGCM_debug_PopStack "IGCM_sys_Put_Out" 
     1141  return 0 
     1142} 
     1143 
     1144#D-#================================================== 
     1145#D-function IGCM_sys_PutBuffer_Out 
     1146#D-* Purpose: Copy a file on ${SCRATCHDIR} after having chmod it in readonly 
     1147#D-* Examples: 
     1148#D- 
     1149function IGCM_sys_PutBuffer_Out { 
     1150  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Out" $@ 
     1151  if ( $DEBUG_sys ) ; then 
     1152    echo "IGCM_sys_PutBuffer_Out :" $@ 
     1153  fi 
     1154  if [ $DRYRUN = 0 ]; then 
     1155    if [ ! -f ${1} ] ; then 
     1156      echo "WARNING : IGCM_sys_PutBuffer_Out ${1} DOES NOT EXIST ." 
     1157      IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 
     1158      return 1 
     1159    fi 
     1160    # 
     1161    IGCM_sys_Mkdir $( dirname $2 ) 
     1162    # 
     1163    typeset RET 
     1164 
     1165    if [ X${JobType} = XRUN ] ; then 
     1166      if [ X${3} = X ] ; then 
     1167        IGCM_sys_Chmod 444 ${1} 
     1168      fi 
     1169    fi 
     1170    # 
     1171    # USUAL WAY 
     1172    \cp $1 $2 > out_rsync 2>&1 
     1173    RET=$? 
     1174 
     1175    if [ ${RET} -gt 0 ] ; then 
     1176      echo "IGCM_sys_PutBuffer_Out : error." 
     1177      cat out_rsync 
     1178      IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" 
     1179    else 
     1180      \rm out_rsync 
     1181    fi 
     1182  else 
     1183    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1184  fi 
     1185  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 
     1186  return 0 
    9911187} 
    9921188 
     
    9971193#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/ 
    9981194function IGCM_sys_Get { 
    999     IGCM_debug_PushStack "IGCM_sys_Get" $@ 
    1000  
    1001     typeset DEST RET dm_liste ifile target file_work  
    1002  
    1003     if ( $DEBUG_sys ) ; then 
    1004         echo "IGCM_sys_Get :" $@ 
    1005     fi 
    1006     if [ $DRYRUN -le 2 ]; then 
    1007         if [ X${1} = X'/l' ] ; then 
    1008             # test if the first file is present in the old computation : 
    1009             eval set +A dm_liste \${${2}} 
    1010         else 
    1011             eval set +A dm_liste ${1} 
    1012         fi 
    1013         eval DEST=\${${#}} 
    1014  
    1015         #===================================================== 
    1016         #         COMMENT OUT DOUBLE COPY ON SCRATCHDIR 
    1017         #===================================================== 
    1018  
    1019         # Is it an R_OUT file (not R_IN) ? 
    1020         #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 
    1021         #if [ $? -eq 0 ] ; then 
    1022         #    # Yes  ? then we try to get it in SCRATCHDIR 
    1023         #    set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_OUT_SCR}|" ) 
    1024         #    if [ -f ${file_work[0]} ] ; then 
    1025         #       IGCM_sys_Cp ${file_work[*]} ${DEST} 
    1026         #       IGCM_debug_PopStack "IGCM_sys_Get" 
    1027         #       return 
    1028         #    fi 
    1029         #fi 
    1030  
    1031         # test if the (first) file is present in the old computation : 
    1032         IGCM_sys_TestFileArchive ${dm_liste[0]} 
    1033         RET=$? 
    1034         if [ ${RET} -gt 0 ] ; then 
    1035             echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 
    1036             IGCM_debug_Exit "IGCM_sys_Get" 
    1037             IGCM_debug_PopStack "IGCM_sys_Get" 
    1038             return 
    1039         fi 
    1040  
    1041         dmget ${dm_liste[*]} > out_rsync 2>&1 
    1042         RET=$? 
    1043         if [ ${RET} -gt 0 ] ; then 
    1044             echo "IGCM_sys_Get : demigration error." 
    1045             cat out_rsync 
    1046             IGCM_debug_Exit "IGCM_sys_Get" 
    1047         fi 
    1048  
    1049         #USUAL WAY 
    1050         if [ X${1} = X'/l' ] ; then 
    1051             (( RET=0 )) 
    1052             for target in ${dm_liste[*]} ; do 
    1053                 local_file=$( basename ${target} ) 
    1054                 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 
    1055                 (( RET = RET + $? )) 
    1056             done 
    1057         else 
    1058             \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 
    1059             RET=$? 
    1060         fi 
     1195  IGCM_debug_PushStack "IGCM_sys_Get" $@ 
     1196 
     1197  typeset DEST RET dm_liste ifile target file_work  
     1198 
     1199  if ( $DEBUG_sys ) ; then 
     1200    echo "IGCM_sys_Get :" $@ 
     1201  fi 
     1202  if [ $DRYRUN -le 2 ]; then 
     1203    if [ X${1} = X'/l' ] ; then 
     1204      # test if the first file is present in the old computation : 
     1205      eval set +A dm_liste \${${2}} 
     1206    else 
     1207      eval set +A dm_liste ${1} 
     1208    fi 
     1209    eval DEST=\${${#}} 
     1210 
     1211    #===================================================== 
     1212    #         COMMENT OUT DOUBLE COPY ON SCRATCHDIR 
     1213    #===================================================== 
     1214 
     1215    # Is it an R_OUT file (not R_IN) ? 
     1216    #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 
     1217    #if [ $? -eq 0 ] ; then 
     1218    #    # Yes  ? then we try to get it in SCRATCHDIR 
     1219    #    set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_BUF}|g" ) 
     1220    #    if [ -f ${file_work[0]} ] ; then 
     1221    #   IGCM_sys_Cp ${file_work[*]} ${DEST} 
     1222    #   IGCM_debug_PopStack "IGCM_sys_Get" 
     1223    #   return 
     1224    #    fi 
     1225    #fi 
     1226 
     1227    # test if the (first) file is present in the old computation : 
     1228    IGCM_sys_TestFileArchive ${dm_liste[0]} 
     1229    RET=$? 
     1230    if [ ${RET} -gt 0 ] ; then 
     1231      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 
     1232      IGCM_debug_Exit "IGCM_sys_Get" 
     1233    fi 
     1234 
     1235    dmget ${dm_liste[*]} > out_rsync 2>&1 
     1236    RET=$? 
     1237    if [ ${RET} -gt 0 ] ; then 
     1238      echo "WARNING IGCM_sys_Get : demigration error." 
     1239      cat out_rsync 
     1240      echo "WARNING IGCM_sys_Get : will stop later if the cp fails." 
     1241    fi 
     1242 
     1243    #if [ ${RET} -gt 0 ] ; then 
     1244    #    if [ ! "X$( grep "Lost dmusrcmd connection" out_rsync )" = "X" ] ; then 
     1245    #   cat out_rsync 
     1246    #   echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : " 
     1247    #   sleep 30 
     1248    #   echo "We try another time" 
     1249    #   dmget ${dm_liste[*]} > out_rsync 2>&1 
     1250    #   RET=$? 
     1251    #   if [ ${RET} -gt 0 ] ; then 
     1252    #       echo "ERROR IGCM_sys_Get : again demigration error :" 
     1253    #       cat out_rsync 
     1254    #       IGCM_debug_Exit "IGCM_sys_Get" 
     1255    #   fi 
     1256    #    else 
     1257    #   echo "ERROR IGCM_sys_Get : demigration error :" 
     1258    #   cat out_rsync 
     1259    #   IGCM_debug_Exit "IGCM_sys_Get" 
     1260    #    fi 
     1261    #fi 
     1262 
     1263    #USUAL WAY 
     1264    if [ X${1} = X'/l' ] ; then 
     1265      (( RET=0 )) 
     1266      for target in ${dm_liste[*]} ; do 
     1267        local_file=$( basename ${target} ) 
     1268        \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 
     1269        (( RET = RET + $? )) 
     1270      done 
     1271    else 
     1272      \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 
     1273      RET=$? 
     1274    fi 
    10611275 
    10621276#       #RSYNC WITH NETWORK SSH CALL 
    1063 #       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RHOST}:"${dm_liste}" ${RHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&1 
    1064 #       ${RSYNC} ${RSYNC_opt} -e ssh ${RHOST}:"${dm_liste}" ${RHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&1 
     1277#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&1 
     1278#       ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&1 
    10651279 
    10661280#       #RSYNC WITH NFS USE 
     
    10741288#       (( RET=RET+$? )) 
    10751289 
    1076         if [ ${RET} -gt 0 ] ; then 
    1077             echo "IGCM_sys_Get : copy error." 
    1078             cat out_rsync 
    1079             IGCM_debug_Exit "IGCM_sys_Get" 
    1080         else 
    1081             \rm out_rsync 
    1082         fi 
     1290    if [ ${RET} -gt 0 ] ; then 
     1291      echo "IGCM_sys_Get : copy error." 
     1292      cat out_rsync 
     1293      IGCM_debug_Exit "IGCM_sys_Get" 
    10831294    else 
    1084         ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
    1085     fi 
    1086     IGCM_debug_PopStack "IGCM_sys_Get" 
    1087 } 
    1088  
    1089 ############################################################## A FINIR !! 
     1295      \rm out_rsync 
     1296    fi 
     1297  else 
     1298    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1299  fi 
     1300  IGCM_debug_PopStack "IGCM_sys_Get" 
     1301} 
     1302 
     1303#D-#================================================== 
     1304#D-function IGCM_sys_GetBuffer 
     1305#D-* Purpose: Get a file from ${SCRATCHDIR} 
     1306#D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX 
     1307#D-            IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/ 
     1308function IGCM_sys_GetBuffer { 
     1309  IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@ 
     1310 
     1311  typeset DEST RET buf_liste ifile target file_work  
     1312 
     1313  if ( $DEBUG_sys ) ; then 
     1314    echo "IGCM_sys_GetBuffer :" $@ 
     1315  fi 
     1316  if [ $DRYRUN -le 2 ]; then 
     1317    if [ X${1} = X'/l' ] ; then 
     1318      # test if the first file is present in the old computation : 
     1319      eval set +A buf_liste \${${2}} 
     1320    else 
     1321      eval set +A buf_liste ${1} 
     1322    fi 
     1323    eval DEST=\${${#}} 
     1324 
     1325    #USUAL WAY 
     1326    if [ X${1} = X'/l' ] ; then 
     1327      (( RET=0 )) 
     1328      for target in ${buf_liste[*]} ; do 
     1329        local_file=$( basename ${target} ) 
     1330        \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 
     1331        (( RET = RET + $? )) 
     1332      done 
     1333    else 
     1334      \cp ${buf_liste} ${DEST} >> out_rsync 2>&1 
     1335      RET=$? 
     1336    fi 
     1337 
     1338    if [ ${RET} -gt 0 ] ; then 
     1339      echo "IGCM_sys_GetBuffer : copy error." 
     1340      cat out_rsync 
     1341      IGCM_debug_Exit "IGCM_sys_GetBuffer" 
     1342    else 
     1343      \rm out_rsync 
     1344    fi 
     1345  else 
     1346    ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 
     1347  fi 
     1348  IGCM_debug_PopStack "IGCM_sys_GetBuffer" 
     1349} 
    10901350 
    10911351#D-#================================================== 
     
    10951355#D- 
    10961356function IGCM_sys_GetDate_FichWork { 
    1097     IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 
    1098     if ( $DEBUG_sys ) ; then 
    1099         echo "IGCM_sys_GetDate_FichWork :" $@ 
    1100     fi 
     1357  IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 
     1358  if ( $DEBUG_sys ) ; then 
     1359    echo "IGCM_sys_GetDate_FichWork :" $@ 
     1360  fi 
     1361  typeset dateF 
     1362  set +A dateF -- $( ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
     1363  eval ${2}=${dateF[5]} 
     1364 
    11011365    # donne la date filesys d'un fichier sur la machine work 
    1102     IGCM_debug_PopStack "IGCM_sys_FichWork" 
     1366  IGCM_debug_PopStack "IGCM_sys_FichWork" 
    11031367} 
    11041368 
     
    11091373#D- 
    11101374function IGCM_sys_GetDate_FichArchive { 
    1111     IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 
    1112     if ( $DEBUG_sys ) ; then 
    1113         echo "IGCM_sys_GetDate_FichArchive :" $@ 
    1114     fi 
    1115     IGCM_debug_PopStack "IGCM_sys_FichArchive" 
     1375  IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 
     1376  if ( $DEBUG_sys ) ; then 
     1377    echo "IGCM_sys_GetDate_FichArchive :" $@ 
     1378  fi 
     1379  typeset dateF 
     1380  set +A dateF -- $( ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 
     1381  eval ${2}=${dateF[5]} 
     1382 
     1383  IGCM_debug_PopStack "IGCM_sys_FichArchive" 
    11161384} 
    11171385 
     
    11201388 
    11211389function IGCM_sys_rebuild { 
    1122     IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 
    1123     if ( $DEBUG_sys ) ; then 
    1124         echo "IGCM_sys_rebuild :" $@ 
    1125     fi 
    1126     /home/cont003/p86ipsl/SX8/bin/rebuild -f -o $@ 
    1127     if [ $? -gt 0 ] ; then 
    1128        echo "IGCM_sys_rebuild : erreur ${@}." 
    1129        IGCM_debug_Exit "rebuild" 
    1130     fi 
    1131  
    1132     IGCM_debug_PopStack "IGCM_sys_rebuild" 
     1390  IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 
     1391  if ( $DEBUG_sys ) ; then 
     1392    echo "IGCM_sys_rebuild :" $@ 
     1393  fi 
     1394  /home/cont003/p86ipsl/SX8/bin/rebuild -f -o $@ 
     1395  if [ $? -gt 0 ] ; then 
     1396    echo "IGCM_sys_rebuild : erreur ${@}." 
     1397    IGCM_debug_Exit "rebuild" 
     1398  fi 
     1399 
     1400  IGCM_debug_PopStack "IGCM_sys_rebuild" 
    11331401} 
    11341402 
     
    11371405 
    11381406function IGCM_sys_activ_variables { 
    1139     IGCM_debug_PushStack "IGCM_sys_activ_variables" 
    1140     if ( $DEBUG_sys ) ; then 
    1141         echo "IGCM_sys_activ_variables" 
    1142     fi 
     1407  IGCM_debug_PushStack "IGCM_sys_activ_variables" 
     1408  if ( $DEBUG_sys ) ; then 
     1409    echo "IGCM_sys_activ_variables" 
     1410  fi 
    11431411 
    11441412# -------------------------------------------------------------------- 
     
    11471415 
    11481416#D-- MPISUSPEND 
    1149     export MPISUSPEND=${MPISUSPEND:=OFF} 
     1417  export MPISUSPEND=${MPISUSPEND:=OFF} 
    11501418 
    11511419#D-- MPIPROGINF #other choices : ALL_DETAIL2 
    1152     export MPIPROGINF=ALL 
     1420  export MPIPROGINF=ALL 
    11531421#D- activate ftrace (with -ftrace) 
    1154     export F_FTRACE=YES 
     1422  export F_FTRACE=YES 
    11551423#D- communication information (with -ftrace) 
    1156     export MPICOMMINF=DETAIL 
     1424  export MPICOMMINF=DETAIL 
    11571425 
    11581426# -------------------------------------------------------------------- 
     
    11611429 
    11621430#D- max number of character/line in output job 
    1163     export F_SYSLEN=5000 
     1431  export F_SYSLEN=5000 
    11641432#D- number of error that can be admitted on the NEC 
    1165     export F_ERRCNT=0 
     1433  export F_ERRCNT=0 
    11661434#D- global performance 
    1167     export F_PROGINF=DETAIL 
     1435  export F_PROGINF=DETAIL 
    11681436 
    11691437#D- I/O performance (FORTRAN I/O only not netCDF) 
    1170     export F_FILEINF=${F_FILEINF:=NO} 
     1438  export F_FILEINF=${F_FILEINF:=NO} 
    11711439#D- netCDF I/O performance 
    1172     export NC_FILEINF=${NC_FILEINF:=NO} 
    1173  
    1174     IGCM_debug_PopStack "IGCM_sys_activ_variables" 
     1440  export NC_FILEINF=${NC_FILEINF:=NO} 
     1441 
     1442  IGCM_debug_PopStack "IGCM_sys_activ_variables" 
    11751443} 
    11761444 
     
    11791447 
    11801448function IGCM_sys_desactiv_variables { 
    1181     IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 
    1182     if ( $DEBUG_sys ) ; then 
    1183         echo "IGCM_sys_desactiv_variables" 
    1184     fi 
     1449  IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 
     1450  if ( $DEBUG_sys ) ; then 
     1451    echo "IGCM_sys_desactiv_variables" 
     1452  fi 
    11851453# -------------------------------------------------------------------- 
    11861454#D- MPI specifications 
     
    11881456 
    11891457#D-- MPIPROGINF 
    1190     export MPIPROGINF=NO 
     1458  export MPIPROGINF=NO 
    11911459 
    11921460# -------------------------------------------------------------------- 
     
    11951463 
    11961464#D- global performance 
    1197     export F_PROGINF=NO   
    1198  
    1199     IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 
     1465  export F_PROGINF=NO   
     1466 
     1467  IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 
    12001468} 
    12011469 
     
    12041472 
    12051473function IGCM_sys_build_run_file { 
    1206     IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 
    1207     if ( $DEBUG_sys ) ; then 
    1208         echo "IGCM_sys_build_run_file " $@ 
    1209     fi 
    1210     (( NUM_PROC_ATM = BATCH_NUM_PROC_TOT - 1 )) 
    1211     (( NUM_PROC_OASIS = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 
    1212     (( NUM_PROC_OCE = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 
    1213      
    1214     if [ $1 = MPI2 ]; then 
    1215         cat <<EOF > run_file 
     1474  IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 
     1475  if ( $DEBUG_sys ) ; then 
     1476    echo "IGCM_sys_build_run_file " $@ 
     1477  fi 
     1478  (( NUM_PROC_ATM = BATCH_NUM_PROC_TOT - 1 )) 
     1479  (( NUM_PROC_OASIS = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 
     1480  (( NUM_PROC_OCE = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 
     1481   
     1482  if [ $1 = MPI2 ]; then 
     1483    cat <<EOF > run_file 
    12161484-p 1 -np 1 -e ./oasis 
    12171485EOF 
    1218         (( NUM_PROCESS = BATCH_NUM_PROC_TOT + 1 )) 
    1219         config_UserChoices_JobRunOptions='"-max_np ${NUM_PROCESS} -f"' 
    1220  
    1221     elif [ $1 = MPI1 ]; then 
    1222         cat <<EOF > run_file 
     1486    (( NUM_PROCESS = BATCH_NUM_PROC_TOT + 1 )) 
     1487    config_UserChoices_JobRunOptions='"-max_np ${NUM_PROCESS} -f"' 
     1488 
     1489  elif [ $1 = MPI1 ]; then 
     1490    cat <<EOF > run_file 
    12231491-p $NUM_PROC_OASIS -e ./oasis 
    12241492-p $NUM_PROC_ATM -e ./lmdz.x 
    12251493-p $NUM_PROC_OCE -e ./opa.xx 
    12261494EOF 
    1227   
    1228     fi 
    1229  
    1230     IGCM_debug_PopStack "IGCM_sys_build_run_file" 
    1231    
    1232 } 
     1495  fi 
     1496  IGCM_debug_PopStack "IGCM_sys_build_run_file" 
     1497} 
Note: See TracChangeset for help on using the changeset viewer.