Skip to content

Commit

Permalink
Add wave-cice coupling; update to Consortium main (NOAA-EMC#51)
Browse files Browse the repository at this point in the history
* add wave-ice fields
* initialize aicen_init, which turns up as NaN in calc of floediam
export
* add call to icepack_init_wave to initialize wavefreq and dwavefreq
* update to latest consortium main (PR 752)

add initializationsin ice_state

* initialize vsnon/vsnon_init and vicen/vicen_init
  • Loading branch information
DeniseWorthen committed May 10, 2024
1 parent c018737 commit b3971dc
Show file tree
Hide file tree
Showing 109 changed files with 11,114 additions and 8,260 deletions.
125 changes: 104 additions & 21 deletions cice.setup
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/csh -f

#set pd0 = `date -u "+%s%N"`

set ICE_SANDBOX = `pwd`
set ICE_VERSION = unknown
if (-e cicecore/version.txt) then
Expand Down Expand Up @@ -480,12 +482,14 @@ else
exit -1
endif
cp -f ${ICE_SCRIPTS}/tests/report_results.csh ${tsdir}
cp -f ${ICE_SCRIPTS}/tests/create_fails.csh ${tsdir}
cp -f ${ICE_SCRIPTS}/tests/poll_queue.csh ${tsdir}
cat >! ${tsdir}/suite.submit << EOF0
#!/bin/csh -f
set nonomatch && rm -f ciceexe.* && unset nonomatch
rm -f suite.jobs
set dobuild = true
set doreuse = true
Expand Down Expand Up @@ -634,7 +638,7 @@ EOF
set bfbcomp_tmp = `echo $line | cut -d' ' -f5`
# Append sets from .ts file to the $sets variable
set sets = "$sets_base,$sets_tmp"
set sets = "$sets_tmp,$sets_base"
# Create a new bfbcomp_base variable to store bfbcomp passed to cice.setup
# Use bfbcomp_base or bfbcomp_tmp
Expand All @@ -644,11 +648,6 @@ EOF
set bfbcomp = "$bfbcomp_tmp"
endif
set fbfbcomp = ${spval}
if ($bfbcomp != ${spval}) then
set fbfbcomp = ${machcomp}_${bfbcomp}
endif
#------------------------------------------------------------
# Parse pesx with strict checking, limit pes for machine
Expand Down Expand Up @@ -751,23 +750,46 @@ EOF
endif
set testname_noid = ${spval}
# create case for test cases
set fbfbcomp = ${spval}
if ($bfbcomp != ${spval}) then
set fbfbcomp = ${machcomp}_${bfbcomp}
endif
if (${docase} == 0) then
set soptions = ""
# Create sorted array and remove duplicates and "none"
set setsarray = `echo ${sets} | sed 's/,/ /g' | fmt -1 | sort -u`
set setsarray = `echo ${sets_tmp} | sed 's/,/ /g' | fmt -1 | sort -u`
if ("${setsarray}" != "") then
foreach field (${setsarray})
if (${field} != "none") then
set soptions = ${soptions}"_"${field}
endif
end
endif
# Add options from command line, sort and remove duplicates
set soptions_base = ""
set setsarray_base = `echo ${sets_base} | sed 's/,/ /g' | fmt -1 | sort -u`
if ("${setsarray_base}" != "") then
foreach field (${setsarray_base})
set soptions = ${soptions}"_"${field}
set soptions_base = ${soptions_base}"_"${field}
end
endif
# soptions starts with _
set testname_noid = "${machcomp}_${test}_${grid}_${pesx}${soptions}"
set testname_base = "${machcomp}_${test}_${grid}_${pesx}${soptions}.${testid}"
set testname = "${tsdir}/${testname_base}"
set case = ${testname}
if (${dosuite} == 1) then
# Add -s flags in cice.setup to bfbcomp name
if ($bfbcomp != ${spval}) then
set fbfbcomp = ${machcomp}_${bfbcomp}${soptions_base}
endif
endif
endif
if (-d ${case}) then
Expand Down Expand Up @@ -796,8 +818,8 @@ EOF
# set default test output as failure
if (${docase} == 0) then
echo "#---" >! test_output
echo "FAIL ${testname_noid} build" >> test_output
echo "FAIL ${testname_noid} run" >> test_output
echo "PEND ${testname_noid} build" >> test_output
echo "PEND ${testname_noid} run" >> test_output
endif
# from basic script dir to case
Expand Down Expand Up @@ -891,6 +913,9 @@ EOF
echo "ICE_PES = ${task}x${thrd}"
echo "ICE_GRID = ${grid} (${ICE_DECOMP_NXGLOB}x${ICE_DECOMP_NYGLOB}) blocksize=${ICE_DECOMP_BLCKX}x${ICE_DECOMP_BLCKY}x${ICE_DECOMP_MXBLCKS}"
echo "ICE_DECOMP = ${ICE_DECOMP_DECOMP} ${ICE_DECOMP_DSHAPE}"
if ($fbfbcomp != ${spval}) then
echo "ICE_BFBCOMP = ${fbfbcomp}"
endif
#------------------------------------------------------------
# Copy in and update cice.settings and ice_in files
Expand All @@ -903,9 +928,21 @@ EOF
if (-e ${fimods}) rm ${fimods}
if (-e ${fsmods}) rm ${fsmods}
# Use an existing ice_in file from the suite if it exists
# to reduce time spent in parse_namelist
set skip_parse_namelist = spval
if (${dosuite} == 1) then
set iceinfn = ../ice_in_save_${grid}${soptions}
if (-e ${iceinfn}) then
echo "use ${iceinfn}"
cp ${iceinfn} ice_in
set skip_parse_namelist = true
endif
endif
# Set decomp info in namelist
cat >! ${fimods} << EOF1
# cice.setup settings
nprocs = ${task}
nx_global = ${ICE_DECOMP_NXGLOB}
ny_global = ${ICE_DECOMP_NYGLOB}
Expand Down Expand Up @@ -934,7 +971,6 @@ EOF1
cat >! ${fsmods} << EOF1
# cice.setup settings
setenv ICE_SANDBOX ${ICE_SANDBOX}
setenv ICE_SCRIPTS ${ICE_SCRIPTS}
setenv ICE_CASENAME ${casename}
Expand Down Expand Up @@ -1003,42 +1039,59 @@ EOF1
foreach name (${grid} $setsx)
set found = 0
if (-e ${ICE_SCRIPTS}/options/set_nml.${name}) then
cat >> ${fimods} << EOF2
# set_nml.${name}
EOF2
cat ${ICE_SCRIPTS}/options/set_nml.${name} >> ${fimods}
cat >> ${fimods} << EOF2
if ("${skip_parse_namelist}" == "true") then
# need to make sure the decomp info from the set_nml is picked up. each case
# has a slightly different decomp that is independent of the ice_in_save file.
# compute that then overwrite by set_nml as needed.
grep -i "distribution_type" ${ICE_SCRIPTS}/options/set_nml.${name} >> ${fimods}
grep -i "processor_shape" ${ICE_SCRIPTS}/options/set_nml.${name} >> ${fimods}
cat >> ${fimods} << EOF2
# using saved ice_in
EOF2
else
cat ${ICE_SCRIPTS}/options/set_nml.${name} >> ${fimods}
cat >> ${fimods} << EOF2
EOF2
endif
echo "adding namelist mods set_nml.${name}"
echo "`date` ${0} adding namelist modes set_nml.${name}" >> ${casedir}/README.case
set found = 1
endif
if (-e ${ICE_SCRIPTS}/options/set_env.${name}) then
cat >> ${fsmods} << EOF2
# set_env.${name}
EOF2
cat ${ICE_SCRIPTS}/options/set_env.${name} >> ${fsmods}
cat >> ${fsmods} << EOF2
EOF2
echo "adding env mods set_env.${name}"
echo "`date` ${0} adding namelist modes set_env.${name}" >> ${casedir}/README.case
set found = 1
endif
if (${found} == 0) then
echo "${0}: ERROR, ${ICE_SCRIPTS}/options/set_[nml,env].${name} not found"
exit -1
endif
end
#set pd1 = `date -u "+%s%N"`
#@ pdd = ( $pd1 - $pd0 ) / 1000000
#echo "tcxp b4 parse $pdd"
${casescr}/parse_settings.sh cice.settings ${fsmods}
if ($status != 0) then
echo "${0}: ERROR, parse_settings.sh aborted"
exit -1
endif
${casescr}/parse_namelist.sh ice_in ${fimods}
if ($status != 0) then
echo "${0}: ERROR, parse_namelist.sh aborted"
Expand All @@ -1047,6 +1100,20 @@ EOF2
source ./cice.settings
source ./env.${machcomp} -nomodules || exit 2
${casescr}/parse_namelist_from_env.sh ice_in
if ($status != 0) then
echo "${0}: ERROR, parse_namelist_from_env.sh aborted"
exit -1
endif
#set pd1 = `date -u "+%s%N"`
#@ pdd = ( $pd1 - $pd0 ) / 1000000
#echo "tcxp after parse $pdd"
# Save ice_in in the suite to reduce time spent in parse_namelist
if (${dosuite} == 1) then
if !(-e ${iceinfn}) then
cp ice_in ${iceinfn}
endif
endif
#------------------------------------------------------------
# Generate run script
Expand Down Expand Up @@ -1104,19 +1171,26 @@ echo "-------test--------------"
echo "${testname_base}"
cd ${testname_base}
source ./cice.settings
set bldstat = 0
if (\${dobuild} == true) then
if (\${doreuse} == true) then
set ciceexe = "../ciceexe.\${ICE_TARGET}.\${ICE_ENVNAME}.\${ICE_COMMDIR}.\${ICE_BLDDEBUG}.\${ICE_THREADED}.\${ICE_IOTYPE}"
./cice.build --exe \${ciceexe}
set bldstat = \${status}
if !(-e \${ciceexe}) cp -p \${ICE_RUNDIR}/cice \${ciceexe}
else
./cice.build
set bldstat = \${status}
endif
endif
if (\${dosubmit} == true) then
./cice.submit | tee -a ../suite.jobs
else if (\${dorun} == true) then
./cice.test
if (\$bldstat == 0) then
if (\${dosubmit} == true) then
set jobid = \`./cice.submit\`
echo "\$jobid"
echo "\$jobid \${ICE_TESTNAME} " >> ../suite.jobs
else if (\${dorun} == true) then
./cice.test
endif
endif
cd ..
EOF
Expand All @@ -1129,6 +1203,10 @@ EOF
echo ""
endif
#set pd1 = `date -u "+%s%N"`
#@ pdd = ( $pd1 - $pd0 ) / 1000000
#echo "tcxp case done $pdd"
# This is the foreach end for the testsuite
end
# This is the foreach end for the envnames
Expand All @@ -1143,6 +1221,7 @@ if ( ${dosuite} == 1 ) then
cat >> ${tsdir}/suite.submit << EOF0
set nonomatch && rm -f ciceexe.* && unset nonomatch
set nonomatch && rm -f ice_in_save* && unset nonomatch
EOF0
Expand Down Expand Up @@ -1185,6 +1264,10 @@ endif
#---------------------------------------------
#set pd1 = `date -u "+%s%N"`
#@ pdd = ( $pd1 - $pd0 ) / 1000000
#echo "tcxp done $pdd"
echo " "
echo "${0} done"
echo " "
Expand Down
Loading

0 comments on commit b3971dc

Please sign in to comment.