#!/bin/ksh # # Construct NEMO namelist # # original : 03-06 (Kristian) # 16-07 (Magda) mods for restarts and other namelist arguments # # Document command line options # usage="Usage:\n$0 -r -o -d -e expver -m asmmod -t timestep -D date0 -E dateend -s startday -y runnumber -R restart -N nrstdt -v obsver -I obsins -s sst -l [SLA switch] -O othervar -c -p -a " # # Set defaults for command line options # # clista=no obs=no asmmod=none nmldir=unknown ndate0=unknown ndatend=unknown nit000=unknown nitend=unknown expver=unknown outdir=unknown rundir=unknown timestep=unknown ncyc=unknown restart=unknown nrstdt=unknown outfreq=15 othervar="" sst=no sla=no obsver=v1c obsins=EN3 blk=no icemod=0 # errflg=0 # # Set error trapping on # set -euvx set +e # # Get command line options # while getopts a:cd:D:e:E:i:n:N:o:v:I:O:pr:R:t:f:y:slB:L: option do case $option in a) asmmod=$OPTARG;; c) clista=yes;; d) nmldir=$OPTARG;; D) ndate0=$OPTARG;; E) ndatend=$OPTARG;; e) nitend=$OPTARG;; f) outfreq=$OPTARG;; i) nit000=$OPTARG;; n) expver=$OPTARG;; o) outdir=$OPTARG;; v) obsver=$OPTARG;; I) obsins=$OPTARG;; O) othervar="$OPTARG";; p) obs=yes;; r) rundir=$OPTARG;; t) timestep=$OPTARG;; y) ncyc=$OPTARG;; R) restart=$OPTARG;; N) nrstdt="$OPTARG";; s) sst=yes;; l) sla=yes;; B) blk=$OPTARG;; L) icemod=$OPTARG;; \?) errflg=1;; esac done # # Check for errors # if [[ $errflg -ne 0 || $nmldir = unknown || $ndate0 = unknown || $ndatend = unknown || $nitend = unknown || $nit000 = unknown || $expver = unknown || $outdir = unknown || $rundir = unknown || $timestep = unknown || $ncyc = unknown ]] ; then print $usage exit 1 fi # CHECK_DIR $outdir CHECK_DIR $rundir # cd $rundir # if [[ $clista = yes ]] then echo "Ignoring restart and nrstdt from namelist" echo "Setting RESTART=false and NRSTDT=0" restart_string="RESTART=.false. NRSTDT=0" else if [[ $restart = unknown ]] ;then restart=.true. fi if [[ $nrstdt = unknown ]] ;then nrstdt=1 fi restart_string="RESTART=.$restart. NRSTDT=$nrstdt" fi # # Observations # function list_to_namelist { nolines=0 { while read -r line do lines[$nolines]=$line ((nolines=nolines+1)) done } < $1 i=0 namelist_list="" if ((nolines==0)) then namelist_list="''" else while((i