[11930] | 1 | #!/bin/bash |
---|
| 2 | |
---|
[13195] | 3 | ################################################################ |
---|
| 4 | # |
---|
| 5 | # Script to launch a set of STATION_ASF simulations |
---|
| 6 | # |
---|
| 7 | # L. Brodeau, 2020 |
---|
| 8 | # |
---|
| 9 | ################################################################ |
---|
[11930] | 10 | |
---|
[13195] | 11 | # What directory inside "tests" actually contains the compiled "nemo.exe" for STATION_ASF ? |
---|
[12615] | 12 | TC_DIR="STATION_ASF2" |
---|
| 13 | |
---|
[13195] | 14 | # DATA_IN_DIR => Directory containing sea-surface + atmospheric forcings |
---|
[11930] | 15 | # (get it there https://drive.google.com/file/d/1MxNvjhRHmMrL54y6RX7WIaM9-LGl--ZP/): |
---|
| 16 | if [ `hostname` = "merlat" ]; then |
---|
[13195] | 17 | DATA_IN_DIR="/MEDIA/data/STATION_ASF/input_data_STATION_ASF_2016-2018" |
---|
[11930] | 18 | elif [ `hostname` = "luitel" ]; then |
---|
[13195] | 19 | DATA_IN_DIR="/data/gcm_setup/STATION_ASF/input_data_STATION_ASF_2016-2018" |
---|
[11930] | 20 | elif [ `hostname` = "ige-meom-cal1" ]; then |
---|
[13195] | 21 | DATA_IN_DIR="/mnt/meom/workdir/brodeau/STATION_ASF/input_data_STATION_ASF_2016-2018" |
---|
[11930] | 22 | elif [ `hostname` = "salvelinus" ]; then |
---|
[13195] | 23 | DATA_IN_DIR="/opt/data/STATION_ASF/input_data_STATION_ASF_2016-2018" |
---|
[11930] | 24 | else |
---|
[13195] | 25 | echo "Oops! We don't know `hostname` yet! Define 'DATA_IN_DIR' in the script!"; exit |
---|
[11930] | 26 | fi |
---|
| 27 | |
---|
[13195] | 28 | expdir=`basename ${PWD}`; # we expect "EXPREF" or "EXP00" normally... |
---|
[12615] | 29 | |
---|
[13195] | 30 | # NEMOGCM root directory where to fetch compiled STATION_ASF nemo.exe + setup: |
---|
| 31 | NEMO_WRK_DIR=`pwd | sed -e "s|/tests/STATION_ASF/${expdir}||g"` |
---|
| 32 | |
---|
| 33 | # Directory where to run the simulation: |
---|
| 34 | PROD_DIR="${HOME}/tmp/STATION_ASF" |
---|
| 35 | |
---|
| 36 | |
---|
| 37 | ####### End of normal user configurable section ####### |
---|
| 38 | |
---|
| 39 | #================================================================================ |
---|
| 40 | |
---|
| 41 | # NEMO executable to use is: |
---|
| 42 | NEMO_EXE="${NEMO_WRK_DIR}/tests/${TC_DIR}/BLD/bin/nemo.exe" |
---|
| 43 | |
---|
| 44 | |
---|
| 45 | echo "###########################################################" |
---|
| 46 | echo "# S T A T I O N A i r - S e a F l u x #" |
---|
| 47 | echo "###########################################################" |
---|
| 48 | echo |
---|
| 49 | echo " We shall work in here: ${STATION_ASF_DIR}/" |
---|
| 50 | echo " NEMOGCM work depository is: ${NEMO_WRK_DIR}/" |
---|
| 51 | echo " ==> NEMO EXE to use: ${NEMO_EXE}" |
---|
| 52 | echo " Input forcing data into: ${DATA_IN_DIR}/" |
---|
| 53 | echo " Production will be done into: ${PROD_DIR}/" |
---|
| 54 | echo |
---|
| 55 | |
---|
| 56 | mkdir -p ${PROD_DIR} |
---|
| 57 | |
---|
[13121] | 58 | if [ ! -f ${NEMO_EXE} ]; then echo " Mhhh, no compiled 'nemo.exe' found into `dirname ${NEMO_EXE}` !"; exit; fi |
---|
[11930] | 59 | |
---|
[12933] | 60 | echo |
---|
| 61 | echo " *** Using the following NEMO executable:" |
---|
| 62 | echo " ${NEMO_EXE} " |
---|
| 63 | echo |
---|
| 64 | |
---|
[13195] | 65 | NEMO_EXPREF="${NEMO_WRK_DIR}/tests/STATION_ASF/EXPREF" |
---|
[11930] | 66 | if [ ! -d ${NEMO_EXPREF} ]; then echo " Mhhh, no EXPREF directory ${NEMO_EXPREF} !"; exit; fi |
---|
| 67 | |
---|
[13195] | 68 | rsync -avP ${NEMO_EXE} ${PROD_DIR}/ |
---|
[11930] | 69 | |
---|
| 70 | for ff in "context_nemo.xml" "domain_def_nemo.xml" "field_def_nemo-oce.xml" "file_def_nemo-oce.xml" "grid_def_nemo.xml" "iodef.xml" "namelist_ref"; do |
---|
| 71 | if [ ! -f ${NEMO_EXPREF}/${ff} ]; then echo " Mhhh, ${ff} not found into ${NEMO_EXPREF} !"; exit; fi |
---|
[13195] | 72 | rsync -avPL ${NEMO_EXPREF}/${ff} ${PROD_DIR}/ |
---|
[11930] | 73 | done |
---|
| 74 | |
---|
| 75 | # Copy forcing to work directory: |
---|
[13195] | 76 | rsync -avP ${DATA_IN_DIR}/Station_PAPA_50N-145W*.nc ${PROD_DIR}/ |
---|
[11930] | 77 | |
---|
[12615] | 78 | for CASE in "ECMWF" "COARE3p6" "NCAR" "ECMWF-noskin" "COARE3p6-noskin"; do |
---|
[11930] | 79 | |
---|
| 80 | echo ; echo |
---|
| 81 | echo "=============================" |
---|
| 82 | echo " Going for ${CASE} experiment" |
---|
| 83 | echo "=============================" |
---|
| 84 | echo |
---|
| 85 | |
---|
| 86 | scase=`echo "${CASE}" | tr '[:upper:]' '[:lower:]'` |
---|
| 87 | |
---|
[13195] | 88 | rm -f ${PROD_DIR}/namelist_cfg |
---|
| 89 | rsync -avPL ${NEMO_EXPREF}/namelist_${scase}_cfg ${PROD_DIR}/namelist_cfg |
---|
[11930] | 90 | |
---|
[13195] | 91 | cd ${PROD_DIR}/ |
---|
[11930] | 92 | echo |
---|
| 93 | echo "Launching NEMO !" |
---|
[12615] | 94 | ./nemo.exe 1>out_nemo.out 2>err_nemo.err |
---|
[11930] | 95 | echo "Done!" |
---|
| 96 | echo |
---|
| 97 | |
---|
| 98 | # Moving output files: |
---|
| 99 | mkdir -p output |
---|
| 100 | mv -f STATION_ASF-${CASE}_*_grid*.nc output/ |
---|
| 101 | |
---|
| 102 | # Saving logs: |
---|
| 103 | mkdir -p ${CASE}_log |
---|
| 104 | mv -f *.out *.err ocean.output output.namelist.dyn ${CASE}_log/ |
---|
| 105 | |
---|
| 106 | done |
---|