#!/usr/bin/env -S bash

set -e

function set_envs(){
    NorESMroot=/cluster/projects/nn11009k/NorESM2-MH
    NorESMversion=NorESM2_3_develop
    CASEROOT=$NorESMroot/cases
    CASE=NSSP585frc2_OC25_20250323
    RUNDIR=/cluster/work/users/${USER}/noresm/${CASE}/run/
    COMPSET=NSSP585frc2
    RES=f09_tn0254
    MACH=betzy
    PROJECT=nn11009k
    MISC=--run-unsupported
}

function noresm_clone(){
  cd $NorESMroot
  git clone -b noresm2_3_develop git@github.com:NorESMhub/NorESM.git NorESM2_3_develop
  cd $NorESMversion
  ./manage_externals/checkout_externals
}

function case_setup(){
    ${NorESMroot}/${NorESMversion}/cime/scripts/create_newcase \
                --case ${CASEROOT}/${CASE} \
                --compset ${COMPSET} \
                --res ${RES} \
                --mach ${MACH} \
                --project ${PROJECT} \
                $MISC

    cd $CASEROOT/${CASE}
    ./case.setup
}


function case_build(){

    cd $CASEROOT/${CASE}
    echo 'TBFILE = /cluster/shared/noresm/inputdata/ocn/blom/bndcon/topo_beta_tnx0.25v4_20170622_depth_python_SYNBATH_V1.1_3minute_filt_max100km_nc64bitoffset.nc' >>user_nl_blom
    echo 'ndtd = 4' >>user_nl_cice

    ./case.build
}

function case_run(){

    cd $CASEROOT/${CASE}

    ./xmlchange --file=env_run.xml RUN_TYPE=hybrid
    ./xmlchange --file=env_run.xml RUN_REFCASE=NHISTfrc2_OC25_20200107_hfreq
    ./xmlchange --file=env_run.xml RUN_REFDATE=2015-01-01
    ./xmlchange --file=env_run.xml RUN_STARTDATE=2015-01-01

    ./xmlchange --file=env_run.xml STOP_OPTION=nyears
    ./xmlchange --file=env_run.xml STOP_N=5
    ./xmlchange --file=env_run.xml DOUT_S_SAVE_INTERIM_RESTART_FILES=TRUE
    ./xmlchange --file=env_run.xml REST_N=1

    ./xmlchange --file=env_run.xml COMPRESS_ARCHIVE_FILES=FALSE

    ./xmlchange --file=env_run.xml ATM_DOMAIN_FILE=domain.lnd.fv0.9x1.25_tnx0.25v4.170629.nc
    ./xmlchange --file=env_run.xml LND_DOMAIN_FILE=domain.lnd.fv0.9x1.25_tnx0.25v4.170629.nc

    # project and cpu hours
    ./xmlchange PROJECT=nn11009k
    # 1deg
    #./xmlchange --file=env_batch.xml JOB_WALLCLOCK_TIME=96:00:00 --subgroup case.run

    # st_archive
    #./xmlchange --file=env_batch.xml JOB_WALLCLOCK_TIME=12:00:00 --subgroup case.st_archive

    cp ../../user_nl/user_nl_blom .

}

function copy_rst(){
    rstdir=/nird/projects/NS9560K/noresm/cases/NHISTfrc2_OC25_20200107_hfreq/rest/2015-01-01-00000/
    rstfiles=($(ls $rstdir/* 2>/dev/null |cat ))
    if [ ${#rstfiles[*]} -ge 1 ];then
        cp -u ${rstfiles[*]} $RUNDIR/
        cp $rstdir/rpointer.* $RUNDIR/
    fi
    cd $RUNDIR/
    gzfiles=($(ls *.gz 2>/dev/null |cat ))
    if [ ${#gzfiles} -ge 1 ]; then
        gunzip -v *.gz
    fi
}

function case_submit(){
    cd $CASEROOT/${CASE}
    ./case.submit
}

set_envs
#noresm_clone
#case_setup
#case_build
case_run
copy_rst
case_submit

