Changeset 2261


Ignore:
Timestamp:
Jun 8, 2017 2:25:57 PM (4 years ago)
Author:
raasch
Message:

changes in mrun: unified cycle numbers for output files are used, paths and filenames are allowed to contain arbitrary numbers of dots, archive feature completely removed from the script, nech related parts completely removed, OpenMP bugfix in prognostic_equations

Location:
palm/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/batch_scp

    r1310 r2261  
    1 #! /bin/ksh
     1#! /bin/bash
    22
    33# batch_scp - script for automatic file/directory transfer using scp
     
    2222# Current revisions:
    2323# ------------------
    24 #
    25 #
     24# 
     25# 
    2626# Former revisions:
    2727# -----------------
    2828# $Id$
     29# option usecycle added, script is running under bash now,
     30# filenames are allowed to contain arbitrary number of dots "."
     31#
     32# 1310 2014-03-14 08:01:56Z raasch
    2933#
    3034# 1202 2013-07-10 16:22:07Z witha
     
    5256# batch_scp - script for automatic file/directory transfers using scp
    5357#
    54 # batch_scp has 4 arguments:
     58# batch_scp has up to 5 arguments (first 4 are mandatory):
    5559#               $1 = IP-addres of remote (target) machine
    5660#               $2 = file to be transferred
    5761#               $3 = directory of remote machine, where file should be copied to
    5862#               $4 = filename that file should be given on remote machine
     63#               $5 = file extension (optional argument)
    5964#
    6065# ATTENTION: problems might occur if directories on remote machine include very
     
    8994 transfermode=binary
    9095 zyklusnr=""
    91  typeset -i iii icycle maxcycle=0 wait=0
     96 typeset -i iii icycle maxcycle=0 usecycle wait=0
    9297
    9398    # FEHLERBEHANDLUNG
     
    113118
    114119    # SHELLSCRIPT-OPTIONEN EINLESEN
    115  while  getopts  :aAbcCdgmnoP:qsu:w:  option
     120 while  getopts  :aAbcCdgmnoP:qsu:U:w:  option
    116121 do
    117122   case  $option  in
     
    130135       (s)   silent=true;;
    131136       (u)   remote_user=$OPTARG;;
     137       (U)   usecycle=$OPTARG;;
    132138       (w)   wait=$OPTARG;;
    133139       (\?)  printf "  +++ option $OPTARG unknown \n"
     
    136142   esac
    137143 done
    138  shift OPTIND-1
     144
     145 (( to_shift = $OPTIND - 1 ))
     146 shift $to_shift
     147
    139148
    140149
     
    144153 then
    145154   (printf "\n  *** batch_scp can be called as follows:\n"
    146     printf "\n      batch_scp -a -b -d -g -o -q -s -u.. -w..  <param1> <param2> <param3> <param4>\n"
     155    printf "\n      batch_scp -a -b -d -g -o -q -s -u.. -U.. -w..  <param1> <param2> <param3> <param4>\n"
    147156    printf "\n      Description of available options:\n"
    148157    printf "\n      Option  Description                            Default-Value"
     
    163172    printf "\n        -s    do not display informative messages    ---"
    164173    printf "\n        -u    username on remote machine             <username>"
     174    printf "\n        -U    cycle number to be used                ---"
    165175    printf "\n        -w    waiting time in seconds, before trans- 0"
    166176    printf "\n              fer will be initiated"
     
    226236
    227237
    228     # DATEINAME IM 4. ARGUMENT DARF NUR BEIM UEBERSCHREIBEN ODER IM ABSOLUT-
    229     # MODUS PUNKTE ENTHALTEN
    230  if [[ $overwrite = false  &&  $absolut = false  &&  $(echo $4 | grep -c "\.") != 0 ]]
    231  then
    232     printf " +++ 4th argument may only contain dots (".") , if one of the \n"
    233     printf "     options -a or -o are given \n"
    234     locat=argument; exit
    235  fi
    236 
    237 
    238238    # QUOTE WAIT FUNKTIONIERT NICHT BEIM KOPIEREN GANZER VERZEICHNISSE
    239239 if [[ $quote_wait = true  &&  $catalog_copy = true ]]
     
    386386       if [[ $absolut = false ]]
    387387       then
    388           text=$(echo $zeile | cut -f1 -d".")
    389           if [[ "$text" = "$4" ]]
    390           then
    391              found=true
    392              cycle=$(echo $zeile | cut -f2 -d".")
    393              if [[ "$cycle" = "$text" ]]
    394              then
     388             # REMOVE EXTENSION, IF EXISTING AND GIVEN AS ARGUMENT
     389          if [[ "$5" != ""  &&  "$5" != " " ]]
     390          then
     391             extension=${zeile##*.}
     392             if [[ $extension = $5 ]]
     393             then
     394                text=${zeile%.*}
     395             else
     396                text=${zeile}
     397             fi
     398          else
     399             text=${zeile}
     400          fi
     401
     402             # GET AND REMOVE CYCLE NUMBER, IF EXISTING, AND CHECK, IF FILE EXISTS
     403          cycle=${text##*.}
     404          if [[ $cycle = $text ]]
     405          then
     406                # filename contains no dot, i.e. no cycle number
     407             if [[ "$text" = "$4" ]]
     408             then
     409                found=true
    395410                (( icycle = 0 ))
    396              else
    397 
    398                    # PRUEFEN, OB CYCLE EINE ZAHL IST
    399                 (( iii = 1 ))
    400                 character=`echo $cycle | cut -c$iii`
    401                 character_found=false
    402                 while [[ "$character" != ""  &&  $character_found = false ]]
    403                 do
    404                    case  $character  in
    405                       (0|1|2|3|4|5|6|7|8|9)  true;;
    406                       (*)  character_found=true
    407                    esac
    408                    (( iii = iii + 1 ))
    409                    character=`echo $cycle | cut -c$iii`
    410                 done
    411 
    412                 if [[ $character_found = false ]]
     411             fi
     412          else
     413                # filename contains at least one dot
     414                # find out if the string after the last dot is a number
     415             if [[ $cycle =~ ^-?[0-9]+$ ]]
     416             then
     417                text=${text%.*}
     418                if [[ "$text" = "$4" ]]
    413419                then
     420                   found=true
    414421                   (( icycle = $cycle ))
    415422                fi
    416              fi >|$errfile 2>&1    # AUSGABE FEHLER AUF ERRFILE WENN CYCLE NICHTNUMERISCH
    417 
    418 
    419                 # INFORMATIVE AUSGABE, WENN DATEI NICHTNUMERISCHE EXTENSION HAT
    420                 # if [[ $(cat $errfile | grep -c "bad number") != 0 ]]
    421              if [[ $character_found = true ]]
    422              then
    423                 if [[ $cycle != "$5" ]]
     423             else
     424                if [[ "$text" = "$4" ]]
    424425                then
    425                    printf "  +++ file \"$text\" has non-numerical extension \".$cycle\" \n"
    426                    locat=file; exit
    427                 else
    428                    if [[ $silent = false ]]
    429                    then
    430                       printf "  >>> file \"$text\" has non-numerical extension \".$cycle\" \n"
    431                    fi
     426                   found=true
     427                   (( icycle = 0 ))
    432428                fi
    433429             fi
     430          fi
     431
     432
     433#          text=$(echo $zeile | cut -f1 -d".")
     434#
     435#          if [[ "$text" = "$4" ]]
     436#          then
     437#             found=true
     438#             cycle=$(echo $zeile | cut -f2 -d".")
     439#             if [[ "$cycle" = "$text" ]]
     440#             then
     441#                (( icycle = 0 ))
     442#             else
     443#
     444#                   # PRUEFEN, OB CYCLE EINE ZAHL IST
     445#                (( iii = 1 ))
     446#                character=`echo $cycle | cut -c$iii`
     447#                character_found=false
     448#                while [[ "$character" != ""  &&  $character_found = false ]]
     449#                do
     450#                   case  $character  in
     451#                      (0|1|2|3|4|5|6|7|8|9)  true;;
     452#                      (*)  character_found=true
     453#                   esac
     454#                   (( iii = iii + 1 ))
     455#                   character=`echo $cycle | cut -c$iii`
     456#                done
     457#
     458#                if [[ $character_found = false ]]
     459#                then
     460#                   (( icycle = $cycle ))
     461#                fi
     462#             fi >|$errfile 2>&1    # AUSGABE FEHLER AUF ERRFILE WENN CYCLE NICHTNUMERISCH
     463#
     464#
     465#                # INFORMATIVE AUSGABE, WENN DATEI NICHTNUMERISCHE EXTENSION HAT
     466#                # if [[ $(cat $errfile | grep -c "bad number") != 0 ]]
     467#             if [[ $character_found = true ]]
     468#             then
     469#                if [[ $cycle != "$5" ]]
     470#                then
     471#                   printf "  +++ file \"$text\" has non-numerical extension \".$cycle\" \n"
     472#                   locat=file; exit
     473#                else
     474#                   if [[ $silent = false ]]
     475#                   then
     476#                      printf "  >>> file \"$text\" has non-numerical extension \".$cycle\" \n"
     477#                   fi
     478#                fi
     479#             fi
    434480
    435481             if (( icycle > maxcycle ))
     
    437483                (( maxcycle = icycle ))
    438484             fi
    439           fi
     485#          fi
    440486
    441487       else
     
    458504          then
    459505             (( maxcycle = maxcycle + 1 ))
     506                # TRY TO USE FIXED CYCLE NUMBER, IF GIVEN AS OPTION
     507             if [[ "$usecycle" != "" ]]
     508             then
     509                if (( usecycle >= maxcycle ))
     510                then
     511                   (( maxcycle = usecycle ))
     512                else
     513                    printf "  >>> Unfied cycle number cannot be used\n"
     514                fi
     515             fi
    460516             zyklusnr=".$maxcycle"
    461517          else
     
    489545       fi
    490546    fi
     547
    491548 else
    492     zyklusnr=""
     549
     550    if [[ "$usecycle" != "" ]]
     551    then
     552       (( maxcycle = usecycle ))
     553       zyklusnr=".$usecycle"
     554    else
     555       zyklusnr=""
     556    fi
    493557
    494558       # ABBRUCH, WENN DATEI VON ZIELRECHNER GEHOLT WERDEN SOLL, DORT ABER
  • palm/trunk/SCRIPTS/mrun

    r2257 r2261  
    2727# -----------------
    2828# $Id$
     29# unified cycle numbers for output files are used,
     30# paths and filenames are allowed to contain arbitrary numbers of dots ".",
     31# creation of file OUTPUT_FILE_CONNECTIONS removed,
     32# archive feature completely removed from the script,
     33# nech related parts completely removed
     34#
     35# 2257 2017-06-07 14:07:05Z witha
    2936# adjustments for lceddy, removed lcflow-specific code
    3037#
     
    251258 add_source_path=""
    252259 afname=""
    253  archive_save=true
    254  archive_system=none
    255260 check_namelist_files=false
    256261 combine_plot_fields=true
     
    288293 host_file=""
    289294 hp=""
    290  ignore_archive_error=false
    291295 input_list=""
    292296 interpreted_config_file=""
     
    348352 run_coupled_model=false
    349353 run_mode=""
    350  store_on_archive_system=false
    351354 dashes="  ----------------------------------------------------------------------------"
    352355 silent=false
     
    370373                           # SIDE EFFECT MAY CAUSE DATA LOSS WHEN GETOPTS IS READING THE
    371374                           # SCRIPT-OPTION ARGUMENTS
    372  typeset -i  cputime i ii iia iii iio icycle inode ival jobges jobsek last_char_int maxcycle minuten nodes pes remaining_pes sekunden tp1
     375 typeset -i  cputime i ii iia iii iio icycle inode ival jobges jobsek last_char_int maxcycle minuten nodes pes remaining_pes run_number sekunden tp1
    373376
    374377    # ERROR HANDLING IN CASE OF EXIT
     
    450453    # READ SHELLSCRIPT-OPTIONS AND REBUILD THE MRUN-COMMAND STRING (MC),
    451454    # WHICH WILL BE USED TO START RESTART-JOBS
    452  while  getopts  :a:AbBc:Cd:D:Fg:G:h:H:i:IkK:m:M:n:o:O:p:P:q:r:R:s:St:T:u:U:vw:xX:yY:zZ option
     455 while  getopts  :a:bBc:Cd:D:Fg:G:h:H:i:kK:m:M:n:o:O:p:P:q:r:R:s:St:T:u:U:vw:xX:yY:zZ option
    453456 do
    454457   case  $option  in
    455458       (a)   afname=$OPTARG;;
    456        (A)   store_on_archive_system=true; mc="$mc -A";;
    457459       (b)   do_batch=true; mc="$mc -b";;
    458460       (B)   delete_temporary_catalog=false; mc="$mc -B";;
     
    460462       (C)   restart_run=true; mc="$mc -C";;
    461463       (d)   fname=$OPTARG; mc="$mc -d$OPTARG";;
    462 #        (D)   cpp_opts="$cpp_opts $OPTARG"; mc="$mc -D'$OPTARG'";;
    463464       (F)   job_on_file="-D"; mc="$mc -F";;
    464465       (g)   group_number=$OPTARG; mc="$mc -g$OPTARG";;
     
    467468       (H)   fromhost=$OPTARG; mc="$mc -H$OPTARG";;
    468469       (i)   input_list=$OPTARG; mc="$mc -i'$OPTARG'";;
    469        (I)   ignore_archive_error=true; mc="$mc -I";;
    470470       (k)   keep_data_from_previous_run=true; mc="$mc -k";;
    471471       (K)   additional_conditions="$OPTARG"; mc="$mc -K'$OPTARG'";;
     
    514514    printf "\n      Option  Description                              Default-Value"
    515515    printf "\n        -a    base name of input files                 equiv. -d"
    516     printf "\n        -A    archiving when using file-attribute fl"
    517516    printf "\n        -b    batch-job on local machine               ---"
    518517    printf "\n        -B    do not delete temporary directory at end ---"
     
    523522    printf "\n        -h    execution host                           $localhost_realname"
    524523    printf "\n        -i    INPUT control list                       \"\" "
    525     printf "\n        -I    archiving errors of previous batch-jobs"
    526     printf "\n              will be ignored"
    527524    printf "\n        -k    keep data from previous run"
    528525    printf "\n        -K    additional conditions for controling"
     
    612609
    613610
    614     # SET HOST-SPECIFIC VARIABLES
    615  case  $localhost_realname  in
    616      (r1*|r2*|h01*|b01*)     archive_system=tivoli;;
    617      (cs*)                   archive_system=ut;;
    618  esac
    619 
    620 
    621611    # ??? THIS SHOULD BE DECRIBED IN THE MRUN DOCUMENTATION ???
    622612    # SET BASENAME OF THE INPUT-FILES TO THE GENERAL BASENAME (GIVEN BY OPTION -d),
     
    655645    do_remote=true
    656646    case  $host  in
    657         (ibm|ibmh|ibmkisti|ibmku|ibms|nech|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
     647        (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
    658648        (*)  printf "\n"
    659649             printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
     
    714704
    715705 fi
    716 
    717     # CHECK, IF FILE-ARCHIVING HAS FAILED IN PREVIOUS JOB (OF A JOB-CHAIN)
    718  if [[ -f ~/job_queue/ARCHIVE_ERROR_$fname ]]
    719  then
    720     if [[ $ignore_archive_error = false ]]
    721     then
    722        printf "\n  +++ data archiving of previous run failed"
    723        printf "\n      see directory \~/job_queue on remote machine"
    724        locat=archive; exit
    725     else
    726        printf "\n  +++ warning: data archiving in a previous run failed"
    727        printf "\n      MRUN continues, trying to get backup copy"
    728     fi
    729  fi
    730 
    731706
    732707    # SAVE VALUES OF MRUN-OPTIONS SICHERN IN ORDER TO OVERWRITE
     
    813788                   do_remote=true
    814789                   case  $host  in
    815                        (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|nech|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
     790                       (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
    816791                       (*)  printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
    817792                            printf "\n      is not available"
     
    938913
    939914       # PROVIDE VALUES OF ENVIRONMENT-VARIABLE FOR interpret_config VIA NAMELIST-FILE
    940     cat  >  .mrun_environment  <<  %%END%%
     915    cat  >  .mrun_environment  <<  EOF
    941916 &mrun_environment  cond1 = '$cond1', cond2 = '$cond2',
    942917                    config_file = '$config_file', do_remote = '$do_remote',
     
    945920                    localhost = '$localhost', output_list = '$output_list' /
    946921
    947 %%END%%
     922EOF
    948923
    949924    if [[ "$host" != $localhost ]]
     
    10771052    do_remote=true
    10781053    case  $host  in
    1079         (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|nech|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
     1054        (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb)  true;;
    10801055        (*)  printf "\n"
    10811056             printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
     
    12201195        (lckyut)     queue=cx-single;;
    12211196        (lctit)      queue=S;;
    1222         (nech)       queue=none;;
    12231197        (unics)      queue=unics;;
    12241198    esac
     
    12561230       then
    12571231          printf "\n\n  +++ INPUT-file: "
    1258           if [[ "${extin[$i]}" = "" ]]
     1232          if [[ "${extin[$i]}" = ""  ||  "${extin[$i]}" = " " ]]
    12591233          then
    12601234             printf "\n           $filename"
     
    12741248       while  read zeile
    12751249       do
    1276           cycle=$(echo $zeile | cut -f2 -d".")
    1277           if [[ "$cycle" = "$zeile" ]]
    1278           then
    1279              (( icycle = 0 ))
    1280           elif [[ "$cycle" = "${extin[$i]}" ]]
    1281           then
    1282              (( icycle = 0 ))
    1283           else
    1284              (( icycle = $cycle ))
    1285           fi
    1286           if (( icycle > maxcycle ))
    1287           then
    1288              (( maxcycle = icycle ))
    1289              file_to_be_used=$zeile
    1290           fi
     1250              # filename without path (i.e. after the last "/")
     1251           basefilename=$(basename ${zeile})
     1252
     1253              # check if there is an extension
     1254           extension=${basefilename##*.}
     1255           if [[ "$extension" = "$extin[$i]" ]]
     1256           then
     1257              basefilename=${basefilename&.*}
     1258           fi
     1259
     1260              # check for an existing cycle number
     1261           cycle=${basefilename##*.}
     1262           if [[ $cycle =~ ^-?[0-9]+$ ]]
     1263           then
     1264              (( icycle = $cycle ))
     1265           else
     1266              (( icycle = 0 ))
     1267           fi
     1268
     1269           if (( icycle > maxcycle ))
     1270           then
     1271              (( maxcycle = icycle ))
     1272           fi
     1273
     1274#          cycle=$(echo $zeile | cut -f2 -d".")
     1275#          if [[ "$cycle" = "$zeile" ]]
     1276#          then
     1277#             (( icycle = 0 ))
     1278#          elif [[ "$cycle" = "${extin[$i]}" ]]
     1279#          then
     1280#             (( icycle = 0 ))
     1281#          else
     1282#             (( icycle = $cycle ))
     1283#          fi
     1284#          if (( icycle > maxcycle ))
     1285#          then
     1286#             (( maxcycle = icycle ))
     1287#          fi
    12911288       done <filelist
    12921289       rm filelist
     
    13091306       
    13101307          # STORE FILENAME WITHOUT PATH BUT WITH CYCLE NUMBER,
    1311           # BECAUSE IT MIGHT BE REQUIRED LATER TO RESTORE THE FILE FROM AN ARCHIVE-SYSTEM
     1308          # IS LATER USED FOR TRANSFERRING FILES WIHIN THE JOB (SEE END OF FILE)
    13121309       absnamein[$i]=$filename
    13131310       if (( maxcycle > 0 ))
     
    13741371                   printf "\n           $catalogname"
    13751372                   printf "\n      was created\n"
     1373                   echo "### filename = $filename"
    13761374                else
    13771375                   printf "\n\n  +++ OUTPUT-file:"
     
    13971395          while  read zeile
    13981396          do
    1399              cycle=$(echo $zeile | cut -f2 -d".")
    1400              if [[ "$cycle" = "$zeile"  ||  "$cycle" = ${extout[$i]} ]]
     1397
     1398                # filename without path (i.e. after the last "/")
     1399             basefilename=$(basename ${zeile})
     1400
     1401                # check if there is an extension
     1402             extension=${basefilename##*.}
     1403             if [[ "$extension" = "$extin[$i]" ]]
    14011404             then
     1405                basefilename=${basefilename&.*}
     1406             fi
     1407
     1408                # check for an existing cycle number
     1409             cycle=${basefilename##*.}
     1410             if [[ $cycle =~ ^-?[0-9]+$ ]]
     1411             then
     1412                (( icycle = $cycle + 1 ))
     1413             else
    14021414                (( icycle = 1 ))
    1403              else
    1404                 (( icycle = $cycle + 1 ))
    14051415             fi
     1416
    14061417             if (( icycle > maxcycle ))
    14071418             then
    14081419                (( maxcycle = icycle ))
    14091420             fi
     1421
     1422#             cycle=$(echo $zeile | cut -f2 -d".")
     1423#             if [[ "$cycle" = "$zeile"  ||  "$cycle" = ${extout[$i]} ]]
     1424#             then
     1425#                (( icycle = 1 ))
     1426#             else
     1427#                (( icycle = $cycle + 1 ))
     1428#             fi
     1429#             if (( icycle > maxcycle ))
     1430#             then
     1431#                (( maxcycle = icycle ))
     1432#             fi
    14101433          done <filelist
    14111434          rm filelist
     
    14181441          if (( maxcycle > 0 ))
    14191442          then
    1420              filename=${filename}.$maxcycle
    1421              if  cat /dev/null > $filename
     1443             filename_tmp=${filename}.$maxcycle
     1444             if  cat /dev/null > $filename_tmp
    14221445             then
    1423                 rm  $filename
     1446                rm  $filename_tmp
    14241447             else
    14251448                printf "\n  +++ OUTPUT-file:"
    1426                 printf "\n           $filename"
     1449                printf "\n           $filename_tmp"
    14271450                printf "\n      cannot be created"
    14281451                locat=output  ; exit
     
    14311454       else
    14321455          (( maxcycle = maxcycle - 1 ))
    1433           if (( maxcycle > 0 ))
    1434           then
    1435              filename=${filename}.$maxcycle
    1436           fi
    14371456       fi
    14381457       
    1439           # STORE FILENAME WITHOUT PATH BUT WITH CYCLE NUMBER,
    1440           # BECAUSE IT MIGHT BE REQUIRED LATER TO STORE THE FILE ON AN ARCHIVE-SYSTEM
    1441           # OR TO PUT THIS FILENAME ON FILE OUTPUT_FILE_CONNECTIONS
     1458       (( cycnum[$i] = maxcycle ))
    14421459       pathout[$i]=$filename
    1443        if (( maxcycle > 0 ))
    1444        then
    1445           frelout[$i]=${fname}${endout[$i]}.$maxcycle
    1446        else
    1447           frelout[$i]=${fname}${endout[$i]}
    1448        fi
    14491460
    14501461    fi
     
    18951906    then
    18961907       tmp_user_catalog=$SCRATCH
    1897     elif [[ $localhost = nech ]]
    1898     then
    1899        tmp_user_catalog=$WRKSHR
    19001908    else
    19011909       tmp_user_catalog=/tmp
     
    19081916 if [[ "$tmp_data_catalog" = "" ]]
    19091917 then
    1910     if [[ $localhost = nech ]]
    1911     then
    1912        tmp_data_catalog=$WRKSHR/mrun_restart_data
    1913     else
    1914        tmp_data_catalog=/tmp/mrun_restart_data
    1915     fi
     1918    tmp_data_catalog=/tmp/mrun_restart_data
    19161919 fi
    19171920
     
    23112314    then
    23122315
    2313           # ON NEC, COMPILATION IS DONE ON HOST CROSS VIA CROSS COMPILING
    2314           # CREATE A TEMPORARY DIRECTORY ON THAT MACHINE (HOME MOUNTED VIA NFS)
    2315        if [[ $localhost = nech ]]
    2316        then
    2317           TEMPDIR_COMPILE=$HOME/work/${usern}.$kennung
    2318           if  mkdir -p  $TEMPDIR_COMPILE
    2319           then
    2320              printf "\n  *** \"$TEMPDIR_COMPILE\" "
    2321              printf "\n      is generated as temporary directory for cross compiling\n"
    2322           else
    2323              printf "\n  +++ creating directory \"$TEMPDIR_COMPILE\" "
    2324              printf "\n      needed for cross compilation failed"
    2325              locat=compile
    2326              exit
    2327           fi
    2328        else
    2329           TEMPDIR_COMPILE=$TEMPDIR
    2330        fi
     2316       TEMPDIR_COMPILE=$TEMPDIR
    23312317
    23322318       cp  $make_depository  $TEMPDIR_COMPILE
     
    23542340    cd  $TEMPDIR
    23552341    printf "\n  *** changed to temporary directory: $TEMPDIR"
    2356 
    2357 
    2358        # THE FOLLOWING IS REQUIRED FPR AVS-OUTPUT WITH PALM  ??? REMOVE ???
    2359        # WRITE INFORMATIONS ABOUT THE OUTPUT-FILE CONNECTIONS TO A TEMPORARY FILE
    2360        # THIS FILE CAN LATER BE READ FROM USER-DEFINED CODE TO DETERMINE THE
    2361        # RELATION BETWEEN THE LOCAL TEMPORARY AND PERMANENT FILE NAMES
    2362     (( i = 0 ))
    2363     while (( i < iout ))
    2364     do
    2365        (( i = i + 1 ))
    2366        if [[ "${actionout[$i]}" = tr  ||  "${actionout[$i]}" = tra  ||  "${actionout[$i]}" = trpe ]]
    2367        then
    2368           printf "${localout[$i]} ${actionout[$i]}\n${pathout[$i]}\n${localhost}_${fname}${endout[$i]}\n" >> OUTPUT_FILE_CONNECTIONS
    2369        else
    2370           printf "${localout[$i]} ${actionout[$i]}\n${pathout[$i]}\n${frelout[$i]}\n" >> OUTPUT_FILE_CONNECTIONS
    2371        fi
    2372     done
    23732342
    23742343
     
    24052374          printf "      source code files:        $source_list \n"
    24062375
    2407           if [[ $localhost = nech ]]
    2408           then
    2409              ssh  $SSH_PORTOPT  136.172.44.192 -l $usern "$init_cmds $module_calls cd \$HOME/work/${usern}.$kennung; sxmake $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT=\"$cpp_options\"  F90FLAGS=\"$fopts\"  LDFLAGS=\"$lopts\" "
    2410              cp  $TEMPDIR_COMPILE/a.out  .
    2411              [[ $? != 0 ]]  &&  compile_error=true
    2412              rm -rf  $TEMPDIR_COMPILE
    2413           elif [[ $localhost = ibmh ]]
     2376          if [[ $localhost = ibmh ]]
    24142377          then
    24152378             printf "      compiler is called via ssh on \"plogin1\" \n"
     
    24822445       if [[ "${actionin[$i]}" = pe  &&  -n $numprocs ]]
    24832446       then
    2484           files_for_pes=true; datentyp=directory
     2447          files_for_pes=true; datentyp=files
    24852448          actionin[$i]=""
    24862449       elif [[ "${actionin[$i]}" = pe  &&  ! -n $numprocs ]]
    24872450       then
    24882451          actionin[$i]=""
    2489        elif [[ "${actionin[$i]}" = arpe  &&  -n $numprocs ]]
    2490        then
    2491           files_for_pes=true; datentyp=directory
    2492           actionin[$i]="ar"
    2493        elif [[ "${actionin[$i]}" = arpe  &&  ! -n $numprocs ]]
    2494        then
    2495           actionin[$i]="ar"
    2496        elif [[ "${actionin[$i]}" = flpe  &&  -n $numprocs ]]
    2497        then
    2498           files_for_pes=true; datentyp=directory
    2499           actionin[$i]="fl"
    2500        elif [[ "${actionin[$i]}" = flpe  &&  ! -n $numprocs ]]
    2501        then
    2502           actionin[$i]="fl"
     2452       elif [[ "${actionin[$i]}" = lnpe  &&  -n $numprocs ]]
     2453       then
     2454          files_for_pes=true; datentyp=files
     2455          actionin[$i]="ln"
     2456       elif [[ "${actionin[$i]}" = lnpe  &&  ! -n $numprocs ]]
     2457       then
     2458          actionin[$i]="ln"
    25032459       fi
    25042460
     
    25102466       fi
    25112467
    2512           # INPUT-FILE FOR A RESTART RUN.
    2513           # CHECK, IF THIS FILE STILL EXISTS ON THE TEMPORARY DATA DIRECTORY.
    2514           # IF NOT, TRY TO GET IT FROM THE ARCHIVE SYSTEM
    2515        if [[ "${actionin[$i]}" = fl ]]
    2516        then
    2517           printf "\n      $datentyp will be fetched from temporary directory \"${tmp_data_catalog}\" !"
     2468          # INPUT-FILES TO BE LINKED
     2469       if [[ "${actionin[$i]}" = ln ]]
     2470       then
     2471
     2472          printf "\n      $datentyp will be linked"
    25182473          if [[ $files_for_pes = false ]]
    25192474          then
    2520              if [[ -f "$tmp_data_catalog/${frelin[$i]}" ]]
     2475             if [[ -f "${absnamein[$i]}" ]]
    25212476             then
    2522                 ln  $tmp_data_catalog/${frelin[$i]}  ${localin[$i]}
     2477                ln  ${absnamein[$i]}  ${localin[$i]}
    25232478                got_tmp[$i]=true
    2524              elif [[ -f "$WORK/${frelin[$i]}"  &&  $ignore_archive_error = true ]]
    2525              then
    2526                 printf "\n  +++ $datentyp not found in \"$tmp_data_catalog\" !"
    2527                 printf "\n  *** trying to use backup copy in \"$WORK\" "
    2528                 cp  $WORK/${frelin[$i]}  ${localin[$i]}
    2529              else
    2530                 printf "\n  +++ $datentyp not found in \"$tmp_data_catalog\" "
    2531                 printf "\n      or \"$tmp_data_catalog\" does not exist!"
    2532                 printf "\n  *** trying to get copy from archive"
    2533                 actionin[$i]=ar
    25342479             fi
    25352480          else
    2536              if [[ -d "$tmp_data_catalog/${frelin[$i]}" ]]
     2481             if [[ -d "${absnamein[$i]}" ]]
    25372482             then
    25382483                mkdir  ${localin[$i]}
    2539                 cd $tmp_data_catalog/${frelin[$i]}
     2484                cd ${absnamein[$i]}
    25402485                for file in $(ls *)
    25412486                do
    25422487                   ln $file $TEMPDIR/${localin[$i]}
    2543                 done
     2488                done >|/dev/null 2>&1
    25442489                cd $TEMPDIR
    2545                 got_tmp[$i]=true
    2546              elif [[ -d "$WORK/${frelin[$i]}"  &&  $ignore_archive_error = true ]]
     2490             fi
     2491
     2492                # IF "ln -f" HAS FAILED DO A NORMAL COPY "cp -r"
     2493             if [[ ! -f "${localin[$i]}/_000000" ]]
    25472494             then
    2548                 printf "\n  +++ $datentyp not found in \"$tmp_data_catalog\" !"
    2549                 printf "\n  *** trying to use backup copy in \"$WORK\" "
    2550                 cp -r  $WORK/${frelin[$i]}  ${localin[$i]}
    2551              else
    2552                 printf "\n  +++ $datentyp not found in \"$tmp_data_catalog\" "
    2553                 printf "\n      or \"$tmp_data_catalog\" does not exist!"
    2554                 printf "\n  *** trying to get copy from archive"
    2555                 actionin[$i]=ar
     2495                printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
     2496                cp -r  ${absnamein[$i]}/*  ${localin[$i]}
    25562497             fi
    2557           fi
    2558        fi
    2559 
    2560 
    2561           # FILE IS STORED ON THE ARCHIVE SYSTEM
    2562        if [[ "${actionin[$i]}" = ar ]]
    2563        then
    2564 
    2565           if [[ $files_for_pes = false ]]
    2566           then
    2567              printf "\n      file will be restored from archive-system ($archive_system)!"
    2568           else
    2569              printf "\n      directory will be restored from archive-system ($archive_system)!"
    2570           fi
    2571 
    2572           file_restored=false
    2573 
    2574           if [[ $archive_system = asterix ]]
    2575           then
    2576              do_stagein=true
    2577              (( stagein_anz = 0 ))
    2578              while [[ $do_stagein = true ]]
    2579              do
    2580                 if [[ $files_for_pes = false ]]
    2581                 then
    2582                    stagein  -O  ${frelin[$i]}  >  STAGEIN_OUTPUT
    2583                 else
    2584                    stagein  -t  -O  ${frelin[$i]}  >  STAGEIN_OUTPUT
    2585                 fi
    2586                 cat  STAGEIN_OUTPUT
    2587                 if [[ $(grep -c "st.msg:i24"  STAGEIN_OUTPUT) != 0 ]]
    2588                 then
    2589                    file_restored=true
    2590                    do_stagein=false
    2591                 else
    2592                    (( stagein_anz = stagein_anz + 1 ))
    2593                    if (( stagein_anz == 10 ))
    2594                    then
    2595                       printf "\n  +++ stagein stoped after 10 tries"
    2596                       locat=stage
    2597                       exit
    2598                    fi
    2599                    printf "\n  +++ restoring from archive failed, trying again:"
    2600                    sleep 900
    2601                 fi
    2602              done
    2603           elif [[ $archive_system = DMF ]]
    2604           then
    2605              if [[ $files_for_pes = false ]]
    2606              then
    2607                 printf "\n  +++ restoring of single files impossible with $archive_system !\n"
    2608                 locat=DMF
    2609                 exit
    2610              else
    2611                 find  $ARCHIVE/${frelin[$i]}  -type m  -print  |  dmget
    2612                 cp  -r $ARCHIVE/${frelin[$i]}  $PWD
    2613                 file_restored=true
    2614              fi
    2615           elif [[ $archive_system = tivoli ]]
    2616           then
    2617              if [[ $files_for_pes = false ]]
    2618              then
    2619                 ssh  $SSH_PORTOPT  $usern@bicedata.hlrn.de  "cp  $PERM/${frelin[$i]}  $PWD"
    2620              else
    2621                 (( inode = 0 ))
    2622                 while (( inode < nodes ))
    2623                 do
    2624                    ssh  $SSH_PORTOPT  $usern@bicedata.hlrn.de  "cd $PWD; tar  xf  $PERM/${frelin[$i]}/${frelin[$i]}.node_$inode.tar"
    2625                    (( inode = inode + 1 ))
    2626                 done
    2627              fi
    2628              file_restored=true
    2629           elif [[ $archive_system = ut ]]
    2630           then
    2631              if [[ $files_for_pes = false ]]
    2632              then
    2633                 cp  $UT/${frelin[$i]}  .
    2634              else
    2635                 (( inode = 0 ))
    2636                 while (( inode < nodes ))
    2637                 do
    2638                    tar  xf  $UT/${frelin[$i]}/${frelin[$i]}.node_$inode.tar
    2639                    (( inode = inode + 1 ))
    2640                 done
    2641              fi
    2642              file_restored=true
    2643           else
    2644              printf "\n  +++ archive_system=\"$archive_system\"   restore impossible!"
    2645              locat=rearchive
    2646              exit
    2647           fi
    2648 
    2649           if [[ $file_restored = true ]]
    2650           then
    2651 
    2652                 # PUT FILE ON THE TEMPORARY DATA DIRECTORY TOO.
    2653                 # THIS WILL MAKE FILE ACCESS EASIER FOR LATER RUNS
    2654              [[ ! -d $tmp_data_catalog ]]  &&  mkdir -p  $tmp_data_catalog; chmod  g+rx  $tmp_data_catalog
    2655              if [[ $files_for_pes = false ]]
    2656              then
    2657                 ln  -f  ${frelin[$i]}  $tmp_data_catalog/${frelin[$i]}
    2658              else
    2659                 mkdir  $tmp_data_catalog/${frelin[$i]}
    2660                 ln  -f  ${frelin[$i]}/*  $tmp_data_catalog/${frelin[$i]}
    2661              fi
     2498
    26622499             got_tmp[$i]=true
    2663 
    2664                 # PROVIDE THE FILE UNDER ITS LOCAL NAME
    2665              mv  ${frelin[$i]}  ${localin[$i]}
    2666 
    2667           fi
    2668        fi
    2669 
     2500          fi
     2501       fi
    26702502
    26712503          # FILE IS STORED IN THE RESPECTIVE DIRECTORY GIVEN IN THE CONFIGURATION FILE
     
    27092541                printf "\n      providing $numprocs files for the respective processors"
    27102542                mkdir  ${localin[$i]}
    2711                 if [[ $link_local_input = true ]]
    2712                     then
    2713                     printf "      using ln -f\n"
    2714                     cd ${absnamein[$i]}
    2715                     for file in $(ls *)
    2716                       do
    2717                       ln -f $file  ${localin[$i]}
    2718                     done
    2719                     cd $TEMPDIR
    2720                 fi
     2543                        if [[ $link_local_input = true ]]
     2544                              then
     2545                                 printf "      files will be linked\n"
     2546                                 cd ${absnamein[$i]}
     2547                                 for file in $(ls *)
     2548                                 do
     2549                                    ln -f $file  ${localin[$i]}
     2550                                 done
     2551                                 cd $TEMPDIR
     2552                              fi
    27212553
    27222554                   # IF "ln -f" FAILED OR IF "$link_local_input = false" DO A NORMAL "cp -r"
    2723                 if [[ ! -f "${localin[$i]}/_0000" ]]
    2724                     then
    2725                     if [[ $link_local_input = true ]]
    2726                         then
    2727                         printf "      ln failed for .../_0000, using cp...\n"
    2728                     fi
    2729                     cp -r  ${absnamein[$i]}/*  ${localin[$i]}
    2730                 fi
     2555                              if [[ ! -f "${localin[$i]}/_000000" ]]
     2556                              then
     2557                                 if [[ $link_local_input = true ]]
     2558                                        then
     2559                                        printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
     2560                                 fi
     2561                                 cp -r  ${absnamein[$i]}/*  ${localin[$i]}
     2562                              fi
    27312563
    27322564             else
    27332565
    27342566                   # PROVIDE FILE FOR RUNS ON A SINGLE CORE
    2735                 if [[ $link_local_input = true ]]
    2736                 then
    2737                     printf "      using ln -f\n"
    2738                     ln -f  ${absnamein[$i]}  ${localin[$i]}
    2739                 fi
    2740                 # If "ln -f" fails of if "$link_local_input = false" do a normal "cp"
    2741                 if [[ ! -f "${localin[$i]}" ]]
     2567                        if [[ $link_local_input = true ]]
     2568                        then
     2569                                 printf "      file will be linked\n"
     2570                                 ln -f  ${absnamein[$i]}  ${localin[$i]}
     2571                        fi
     2572                                # If "ln -f" fails of if "$link_local_input = false" do a normal "cp"
     2573                        if [[ ! -f "${localin[$i]}" ]]
    27422574                then
    2743                     if [[ $link_local_input = true ]]
    2744                     then
    2745                         printf "      ln failed, using cp...\n"
    2746                     fi
    2747                     cp  ${absnamein[$i]}  ${localin[$i]}
     2575                                 if [[ $link_local_input = true ]]
     2576                          then
     2577                      printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
     2578                                 fi
     2579                                 cp  ${absnamein[$i]}  ${localin[$i]}
    27482580                fi
    27492581             fi
     
    28372669       # CREATE THE NAMELIST-FILE WITH VALUES OF ENVIRONMENT-VARIABLES REQUIRED BY PALM
    28382670       # (FILE ENVPAR WILL BE READ BY PALM)
    2839     cat  >  ENVPAR  <<  %%END%%
     2671    cat  >  ENVPAR  <<  EOF
    28402672 &envpar  run_identifier = '$fname', host = '$localhost',
    28412673          write_binary = '$write_binary', tasks_per_node = $tasks_per_node,
     
    28462678          batch_job = $batch_job /
    28472679
    2848 %%END%%
     2680EOF
    28492681
    28502682
     
    30402872                fi
    30412873
    3042              elif [[ $host = nech ]]  # running on NEC machines
    3043              then
    3044 
    3045                 (( ii = nodes ))
    3046                 if [[ $ii = 1 ]]
    3047                 then
    3048                    export F_ERRCNT=0        # acceptable number of errors before program is stopped
    3049                    export MPIPROGINF=YES
    3050                    #  export F_TRACE=YES|FMT1|FMT2  # output of ftrace informations to job protocol
    3051                    echo "*** execution on single node with mpirun"
    3052                    mpirun  -np $numprocs  ./a.out
    3053                 else
    3054                    (( i = 0 ))
    3055                    while (( i < ii ))
    3056                    do
    3057                       echo "-h $i  -p $tasks_per_node  -e ./mpi_exec_shell"  >>  multinode_config
    3058                       (( i = i + 1 ))
    3059                    done
    3060 
    3061                    echo "#!/bin/sh"                         >   mpi_exec_shell
    3062                    echo " "                                 >>  mpi_exec_shell
    3063                    echo "set -u"                            >>  mpi_exec_shell
    3064                    echo "F_ERRCNT=0"                        >>  mpi_exec_shell
    3065                    echo "MPIPROGINV=YES"                    >>  mpi_exec_shell
    3066                    echo "OMP_NUM_THREADS=$threads_per_task" >>  mpi_exec_shell
    3067                    echo "cpurest=$cpurest"                  >>  mpi_exec_shell
    3068                    echo "fname=$fname"                      >>  mpi_exec_shell
    3069                    echo "localhost=$localhost"              >>  mpi_exec_shell
    3070                    echo "return_address=$return_address"    >>  mpi_exec_shell
    3071                    echo "return_username=$return_username"  >>  mpi_exec_shell
    3072                    echo "tasks_per_node=$tasks_per_node"    >>  mpi_exec_shell
    3073                    echo "write_binary=$write_binary"        >>  mpi_exec_shell
    3074                    echo "use_seperate_pe_for_dvrp_output=$use_seperate_pe_for_dvrp_output"  >>  mpi_exec_shell
    3075                    echo "  "                                >>  mpi_exec_shell
    3076                    echo "export F_ERRCNT"                   >>  mpi_exec_shell
    3077                    echo "export MPIPROGINV"                 >>  mpi_exec_shell
    3078                    echo "export OMP_NUM_THREADS"            >>  mpi_exec_shell
    3079                    echo "export cpurest"                    >>  mpi_exec_shell
    3080                    echo "export fname"                      >>  mpi_exec_shell
    3081                    echo "export localhost"                  >>  mpi_exec_shell
    3082                    echo "export return_address"             >>  mpi_exec_shell
    3083                    echo "export return_username"            >>  mpi_exec_shell
    3084                    echo "export tasks_per_node"             >>  mpi_exec_shell
    3085                    echo "export write_binary"               >>  mpi_exec_shell
    3086                    echo "export use_seperate_pe_for_dvrp_output"  >>  mpi_exec_shell
    3087                    echo " "                                 >>  mpi_exec_shell
    3088                    echo "exec  ./a.out"                     >>  mpi_exec_shell
    3089 
    3090                    chmod u+x  mpi_exec_shell
    3091                    export MPIPROGINF=YES
    3092                    mpirun  -f multinode_config  &
    3093                    wait
    3094 
    3095                 fi
    3096 
    30972874             elif [[ $(echo $host | cut -c1-2) = lc  &&  $host != lckyoto &&  $host != lctit ]]
    30982875             then
     
    34033180       ls -al
    34043181    fi
    3405 
    3406 
     3182   
    34073183
    34083184       # COPY LOCAL OUTPUT-FILES TO THEIR PERMANENT DESTINATIONS
     
    34133189       if (( i == 1 ))
    34143190       then
    3415           printf "\n\n  *** saving OUTPUT-files:\n$dashes"
    3416        fi
     3191          printf "\n\n  *** saving OUTPUT-files:"
     3192
     3193             # GET RUN NUMBER ASSIGNED BY PALM
     3194          if [[ -f RUN_NUMBER ]]
     3195          then
     3196              read  run_number  <  RUN_NUMBER
     3197              printf "\n  *** PALM generated run_number = "$run_number" will be used as unified cycle number for all output files"
     3198              usecycle_option="-U $run_number"
     3199          else
     3200              run_number=0
     3201              usecycle_option=""
     3202          fi
     3203          printf "\n$dashes"
     3204       fi
     3205
     3206          # ADD CYCLE NUMBER TO FILENAME
     3207       if [[ ! ( $fromhost != $localhost  &&  ( "${actionout[$i]}" = tr || "${actionout[$i]}" = tra || "${actionout[$i]}" = trpe ) ) ]]
     3208       then
     3209
     3210              # IN APPEND MODE, FILES KEEP THEIR CURRENT CYCLE NUMBER
     3211          if [[ "${actionout[$i]}" != "a" ]]
     3212          then
     3213                # SET RUN NUMBER AS CYCLE NUMBER, IF THERE IS NOT A CONFLICT
     3214                # WITH AN EXISTING CYCLE NUMBER
     3215             if (( run_number >= cycnum[$i] ))
     3216             then
     3217                (( cycnum[$i] = run_number ))
     3218             else
     3219                if (( run_number > 0 ))
     3220                then
     3221                   printf "\n  --- INFORMATIVE: The following file cannot get a unified cycle number"
     3222                fi
     3223             fi
     3224          fi
     3225          if (( cycnum[$i] > 0 ))
     3226          then
     3227             pathout[$i]=${pathout[$i]}.${cycnum[$i]}
     3228          fi
     3229       fi           
    34173230
    34183231          # CHECK FOR SINGLE FILE (SERIAL RUN) OR DIRECTORY (ONE FILE PER CORE FOR PARELLEL EXECUTION)
    34193232       files_for_pes=false; filetyp=file
     3233       link_local_output=false
    34203234       if [[ "${actionout[$i]}" = pe  &&  -n $numprocs ]]
    34213235       then
     
    34253239       then
    34263240          actionout[$i]=""
    3427        elif [[ "${actionout[$i]}" = arpe  &&  -n $numprocs ]]
     3241       elif [[ "${actionout[$i]}" = lnpe  &&  -n $numprocs ]]
    34283242       then
    34293243          files_for_pes=true; filetyp=directory
    3430           actionout[$i]="ar"
    3431        elif [[ "${actionout[$i]}" = arpe  &&  ! -n $numprocs ]]
    3432        then
    3433           actionout[$i]="ar"
    3434        elif [[ "${actionout[$i]}" = flpe  &&  -n $numprocs ]]
    3435        then
    3436           files_for_pes=true; filetyp=directory
    3437           actionout[$i]="fl"
    3438        elif [[ "${actionout[$i]}" = flpe  &&  ! -n $numprocs ]]
    3439        then
    3440           actionout[$i]="fl"
     3244          link_local_output=true
     3245          actionout[$i]=""
     3246       elif [[ "${actionout[$i]}" = lnpe  &&  ! -n $numprocs ]]
     3247       then
     3248          link_local_output
     3249          actionout[$i]=""
    34413250       elif [[ "${actionout[$i]}" = trpe  &&  -n $numprocs ]]
    34423251       then
     
    34713280                   cst="/"
    34723281                fi
    3473                 if [[ $localhost = nech ]]
     3282
     3283                transfer_failed=false
     3284                printf "\n  >>> OUTPUT: ${localout[$i]}$cst  by SCP to"
     3285                printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}$cst\n"
     3286                if [[ $localhost = lccrayb ]]
     3287                then
     3288                   ssh $usern@blogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3289                elif [[ $localhost = lccrayh ]]
     3290                then
     3291                   ssh $usern@hlogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3292                elif [[ $localhost = lcbullhh ]]
     3293                then
     3294                   ssh $usern@mlogin101 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3295                elif [[ $localhost = lcxe6 ]]
     3296                then
     3297                   ssh $usern@hexagon ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3298                else
     3299                   batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
     3300                fi
     3301                [[ $? != 0 ]]  &&  transfer_failed=true
     3302
     3303                   # IF TRANSFER FAILED, CREATE BACKUP COPY ON THIS MACHINE
     3304                if [[ $transfer_failed = true ]]
     3305                then
     3306                   printf "  +++ transfer failed. Trying to save a copy on this host under:\n"
     3307                   printf "      ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung\n"
     3308
     3309                      # FIRST CHECK, IF DIRECTORY EXISTS, AND CREATE IT, IF NECESSARY
     3310                   eval  local_catalog=${pathout[$i]}
     3311                   if [[ ! -d $local_catalog ]]
     3312                   then
     3313                      printf "  *** local directory does not exist. Trying to create:\n"
     3314                      printf "      $local_catalog \n"
     3315                      mkdir -p  $local_catalog
     3316                   fi
     3317                   eval  cp  ${localout[$i]}  ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung
     3318                   transfer_problems=true
     3319                fi
     3320
     3321             else
     3322
     3323                   # UNSET actionout. DUE TO THIS SETTING, FILE WILL LATER JUST BE COPIED ON THIS MACHINE
     3324                actionout[$i]=""
     3325             fi
     3326          fi
     3327
     3328
     3329             # APPEND VIA SCP TO LOCAL HOST (ALWAYS IN BINARY MODE USING batch_scp option -m)
     3330             # IF TARGET DIRECTORY DOES NOT EXISTS, TRY TO CREATE IT
     3331          if [[ "${actionout[$i]}" = tra ]]
     3332          then
     3333             if [[ $localhost != $fromhost ]]
     3334             then
     3335                if [[ $localhost = ibmh ]]
    34743336                then
    34753337
     
    34783340                   [[ ! -d $tmp_data_catalog/TRANSFER ]]  &&  mkdir -p  $tmp_data_catalog/TRANSFER
    34793341                   file_to_transfer=${fname}_${localout[$i]}_to_transfer_$kennung
    3480                    if [[ $files_for_pes = false ]]
    3481                    then
    3482                       ln -f  ${localout[$i]}  $tmp_data_catalog/TRANSFER/$file_to_transfer
    3483                    else
    3484                       mkdir  $tmp_data_catalog/TRANSFER/$file_to_transfer
    3485                       ln  ${localout[$i]}/*  $tmp_data_catalog/TRANSFER/$file_to_transfer
    3486                    fi
     3342                   ln -f  ${localout[$i]}  $tmp_data_catalog/TRANSFER/$file_to_transfer
    34873343
    34883344                   echo "set -x"                                    >    transfer_${localout[$i]}
    34893345                   echo "cd  $tmp_data_catalog/TRANSFER"            >>   transfer_${localout[$i]}
    34903346
    3491                    printf "\n  >>> OUTPUT: ${localout[$i]}$cst by SCP in seperate job to"
    3492                    printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}$cst"
     3347                   printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP in seperate job to"
     3348                   printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}"
    34933349                   printf "\n              or higher cycle\n"
    3494                    echo "batch_scp $PORTOPT $cps -b -m -u $return_username $return_address  $file_to_transfer \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"  >>  transfer_${localout[$i]}
     3350                   echo "batch_scp $PORTOPT -A -b -m -u $return_username $return_address  $file_to_transfer \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"  >>  transfer_${localout[$i]}
    34953351
    34963352                   echo "[[ \$? = 0 ]]  &&  rm  $file_to_transfer"  >>  transfer_${localout[$i]}
    34973353
    3498                    if [[ $localhost = nech ]]
     3354                   if [[ $LOGNAME = b323013 ]]
    34993355                   then
    3500                       subjob  -d  -c /pf/b/$usern/job_queue  -v  -q pp  -X 0  -m 1000  -t 900  $PORTOPT  transfer_${localout[$i]}
     3356                      subjob  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    35013357                   else
    3502                       if [[ "$LOGNAME" = b323013 ]]
    3503                       then
    3504                          subjob  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    3505                       else
    3506                          subjob  -d  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    3507                       fi
     3358                      subjob  -d  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    35083359                   fi
    35093360
     
    35123363                      # TRANSFER WITHIN THIS JOB
    35133364                   transfer_failed=false
    3514                    printf "\n  >>> OUTPUT: ${localout[$i]}$cst by SCP to"
    3515                    printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}$cst\n"
     3365                   printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP to"
     3366                   printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}\n"
    35163367                   if [[ $localhost = lccrayb ]]
    35173368                   then
    3518                       ssh $usern@blogin1 ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3369                      ssh $usern@blogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    35193370                   elif [[ $localhost = lccrayh ]]
    35203371                   then
    3521                       ssh $usern@hlogin1 ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    3522                    elif [[ $localhost = lcbullhh ]]
    3523                    then
    3524                       ssh $usern@mlogin101 ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3372                      ssh $usern@hlogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    35253373                   elif [[ $localhost = lcxe6 ]]
    35263374                   then
    3527                       ssh $usern@hexagon ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
     3375                      ssh $usern@hexagon ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    35283376                   else
    3529                       batch_scp $PORTOPT $cps -b -m -u $return_username $return_address ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
     3377                      batch_scp $PORTOPT -A -b -m -u $return_username  $return_address ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
    35303378                   fi
    35313379                   [[ $? != 0 ]]  &&  transfer_failed=true
     
    35453393                         mkdir -p  $local_catalog
    35463394                      fi
     3395
    35473396                      eval  cp  ${localout[$i]}  ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung
    35483397                      transfer_problems=true
     
    35513400             else
    35523401
    3553                    # UNSET actionout. DUE TO THIS SETTING, FILE WILL LATER JUST BE COPIED ON THIS MACHINE
    3554                 actionout[$i]=""
    3555              fi
    3556           fi
    3557 
    3558 
    3559              # APPEND VIA SCP TO LOCAL HOST (ALWAYS IN BINARY MODE USING batch_scp option -m)
    3560              # IF TARGET DIRECTORY DOES NOT EXISTS, TRY TO CREATE IT
    3561           if [[ "${actionout[$i]}" = tra ]]
    3562           then
    3563              if [[ $localhost != $fromhost ]]
    3564              then
    3565                 if [[ $localhost = ibmh  ||  $localhost = nech ]]
    3566                 then
    3567 
    3568                       # TRANSFER IN SEPERATE JOB
    3569                       # FIRST COPY FILE TO TEMPORY DATA DIRECTORY
    3570                    [[ ! -d $tmp_data_catalog/TRANSFER ]]  &&  mkdir -p  $tmp_data_catalog/TRANSFER
    3571                    file_to_transfer=${fname}_${localout[$i]}_to_transfer_$kennung
    3572                    ln -f  ${localout[$i]}  $tmp_data_catalog/TRANSFER/$file_to_transfer
    3573 
    3574                    echo "set -x"                                    >    transfer_${localout[$i]}
    3575                    echo "cd  $tmp_data_catalog/TRANSFER"            >>   transfer_${localout[$i]}
    3576 
    3577                    printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP in seperate job to"
    3578                    printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}"
    3579                    printf "\n              or higher cycle\n"
    3580                    echo "batch_scp $PORTOPT -A -b -m -u $return_username $return_address  $file_to_transfer \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"  >>  transfer_${localout[$i]}
    3581 
    3582                    echo "[[ \$? = 0 ]]  &&  rm  $file_to_transfer"  >>  transfer_${localout[$i]}
    3583 
    3584                    if [[ $localhost = nech ]]
    3585                    then
    3586                       subjob  -d  -c /pf/b/$usern/job_queue  -v  -q pp  -X 0  -m 1000  -t 900  $PORTOPT  transfer_${localout[$i]}
    3587                    else
    3588                       if [[ $LOGNAME = b323013 ]]
    3589                       then
    3590                          subjob  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    3591                       else
    3592                          subjob  -d  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
    3593                       fi
    3594                    fi
    3595 
    3596                 else
    3597 
    3598                       # TRANSFER WITHIN THIS JOB
    3599                    transfer_failed=false
    3600                    printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP to"
    3601                    printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}\n"
    3602                    if [[ $localhost = lccrayb ]]
    3603                    then
    3604                       ssh $usern@blogin1 ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    3605                    elif [[ $localhost = lccrayh ]]
    3606                    then
    3607                       ssh $usern@hlogin1 ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    3608                    elif [[ $localhost = lcxe6 ]]
    3609                    then
    3610                       ssh $usern@hexagon ". \\$HOME/.profile; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
    3611                    else
    3612                       batch_scp $PORTOPT -A -b -m -u $return_username  $return_address ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
    3613                    fi
    3614                    [[ $? != 0 ]]  &&  transfer_failed=true
    3615 
    3616                       # IF TRANSFER FAILED, CREATE BACKUP COPY ON THIS MACHINE
    3617                    if [[ $transfer_failed = true ]]
    3618                    then
    3619                       printf "  +++ transfer failed. Trying to save a copy on this host under:\n"
    3620                       printf "      ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung\n"
    3621 
    3622                          # FIRST CHECK, IF DIRECTORY EXISTS, AND CREATE IT, IF NECESSARY
    3623                       eval  local_catalog=${pathout[$i]}
    3624                       if [[ ! -d $local_catalog ]]
    3625                       then
    3626                          printf "  *** local directory does not exist. Trying to create:\n"
    3627                          printf "      $local_catalog \n"
    3628                          mkdir -p  $local_catalog
    3629                       fi
    3630 
    3631                       eval  cp  ${localout[$i]}  ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung
    3632                       transfer_problems=true
    3633                    fi
    3634                 fi
    3635              else
    3636 
    36373402                   # RESET actionout. DUE TO THIS SETTING, FILE WILL LATER JUST BE APPENDED ON THIS MACHINE
    36383403                actionout[$i]=a
     
    36403405          fi
    36413406
    3642 
    3643              # OUTPUT-FILE FOR A RESTART-RUN.
    3644              # FILE IS MOVED TO THE TEMPORARY DATA DIRECTORY USING link COMMAND.
    3645              # OPTION -f IS USED TO OVERWRITE EXISTING FILES.
    3646              # AS LAST ACTION, ARCHIVING IS INITIATED.
    3647           if [[ "${actionout[$i]}" = fl ]]
    3648           then
    3649              [[ ! -d $tmp_data_catalog ]]  &&  mkdir -p  $tmp_data_catalog
    3650              chmod  g+rx  $tmp_data_catalog
    3651              if [[ $files_for_pes = false ]]
    3652              then
    3653                 printf "\n  >>> OUTPUT: ${localout[$i]}  to"
    3654                 printf "\n              $tmp_data_catalog/${frelout[$i]} (temporary data catalog)\n"
    3655                 ln -f  ${localout[$i]}  $tmp_data_catalog/${frelout[$i]}
    3656              else
    3657                 printf "\n  >>> OUTPUT: ${localout[$i]}/....  to"
    3658                 printf "\n              $tmp_data_catalog/${frelout[$i]} (temporary data catalog)\n"
    3659                 mkdir  $tmp_data_catalog/${frelout[$i]}
    3660                 cd ${localout[$i]}
    3661                 for file in $(ls *)
    3662                 do
    3663                    ln -f $file $tmp_data_catalog/${frelout[$i]}
    3664                 done
    3665                 cd $TEMPDIR
    3666              fi
    3667 
    3668 
    3669                 # CREATE AND SUBMIT ARCHIVING-JOB
    3670              if [[ $store_on_archive_system = true ]]
    3671              then
    3672 
    3673                 if [[ $archive_system = asterix ]]
    3674                 then
    3675                    echo "cd  $tmp_data_catalog"                      >> archive_${frelout[$i]}
    3676                    if [[ $files_for_pes = false ]]
    3677                    then
    3678                       echo "stageout  ${frelout[$i]}  > STAGE_OUTPUT${i}_$kennung" >> archive_${frelout[$i]}
    3679                    else
    3680                       echo "stageout -t  ${frelout[$i]}  > STAGE_OUTPUT${i}_$kennung" >> archive_${frelout[$i]}
    3681                    fi
    3682                    echo "cat  STAGE_OUTPUT${i}_$kennung"               >> archive_${frelout[$i]}
    3683                    echo "if [[ \$(grep -c \"st.msg:150\"  STAGE_OUTPUT${i}_$kennung) != 0 ]]" >> archive_${frelout[$i]}
    3684                    echo "then"                                       >> archive_${frelout[$i]}
    3685                    echo "   do_stageout=false"                       >> archive_${frelout[$i]}
    3686                    echo "else"                                       >> archive_${frelout[$i]}
    3687                    echo "   echo \"  +++ $filetyp ${frelout[$i]}  could not be stored on archive-system\" " >> archive_${frelout[$i]}
    3688                    echo "   cat  /dev/null  >  ~/job_queue/ARCHIVE_ERROR_$fname" >> archive_${frelout[$i]}
    3689                    echo "   cat  STAGE_OUTPUT${i}_$kennung  >  ~/job_queue/archive_${frelout[$i]}_error" >> archive_${frelout[$i]}
    3690                    echo "   echo \"  *** $filetyp ${frelout[$i]} will be copied to \$WORK as backup\" " >> archive_${frelout[$i]}
    3691                    if [[ $files_for_pes = false ]]
    3692                    then
    3693                       echo "   cp   ${frelout[$i]}  \$WORK"                    >> archive_${frelout[$i]}
    3694                    else
    3695                       echo "   cp -r  ${frelout[$i]}  \$WORK/${frelout[$i]}"   >> archive_${frelout[$i]}
    3696                    fi
    3697                    echo "   echo \"  *** $filetyp ${frelout[$i]} saved\" " >> archive_${frelout[$i]}
    3698                    echo "fi"                                         >> archive_${frelout[$i]}
    3699                    echo "rm  STAGE_OUTPUT${i}_$kennung"              >> archive_${frelout[$i]}
    3700                 elif [[ $archive_system = DMF ]]
    3701                 then
    3702                    echo "cd  $tmp_data_catalog"                      >> archive_${frelout[$i]}
    3703                    if [[ $files_for_pes = false ]]
    3704                    then
    3705                       printf "\n  +++ archiving of single files impossible with $archive_system !\n"
    3706                       locat=DMF
    3707                       exit
    3708                    else
    3709                          # ??? nicht benötigte Archiv-Systeme entfernen ???
    3710                          # FUER RECHNER IN JUELICH. DORT KOENNTEN AUCH
    3711                          # EINZELNE DATEIEN GESICHERT WERDEN (SPAETER KORR.)
    3712                       echo "rm -rf  \$ARCHIVE/${frelout[$i]}"     >> archive_${frelout[$i]}
    3713                       echo "cp -r  ${frelout[$i]}  \$ARCHIVE"     >> archive_${frelout[$i]}
    3714                    fi
    3715                 elif [[ $archive_system = tivoli ]]
    3716                 then
    3717                    echo "cd  $tmp_data_catalog"                       >> archive_${frelout[$i]}
    3718                    if [[ $files_for_pes = false ]]
    3719                    then
    3720                          # REMOVE EXISTING OLD FILES FROM THE ARCHIVE
    3721                       echo "set -x"                                   >> archive_${frelout[$i]}
    3722                       echo "rm  -rf  \$PERM/${frelout[$i]}"           >> archive_${frelout[$i]}
    3723                       echo "cp  ${frelout[$i]} \$PERM/${frelout[$i]}" >> archive_${frelout[$i]}
    3724                    else
    3725 
    3726                       echo "set -x"                                   >> archive_${frelout[$i]}
    3727                       echo "rm  -rf  \$PERM/${frelout[$i]}/*"         >> archive_${frelout[$i]}
    3728                       echo "[[ ! -d \$PERM/${frelout[$i]} ]] && mkdir $PERM/${frelout[$i]}" >> archive_${frelout[$i]}
    3729                       cd  $tmp_data_catalog
    3730                       all_files=`ls -1 ${frelout[$i]}/*`
    3731                       cd -  > /dev/null
    3732                       (( inode = 0 ))
    3733                       (( tp1   = tasks_per_node + 1 ))
    3734                       while (( inode < nodes ))
    3735                       do
    3736                          files=`echo $all_files | cut -d" " -f1-$tasks_per_node`
    3737                          all_files=`echo $all_files | cut -d" " -f$tp1-`
    3738                          echo "tar  cvf \$PERM/${frelout[$i]}/${frelout[$i]}.node_$inode.tar $files"   >> archive_${frelout[$i]}
    3739                          (( inode = inode + 1 ))
    3740                       done
    3741                    fi
    3742                 elif [[ $archive_system = ut ]]
    3743                 then
    3744                    echo "cd  $tmp_data_catalog"                       >> archive_${frelout[$i]}
    3745                    if [[ $files_for_pes = false ]]
    3746                    then
    3747                          # REMOVE EXISTING OLD FILES FROM THE ARCHIVE
    3748                       echo "set -x"                                 >> archive_${frelout[$i]}
    3749                       echo "rm  -rf  \$UT/${frelout[$i]}"           >> archive_${frelout[$i]}
    3750                       echo "cp  ${frelout[$i]} \$UT/${frelout[$i]}" >> archive_${frelout[$i]}
    3751                    else
    3752 
    3753                       echo "set -x"                                 >> archive_${frelout[$i]}
    3754                       echo "rm  -rf  \$UT/${frelout[$i]}/*"         >> archive_${frelout[$i]}
    3755                       echo "[[ ! -d \$UT/${frelout[$i]} ]] && mkdir $UT/${frelout[$i]}" >> archive_${frelout[$i]}
    3756                       cd  $tmp_data_catalog
    3757                       all_files=`ls -1 ${frelout[$i]}/*`
    3758                       cd -  > /dev/null
    3759                       (( inode = 0 ))
    3760                       (( tp1   = tasks_per_node + 1 ))
    3761                       while (( inode < nodes ))
    3762                       do
    3763                          files=`echo $all_files | cut -d" " -f1-$tasks_per_node`
    3764                          all_files=`echo $all_files | cut -d" " -f$tp1-`
    3765                          echo "tar  cvf \$UT/${frelout[$i]}/${frelout[$i]}.node_$inode.tar $files"   >> archive_${frelout[$i]}
    3766                          (( inode = inode + 1 ))
    3767                       done
    3768                    fi
    3769                 elif [[ $archive_system = none ]]
    3770                 then
    3771                    printf "              +++ archiving on $localhost not available!\n"
    3772                 fi
    3773 
    3774                 if [[ $archive_system != none ]]
    3775                 then
    3776                    if [[ $localhost = nech ]]
    3777                    then
    3778                       subjob  -d  -c /pf/b/$usern/job_queue  -v  -q pp  -X 0  -m 1000  -t 7200  $PORTOPT  archive_${frelout[$i]}
    3779                    fi
    3780                    printf "              Archiving of $tmp_data_catalog/${frelout[$i]} initiated (batch job submitted)\n"
    3781                 fi
    3782              else
    3783                 printf "              +++ caution: option -A is switched off. No archiving on $archive_system!\n"
    3784              fi
    3785 
    3786 
    3787                 # CREATE AN EMPTY DIRECTORY IN THE USERS PERMANENT DIRECTORY,
    3788                 # IN ORDER TO NOTE THE RESPECTIVE CYCLE NUMBER ON THE ARCHIVE SYSTEM
    3789                 # RESTART-JOBS ARE USING THESE EMPTY-DIRECTORIES TO GET THE CURRENT HIGHEST
    3790                 # CYCLE NUMBER ON THE ARCHIVE SYSTEM (IN CASE THAT INFORMATIONS ARE DIFFICULT TO
    3791                 # TO ACCESS FROM THE ARCHIVE-SYSTEM DIRECTLY))
    3792              if [[ $files_for_pes = false ]]
    3793              then
    3794                 cat  /dev/null  >  ${pathout[$i]}
    3795              else
    3796                 mkdir -p  ${pathout[$i]}
    3797              fi
    3798 
    3799           fi
    3800 
    3801 
    3802              # COPY FROM THIS HOST TO THE ARCHIVE-SYSTEM
    3803              # IF ANY ARCHIVING FAILS, AN ERROR-FLAG-FILE IS SET
    3804              # THIS FILE REMAINS TO BE SET, EVEN IF ARCHIVING OF FURTHER FILES IS SUCCESSFULL
    3805           if [[ "${actionout[$i]}" = ar ]]
    3806           then
    3807              if [[ $files_for_pes = false ]]
    3808              then
    3809                 printf "\n  >>> OUTPUT: ${localout[$i]}  to"
    3810                 printf "\n              ${pathout[$i]}"
    3811                 printf "\n              File will be copied to archive-system ($archive_system) !\n"
    3812              else
    3813                 printf "\n  >>> OUTPUT: ${localout[$i]}/_....  to"
    3814                 printf "\n              ${pathout[$i]}"
    3815                 printf "\n              Directory will be copied to archive-system ($archive_system) !\n"
    3816              fi
    3817              mv  ${localout[$i]}  ${frelout[$i]}
    3818 
    3819              file_saved=false
    3820 
    3821              if [[ $archive_system = asterix ]]
    3822              then
    3823                 do_stageout=true
    3824                 (( stageout_anz = 0 ))
    3825                 while [[ $do_stageout = true ]]
    3826                 do
    3827                    if [[ $files_for_pes = false ]]
    3828                    then
    3829                       stageout  ${frelout[$i]}  > STAGE_OUTPUT
    3830                    else
    3831                       stageout  -t  ${frelout[$i]}  > STAGE_OUTPUT
    3832                    fi
    3833                    cat  STAGE_OUTPUT
    3834                    if [[ $(grep -c "st.msg:150"  STAGE_OUTPUT) != 0 ]]
    3835                    then
    3836                       file_saved=true
    3837                       do_stageout=false
    3838                    else
    3839                       if [[ $files_for_pes = false ]]
    3840                       then
    3841                          printf "\n  +++ file ${frelout[$i]}  could not be saved on archive-system"
    3842                       else
    3843                          printf "\n  +++ directory ${frelout[$i]} could not be saved on archive-system"
    3844                       fi
    3845                       (( stageout_anz = stageout_anz + 1 ))
    3846                       if (( stageout_anz == 10 ))
    3847                       then
    3848                          printf "\n  +++ stoped after 10 unsuccessful tries!"
    3849                          archive_save=false
    3850                          do_stageout=false
    3851                       else
    3852                          printf "\n  *** new try to store on archive after 15 min:"
    3853                          sleep 900
    3854                       fi
    3855                    fi
    3856                 done
    3857              elif [[ $archive_system = DMF ]]
    3858              then
    3859                 if [[ $files_for_pes = false ]]
    3860                 then
    3861                    printf "\n  +++ archiving of single files impossible on $archive_system!\n"
    3862                    locat=DMF
    3863                    exit
    3864                 else
    3865                    rm -rf  $ARCHIVE/${frelout[$i]}
    3866                    cp -r  ${frelout[$i]}  $ARCHIVE
    3867                 fi
    3868                 file_saved=true
    3869              elif [[ $archive_system = tivoli ]]
    3870              then
    3871                    # ARCHIVING ONLY POSSIBLE VIA BATCH-JOB
    3872                    # IN THE MEANTIME, FILE IS STORED IN THE TEMPORARY DATA DIRECTORY,
    3873                    # BECAUSE MRUN'S CURRENT TEMPORARY WORKING DIRECTORY MAY ALREADY BE DELETED
    3874                    # WHEN THE ARCHIVE-JOB IS EXECUTED
    3875                 [[ ! -d $tmp_data_catalog ]]  &&  mkdir -p  $tmp_data_catalog
    3876                 chmod  g+rx  $tmp_data_catalog
    3877                 if [[ $files_for_pes = false ]]
    3878                 then
    3879                    ln -f  ${frelout[$i]}  $tmp_data_catalog/${frelout[$i]}
    3880                 else
    3881                    mkdir  $tmp_data_catalog/${frelout[$i]}
    3882                    ln -f  ${frelout[$i]}/*  $tmp_data_catalog/${frelout[$i]}
    3883                 fi
    3884 
    3885                    # GENERATE AND SUBMIT BATCH-JOB
    3886                    # FILE HAS TO BE DELETED FROM THE TEMPORARY DATA DIRECTORY
    3887                    # DELETE OLD EXISTING FILES FROM THE ARCHIVE
    3888                 echo "cd  $tmp_data_catalog"                       >  archive_${frelout[$i]}
    3889                 if [[ $files_for_pes = false ]]
    3890                 then
    3891                    echo "rm  -rf  \$PERM/${frelout[$i]}"           >> archive_${frelout[$i]}
    3892                    echo "cp  ${frelout[$i]} \$PERM/${frelout[$i]}" >> archive_${frelout[$i]}
    3893                    echo "rm  -rf  ${frelout[$i]}"                  >> archive_${frelout[$i]}
    3894                 else
    3895                    echo "rm  -rf  \$PERM/${frelout[$i]}.tar"       >> archive_${frelout[$i]}
    3896                    echo "tar  cvf \$PERM/${frelout[$i]}.tar ${frelout[$i]}" >> archive_${frelout[$i]}
    3897                    echo "rm  -rf  ${frelout[$i]}"                  >> archive_${frelout[$i]}
    3898                 fi
    3899 
    3900                 subjob  -v  -d  -q cdata  -X 0  -m 1000  -t 43200  -c $job_catalog  $PORTOPT  archive_${frelout[$i]}
    3901                 printf "              Archiving of $tmp_data_catalog/${frelout[$i]} initiated (batch job submitted)\n"
    3902                 file_saved=true
    3903 
    3904              elif [[ $archive_system = ut ]]
    3905              then
    3906                    # ARCHIVING ONLY POSSIBLE VIA BATCH-JOB
    3907                    # IN THE MEANTIME, FILE IS STORED IN THE TEMPORARY DATA DIRECTORY,
    3908                    # BECAUSE MRUN'S CURRENT TEMPORARY WORKING DIRECTORY MAY ALREADY BE DELETED
    3909                    # WHEN THE ARCHIVE-JOB IS EXECUTED
    3910                 [[ ! -d $tmp_data_catalog ]]  &&  mkdir -p  $tmp_data_catalog
    3911                 chmod  g+rx  $tmp_data_catalog
    3912                 if [[ $files_for_pes = false ]]
    3913                 then
    3914                    ln -f  ${frelout[$i]}  $tmp_data_catalog/${frelout[$i]}
    3915                 else
    3916                    mkdir  $tmp_data_catalog/${frelout[$i]}
    3917                    ln -f  ${frelout[$i]}/*  $tmp_data_catalog/${frelout[$i]}
    3918                 fi
    3919 
    3920                    # GENERATE AND SUBMIT BATCH-JOB
    3921                    # FILE HAS TO BE DELETED FROM THE TEMPORARY DATA DIRECTORY
    3922                    # DELETE OLD EXISTING FILES FROM THE ARCHIVE
    3923                 echo "cd  $tmp_data_catalog"                       >  archive_${frelout[$i]}
    3924                 if [[ $files_for_pes = false ]]
    3925                 then
    3926                    echo "rm  -rf  \$UT/${frelout[$i]}"           >> archive_${frelout[$i]}
    3927                    echo "cp  ${frelout[$i]} \$UT/${frelout[$i]}" >> archive_${frelout[$i]}
    3928                    echo "rm  -rf  ${frelout[$i]}"                >> archive_${frelout[$i]}
    3929                 else
    3930                    echo "rm  -rf  \$UT/${frelout[$i]}.tar"       >> archive_${frelout[$i]}
    3931                    echo "tar  cvf \$UT/${frelout[$i]}.tar ${frelout[$i]}" >> archive_${frelout[$i]}
    3932                    echo "rm  -rf  ${frelout[$i]}"                >> archive_${frelout[$i]}
    3933                 fi
    3934 
    3935                 subjob  -v  -c /pf/b/$usern/job_queue  -d  -q pp  -X 0  -m 1000  -t 7200  $PORTOPT  archive_${frelout[$i]}
    3936                 printf "              Archiving of $tmp_data_catalog/${frelout[$i]} initiated (batch job submitted)\n"
    3937                 file_saved=true
    3938 
    3939              else
    3940                 printf "\n  +++ archive_system=\"$archive_system\"  archiving impossible!"
    3941                 archive_save=false
    3942              fi
    3943 
    3944                 # CREATE EMPTY FLAG-FILE OR -DIRECTORY
    3945                 # IN ORDER TO NOTE THE RESPECTIVE CYCLE NUMBER ON THE ARCHIVE SYSTEM
    3946                 # RESTART-JOBS ARE USING THESE EMPTY-DIRECTORIES TO GET THE CURRENT HIGHEST
    3947                 # CYCLE NUMBER ON THE ARCHIVE SYSTEM (IN CASE THAT INFORMATIONS ARE DIFFICULT TO
    3948                 # TO ACCESS FROM THE ARCHIVE-SYSTEM DIRECTLY))
    3949              if [[ $file_saved = true ]]
    3950              then
    3951                 if [[ $files_for_pes = false ]]
    3952                 then
    3953                    cat  /dev/null  >  ${pathout[$i]}
    3954                 else
    3955                    mkdir -p  ${pathout[$i]}
    3956                 fi
    3957              fi
    3958 
    3959           fi
    39603407
    39613408             # APPEND ON THIS MACHINE
     
    39823429             then
    39833430                printf "\n  >>> OUTPUT: ${localout[$i]}  to  ${pathout[$i]}.${extout[$i]}\n"
    3984                 if [[ $link_local_output = true ]]
    3985                 then
    3986                     printf "      using ln -f\n"
    3987                     ln -f  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
    3988                 fi
    3989                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
    3990                 if [[ ! -f "${pathout[$i]}.${extout[$i]}" ]]
     3431                              if [[ $link_local_output = true ]]
     3432                              then
     3433                                 printf "      file will be linked\n"
     3434                                 ln -f  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
     3435                              fi
     3436                                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
     3437                              if [[ ! -f "${pathout[$i]}.${extout[$i]}" ]]
    39913438                then
    3992                     if [[ $link_local_output = true ]]
    3993                     then
    3994                         printf "      ln failed, using cp...\n"
    3995                     fi
    3996                     cp  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
     3439                                 if [[ $link_local_output = true ]]
     3440                          then
     3441                      printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
     3442                                 fi
     3443                                 cp  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
     3444                              else
     3445                   printf "+++ no copy because file ${pathout[$i]}.${extout[$i]} exists\n"
    39973446                fi
    39983447             else
    39993448                printf "\n  >>> OUTPUT: ${localout[$i]}  to  ${pathout[$i]}\n"
    4000                 if [[ $link_local_output = true ]]
    4001                 then
    4002                     printf "      using ln -f\n"
    4003                     ln -f  ${localout[$i]}  ${pathout[$i]}
    4004                 fi
    4005                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
    4006                 if [[ ! -f "${pathout[$i]}" ]]
     3449                              if [[ $link_local_output = true ]]
     3450                              then
     3451                                 printf "      file will be linked\n"
     3452                                 ln -f  ${localout[$i]}  ${pathout[$i]}
     3453                              fi
     3454                                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
     3455                        if [[ ! -f "${pathout[$i]}" ]]
    40073456                then
    4008                     if [[ $link_local_output = true ]]
    4009                     then
    4010                         printf "      ln failed, using cp...\n"
    4011                     fi
    4012                     cp  ${localout[$i]}  ${pathout[$i]}
     3457                                 if [[ $link_local_output = true ]]
     3458                          then
     3459                      printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
     3460                                 fi
     3461                                 cp  ${localout[$i]}  ${pathout[$i]}
     3462                              else
     3463                                 printf "+++ no copy because file ${pathout[$i]} exists\n"
    40133464                fi
    40143465             fi
     
    40203471                # AS A FIRST STEP, THE PERMANENT DIRECTORY IS CREATED
    40213472             printf "\n  >>> OUTPUT: ${localout[$i]}/_....  to  ${pathout[$i]}\n"
    4022              if [[ $link_local_output = true ]]
    4023              then
    4024                  printf "      using ln -f\n"
    4025                  mkdir  ${pathout[$i]}
    4026                  cd ${localout[$i]}
    4027                  for file in $(ls *)
    4028                  do
    4029                    ln -f $file  ${pathout[$i]}
    4030                  done
    4031                  cd $TEMPDIR
    4032              fi
     3473                    if [[ $link_local_output = true ]]
     3474                    then
     3475                              printf "      files will be linked\n"
     3476                              mkdir  ${pathout[$i]}
     3477                              cd ${localout[$i]}
     3478                              for file in $(ls *)
     3479                              do
     3480                                 ln -f $file  ${pathout[$i]}
     3481                              done >|/dev/null 2>&1
     3482                              cd $TEMPDIR
     3483                    fi
    40333484
    40343485                # IF "ln -f" HAS FAILED OR IF "$link_local_output = false" DO A NORMAL COPY "cp -r"
    4035              if [[ ! -f "${pathout[$i]}/_0000" ]]
     3486                    if [[ ! -f "${pathout[$i]}/_000000" ]]
    40363487             then
    4037                  if [[ $link_local_output = true ]]
    4038                  then
    4039                      printf "      ln failed for .../_0000, using cp...\n"
    4040                  fi
    4041                  cp -r  ${localout[$i]}  ${pathout[$i]}
    4042              fi
     3488                              if [[ $link_local_output = true ]]
     3489                              then
     3490                   printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
     3491                              fi
     3492                              cp -r  ${localout[$i]}/*  ${pathout[$i]}
     3493             fi
    40433494
    40443495          fi
     
    40623513    then
    40633514
    4064        if [[ $archive_save = true ]]
    4065        then
    4066 
    4067              # ADD RESTART-OPTIONS TO THE MRUN-CALL (IF THEY ARE NOT USED ALREADY):
    4068              # -C TELLS MRUN THAT IT IS A RESTART-RUN
    4069              # -v SILENT MODE WITHOUT INTERACTIVE QUERIES
    4070              # -n BATCH-MODE (IMPORTANT ONLY IN CASE OF BATCH JOBS ON THE LOCAL MACHINE)
    4071           [[ $(echo $mc | grep -c "\-C") = 0 ]]  &&  mc="$mc -C"
    4072           [[ $(echo $mc | grep -c "\-v") = 0 ]]  &&  mc="$mc -v"
    4073           [[ $(echo $mc | grep -c "\-b") = 0 ]]  &&  mc="$mc -b"
    4074           if [[ $(echo $mc | grep -c "#") != 0 ]]
    4075           then
    4076              mc=`echo $mc | sed 's/#/f/g'`
    4077           fi
    4078 
    4079 
    4080              # START THE RESTART-JOB
    4081           printf "\n\n  *** initiating restart-run on \"$return_address\" using command:\n"
    4082           echo "      $mc"
    4083           printf "\n$dashes\n"
    4084           if [[ $localhost != $fromhost ]]
    4085           then
    4086 
    4087              if [[ $localhost = lcbullhh  ||  $localhost = lccrayb  ||  $localhost = lccrayh  ||  $localhost = nech  ||  $localhost = ibmh  ||  $localhost = ibmkisti  ||  $localhost = ibmku  ||  $localhost = ibms  ||  $localhost = lceddy  ||  $localhost = lckyu*  ||  $localhost = lcxe6 ]]
     3515          # ADD RESTART-OPTIONS TO THE MRUN-CALL (IF THEY ARE NOT USED ALREADY):
     3516          # -C TELLS MRUN THAT IT IS A RESTART-RUN
     3517          # -v SILENT MODE WITHOUT INTERACTIVE QUERIES
     3518          # -n BATCH-MODE (IMPORTANT ONLY IN CASE OF BATCH JOBS ON THE LOCAL MACHINE)
     3519       [[ $(echo $mc | grep -c "\-C") = 0 ]]  &&  mc="$mc -C"
     3520       [[ $(echo $mc | grep -c "\-v") = 0 ]]  &&  mc="$mc -v"
     3521       [[ $(echo $mc | grep -c "\-b") = 0 ]]  &&  mc="$mc -b"
     3522       if [[ $(echo $mc | grep -c "#") != 0 ]]
     3523       then
     3524          mc=`echo $mc | sed 's/#/f/g'`
     3525       fi
     3526
     3527
     3528          # START THE RESTART-JOB
     3529       printf "\n\n  *** initiating restart-run on \"$return_address\" using command:\n"
     3530       echo "      $mc"
     3531       printf "\n$dashes\n"
     3532       if [[ $localhost != $fromhost ]]
     3533       then
     3534
     3535          if [[ $localhost = lcbullhh  ||  $localhost = lccrayb  ||  $localhost = lccrayh  ||  $localhost = ibmh  ||  $localhost = ibmkisti  ||  $localhost = ibmku  ||  $localhost = ibms  ||  $localhost = lceddy  ||  $localhost = lckyu*  ||  $localhost = lcxe6 ]]
     3536          then
     3537             echo "*** ssh will be used to initiate restart-runs!"
     3538             echo "    return_address=\"$return_address\" "
     3539             echo "    return_username=\"$return_username\" "
     3540             if [[ $(echo $return_address | grep -c "130.75.105") = 1 ]]
     3541
     3542             if [[ $localhost = lcbullhh  ||  $localhost = lccrayb  ||  $localhost = lccrayh  ||  $localhost = ibmh  ||  $localhost = ibmkisti  ||  $localhost = ibmku  ||  $localhost = ibms  ||  $localhost = lceddy  ||  $localhost = lckyu*  ||  $localhost = lcxe6 ]]
    40883543             then
    4089                 echo "*** ssh will be used to initiate restart-runs!"
    4090                 echo "    return_address=\"$return_address\" "
    4091                 echo "    return_username=\"$return_username\" "
    4092                 if [[ $(echo $return_address | grep -c "130.75.105") = 1 ]]
     3544                if [[ $localhost = ibmh ]]
    40933545                then
    4094                    if [[ $localhost = ibmh ]]
    4095                    then
    4096                       ssh $SSH_PORTOPT $usern@136.172.40.15 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4097                    elif [[ $localhost = lcbullhh ]]
    4098                    then
    4099                       ssh $SSH_PORTOPT $usern@mlogin101 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4100                    elif [[ $localhost = lccrayb ]]
    4101                    then
    4102                       ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4103                    elif [[ $localhost = lccrayh ]]
    4104                    then
    4105                       ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4106                    elif [[ $localhost = lcxe6 ]]
    4107                    then
    4108                       ssh $usern@hexagon "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4109                    else
    4110                       ssh $SSH_PORTOPT $return_address -l $return_username ". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
    4111                    fi
     3546                   ssh $SSH_PORTOPT $usern@136.172.40.15 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3547                elif [[ $localhost = lcbullhh ]]
     3548                then
     3549                   ssh $SSH_PORTOPT $usern@mlogin101 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3550                elif [[ $localhost = lccrayb ]]
     3551                then
     3552                   ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3553                elif [[ $localhost = lccrayh ]]
     3554                then
     3555                   ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3556                elif [[ $localhost = lcxe6 ]]
     3557                then
     3558                   ssh $usern@hexagon "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    41123559                else
    4113                    if [[ $localhost = ibmkisti ]]
    4114                    then
    4115                       ssh $SSH_PORTOPT $usern@gaiad "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4116                    elif [[ $localhost = lceddy ]]
    4117                    then
    4118                       /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
    4119                    elif [[ $localhost = lcocean ]]
    4120                    then
    4121                       /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
    4122                    elif [[ $localhost = lccrayb ]]
    4123                    then
    4124                       ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4125                    elif [[ $localhost = lccrayh ]]
    4126                    then
    4127                       ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
    4128                    else
    4129                       ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
    4130                    fi
     3560                   ssh $SSH_PORTOPT $return_address -l $return_username ". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
    41313561                fi
    41323562             else
    4133                 printf "\n  +++ no restart mechanism available for host \"$localhost\" "
    4134                 locat=restart; exit
     3563                if [[ $localhost = ibmkisti ]]
     3564                then
     3565                   ssh $SSH_PORTOPT $usern@gaiad "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3566                elif [[ $localhost = lceddy ]]
     3567                then
     3568                   /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
     3569                elif [[ $localhost = lcocean ]]
     3570                then
     3571                   /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
     3572                elif [[ $localhost = lccrayb ]]
     3573                then
     3574                   ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3575                elif [[ $localhost = lccrayh ]]
     3576                then
     3577                   ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
     3578                else
     3579                   ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
     3580                fi
    41353581             fi
    4136 
    4137                 # WAIT TO ALLOW THE RESTART-JOB TO BE QUEUED, BEFORE THE CURRENT JOB IS FINISHED
    4138              if [[ $queue = special1q ]]
    4139              then
    4140                 sleep 120
    4141              else
    4142                 sleep 30
    4143              fi
    4144 
    41453582          else
    4146 
    4147                 # JOBS RUNNING (AND STARTED) ON THE LOCAL MACHINE CAN DIRECTLY CALL MRUN (WITHOUT
    4148                 # USING SSH)
    4149              cd $LOCAL_PWD
    4150              if [[ $localhost = lckyuh ]]
    4151              then
    4152                 printf "\n  +++ WARNING: no restart mechanism available for host \"$localhost\" "
    4153                 printf "\n               please restart job manually using command:\n"
    4154                 printf "\n               \"$mc\" "
    4155              else
    4156                 eval  $mc                # THE ' MUST BE EVALUATED
    4157              fi
    4158              cd -  > /dev/null
    4159           fi
     3583             printf "\n  +++ no restart mechanism available for host \"$localhost\" "
     3584             locat=restart; exit
     3585          fi
     3586
     3587             # WAIT TO ALLOW THE RESTART-JOB TO BE QUEUED, BEFORE THE CURRENT JOB IS FINISHED
     3588          if [[ $queue = special1q ]]
     3589          then
     3590             sleep 120
     3591          else
     3592             sleep 30
     3593          fi
     3594
     3595       else
     3596
     3597             # JOBS RUNNING (AND STARTED) ON THE LOCAL MACHINE CAN DIRECTLY CALL MRUN (WITHOUT
     3598             # USING SSH)
     3599          cd $LOCAL_PWD
    41603600          if [[ $localhost = lckyuh ]]
    41613601          then
    4162              printf "\n$dashes\n  *** restart-run to be initiated manually\n"
     3602             printf "\n  +++ WARNING: no restart mechanism available for host \"$localhost\" "
     3603             printf "\n               please restart job manually using command:\n"
     3604             printf "\n               \"$mc\" "
    41633605          else
    4164              printf "\n$dashes\n  *** restart-run initiated \n"
    4165           fi
    4166 
    4167 
    4168              # DELETE INPUT-(RESTART)FILES, WHICH HAVE BEEN FETCHED FROM THE TEMPORARY DATA
    4169              # DIRECTORY, BACAUSE THEY ARE NOT REQUIRED BY THE RESTART-JOB.
    4170              # THIS IS DONE IN ORDER TO AVOID EXCEEDING DISC QUOTAS OR DISC SPACE (RESTART-FILES
    4171              # MAY BE VERY HUGE)
    4172           (( i = 0 ))
    4173           while (( i < iin ))
    4174           do
    4175              (( i = i + 1 ))
    4176              if [[ "${got_tmp[$i]}" = true   &&  $keep_data_from_previous_run = false ]]
    4177              then
    4178                 rm -r  $tmp_data_catalog/${frelin[$i]}
    4179              fi
    4180           done
    4181 
     3606             eval  $mc                # THE ' MUST BE EVALUATED
     3607          fi
     3608          cd -  > /dev/null
     3609       fi
     3610       if [[ $localhost = lckyuh ]]
     3611       then
     3612          printf "\n$dashes\n  *** restart-run to be initiated manually\n"
    41823613       else
    4183 
    4184           printf "\n  +++ no restart-run possible, since errors occured"
    4185           printf "\n      during the archive process"
    4186        fi
     3614          printf "\n$dashes\n  *** restart-run initiated \n"
     3615       fi
     3616
     3617
     3618          # DELETE INPUT-(RESTART)FILES, WHICH HAVE BEEN FETCHED FROM THE TEMPORARY DATA
     3619          # DIRECTORY, BACAUSE THEY ARE NOT REQUIRED BY THE RESTART-JOB.
     3620          # THIS IS DONE IN ORDER TO AVOID EXCEEDING DISC QUOTAS OR DISC SPACE (RESTART-FILES
     3621          # MAY BE VERY HUGE)
     3622       (( i = 0 ))
     3623       while (( i < iin ))
     3624       do
     3625          (( i = i + 1 ))
     3626          if [[ "${got_tmp[$i]}" = true   &&  $keep_data_from_previous_run = false ]]
     3627          then
     3628             rm -r  ${absnamein[$i]}
     3629          fi
     3630       done
    41873631
    41883632    fi
     
    42293673    [[ $do_compile = true ]]      &&  mrun_com=${mrun_com}" -s \"$source_list\""
    42303674    [[ "$input_list" != "" ]]     &&  mrun_com=${mrun_com}" -i \"$input_list\""
    4231     [[ $ignore_archive_error = true ]]  &&  mrun_com=${mrun_com}" -I"
    42323675    [[ $keep_data_from_previous_run = true ]]  &&  mrun_com=${mrun_com}" -k"
    42333676    [[ "$additional_conditions" != "" ]]  &&  mrun_com=${mrun_com}" -K \"$additional_conditions\""
     
    42413684    fi
    42423685    [[ "$tasks_per_node" != "" ]]  &&  mrun_com=${mrun_com}" -T $tasks_per_node"
    4243     [[ $store_on_archive_system = true ]]  &&  mrun_com=${mrun_com}" -A"
    42443686    [[ $package_list != "" ]]     &&  mrun_com=${mrun_com}" -p \"$package_list\""
    42453687    [[ $return_password != "" ]]  &&  mrun_com=${mrun_com}" -P $return_password"
  • palm/trunk/SOURCE/palm.f90

    r2233 r2261  
    2525! -----------------
    2626! $Id$
     27! output of run number for mrun to create unified cycle numbers
     28!
     29! 2233 2017-05-30 18:08:54Z suehring
    2730!
    2831! 2232 2017-05-30 17:47:52Z suehring
     
    171174
    172175    USE control_parameters,                                                    &
    173 
    174176        ONLY:  cloud_physics, constant_diffusion, coupling_char, coupling_mode,&
    175177               do2d_at_begin, do3d_at_begin, humidity, initializing_actions,   &
    176                land_surface, io_blocks, io_group,                              &
    177                large_scale_forcing, message_string, microphysics_seifert,      &
    178                nest_domain, neutral,                                           &
    179                nudging, passive_scalar, simulated_time, simulated_time_chr,    &
    180                urban_surface,                                                  &
     178               io_blocks, io_group, land_surface, large_scale_forcing,         &
     179               message_string, microphysics_seifert, nest_domain, neutral,     &
     180               nudging, passive_scalar, runnr, simulated_time,                 &
     181               simulated_time_chr, urban_surface,                              &
    181182               user_interface_current_revision,                                &
    182183               user_interface_required_revision, version, wall_heatflux,       &
     
    480481
    481482!
     483!-- Write run number to file (used by mrun to create unified cycle numbers for
     484!-- output files
     485    IF ( myid == 0  .AND.  runnr > 0 )  THEN
     486       OPEN( 90, FILE='RUN_NUMBER', FORM='FORMATTED' )
     487       WRITE( 90, '(I4)' )  runnr
     488       CLOSE( 90 )
     489    ENDIF
     490
     491!
    482492!-- Take final CPU-time for CPU-time analysis
    483493    CALL cpu_log( log_point(1), 'total', 'stop' )
  • palm/trunk/SOURCE/prognostic_equations.f90

    r2233 r2261  
    2525! -----------------
    2626! $Id$
     27! bugfix for r2232: openmp directives removed
     28!
     29! 2233 2017-05-30 18:08:54Z suehring
    2730!
    2831! 2232 2017-05-30 17:47:52Z suehring
     
    404407           call_microphysics_at_all_substeps ) )                               &
    405408    THEN
    406        !$OMP PARALLEL private (i,j)
     409       !$OMP PARALLEL PRIVATE (i,j)
    407410       !$OMP DO
    408 !$OMP PARALLEL PRIVATE (i, j)
    409 !$OMP DO
    410411       DO  i = nxlg, nxrg
    411412          DO  j = nysg, nyng
     
    414415       ENDDO
    415416       !$OMP END PARALLEL
    416 !$OMP END PARALLEL
    417417    ENDIF
    418418
    419419!
    420420!-- Loop over all prognostic equations
    421     !$OMP PARALLEL private (i,i_omp_start,j,k,loop_start,tn)
     421    !$OMP PARALLEL PRIVATE (i,i_omp_start,j,k,loop_start,tn)
    422422
    423423    !$  tn = omp_get_thread_num()
Note: See TracChangeset for help on using the changeset viewer.