Ignore:
Timestamp:
May 15, 2025, 6:26:24 PM (6 weeks ago)
Author:
jbclement
Message:

Mars PCM:
Cleaning and improvement of robustness for "run0" and "run_month1" scripts with file checks and clearer errors.
JBC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/deftank/ciclad/run_month1

    r2510 r3766  
    88#PBS -l walltime=20:00:00
    99
    10 ## Script to run chained simulations on Ciclad
     10## Script to run chained simulations
    1111## (uses script "run0" and reference file "run.def.ref")
    1212## Set values of "num_now" and "num_end" in the script below
     
    1616cd $PBS_O_WORKDIR
    1717
    18 # source the environment (you might need to adapt this path to your case)
     18# A few parameters that might need be changed depending on your setup:
     19# Path to the arch.env to source
    1920source ../trunk/LMDZ.COMMON/arch.env
     21#
     22########################################################################
     23set -exv
     24ls -al
     25trap 'echo -e "Error at line $LINENO!"' ERR
    2026
    21 date
    22 
    23 ## set starting month and ending month below:
     27# Set starting month and ending month below:
    2428num_now=1
    2529num_end=12
    26 (( num_previous = $num_now - 1 ))
     30num_previous=$(( num_now - 1 ))
    2731
    2832echo "$num_previous" > num_run
    2933# next month number
    30 (( num_next = $num_now + 1 ))
     34num_next=$(( num_now + 1 ))
    3135# true (i.e. modulo 12) month number
    32 (( true_num = $num_now % 12 ))
     36true_num=$(( num_now % 12 ))
    3337
     38# Check if required files exist
    3439\rm -f  error; touch error
    3540
     41if [ ! -f run.def.ref ]; then
     42  echo "Error: file \"run.def.ref\" not found in current directory!" > error
     43  exit 1
     44fi
     45
     46if [ ! -x run0 ]; then
     47  echo "Error: file \"run0\" not found or not executable in current directory!" > error
     48  exit 1
     49fi
     50
     51if [ ! -f run_month$num_now ]; then
     52  echo "Error: file \"run_month${num_now}\" not found in current directory!" > error
     53  exit 1
     54fi
     55
     56# Run model depending on current month
    3657case $true_num in
    37   1 ) sed s/9999/61/ run.def.ref > run.def ; run0 >> error ;;    #1
    38   2 ) sed s/9999/66/ run.def.ref > run.def ; run0 >> error ;;    #2
    39   3 ) sed s/9999/66/ run.def.ref > run.def ; run0 >> error ;;    #3
    40   4 ) sed s/9999/65/ run.def.ref > run.def ; run0 >> error ;;    #4
    41   5 ) sed s/9999/60/ run.def.ref > run.def ; run0 >> error ;;    #5
    42   6 ) sed s/9999/54/ run.def.ref > run.def ; run0 >> error ;;    #6
    43   7 ) sed s/9999/50/ run.def.ref > run.def ; run0 >> error ;;    #7
    44   8 ) sed s/9999/46/ run.def.ref > run.def ; run0 >> error ;;    #8
    45   9 ) sed s/9999/47/ run.def.ref > run.def ; run0 >> error ;;    #9
    46  10 ) sed s/9999/47/ run.def.ref > run.def ; run0 >> error ;;    #10
    47  11 ) sed s/9999/51/ run.def.ref > run.def ; run0 >> error ;;    #11
    48   0 ) sed s/9999/56/ run.def.ref > run.def ; run0 >> error ;;    #12
    49   * ) echo "error" ;;
     58  1 ) sed s/9999/61/ run.def.ref > run.def ; ./run0 >> error ;;    #1
     59  2 ) sed s/9999/66/ run.def.ref > run.def ; ./run0 >> error ;;    #2
     60  3 ) sed s/9999/66/ run.def.ref > run.def ; ./run0 >> error ;;    #3
     61  4 ) sed s/9999/65/ run.def.ref > run.def ; ./run0 >> error ;;    #4
     62  5 ) sed s/9999/60/ run.def.ref > run.def ; ./run0 >> error ;;    #5
     63  6 ) sed s/9999/54/ run.def.ref > run.def ; ./run0 >> error ;;    #6
     64  7 ) sed s/9999/50/ run.def.ref > run.def ; ./run0 >> error ;;    #7
     65  8 ) sed s/9999/46/ run.def.ref > run.def ; ./run0 >> error ;;    #8
     66  9 ) sed s/9999/47/ run.def.ref > run.def ; ./run0 >> error ;;    #9
     67 10 ) sed s/9999/47/ run.def.ref > run.def ; ./run0 >> error ;;    #10
     68 11 ) sed s/9999/51/ run.def.ref > run.def ; ./run0 >> error ;;    #11
     69  0 ) sed s/9999/56/ run.def.ref > run.def ; ./run0 >> error ;;    #12
     70  * ) echo "Error: Invalid value of true_num ($true_num)" ; exit 1 ;;
    5071esac
    5172
    52 # launch job for next month
    53 if (( $num_next <= $num_end )) ; then
     73# Launch job for next month
     74if (( num_next <= num_end )) ; then
    5475  cp -f run_month$num_now tmp
    5576  sed -e "s@run_month${num_now}@run_month${num_next}@" \
Note: See TracChangeset for help on using the changeset viewer.