Skip to content

Commit f27760a

Browse files
Merge branch 'NOAA-EMC:develop' into develop
2 parents edf17b0 + 152bb45 commit f27760a

39 files changed

+308
-182
lines changed

.github/workflows/pw_aws_ci.yaml

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ on:
1515
workflow_dispatch:
1616
inputs:
1717
pr_number:
18-
description: 'Pull Request Number (use 0 for non-PR)'
18+
description: 'PR Number (use 0 for non-PR)'
1919
required: true
2020
default: '0'
2121
os:
@@ -31,24 +31,60 @@ env:
3131
MACHINE_ID: noaacloud
3232

3333
jobs:
34+
35+
run-start-clusters:
36+
runs-on: ubuntu-latest
37+
env:
38+
PW_PLATFORM_HOST: noaa.parallel.works
39+
steps:
40+
- name: Checkout pw-cluster-automation repository
41+
uses: actions/checkout@v4
42+
with:
43+
repository: TerrenceMcGuinness-NOAA/pw-cluster-automation
44+
path: pw-cluster-automation
45+
ref: pw_cluster_noaa
46+
47+
- name: Run startClusters
48+
run: |
49+
mkdir -p ~/.ssh
50+
echo "${{ secrets.ID_RSA_AWS }}" > ~/.ssh/id_rsa
51+
echo "${{ secrets.PW_API_KEY }}" > ~/.ssh/pw_api.key
52+
chmod 700 ~/.ssh
53+
chmod 600 ~/.ssh/id_rsa
54+
chmod 600 ~/.ssh/pw_api.key
55+
if [ "${{ github.event.inputs.os }}" == "rocky" ]; then
56+
clustername="globalworkflowciplatformrocky8"
57+
elif [ "${{ github.event.inputs.os }}" == "centos" ]; then
58+
clustername="awsemctmcgc7i48xlargeciplatform"
59+
fi
60+
python3 pw-cluster-automation/startClusters.py $clustername
61+
3462
fetch-branch:
63+
needs: run-start-clusters
3564
runs-on: ubuntu-latest
3665
env:
3766
GH_TOKEN: ${{ secrets.GITHUBTOKEN }}
3867
outputs:
3968
branch: ${{ steps.get-branch.outputs.branch }}
69+
repo: ${{ steps.get-branch.outputs.repo }}
4070
steps:
41-
- name: Fetch branch name for PR
71+
- name: Fetch branch name and repo for PR
4272
id: get-branch
4373
run: |
4474
pr_number=${{ github.event.inputs.pr_number }}
45-
repo=${{ github.repository }}
4675
if [ "$pr_number" -eq "0" ]; then
4776
branch=${{ github.event.inputs.ref }}
77+
repo=${{ github.repository }}
4878
else
4979
branch=$(gh pr view $pr_number --repo $repo --json headRefName --jq '.headRefName')
80+
repo_owner=$(gh pr view $pr_number --repo $repo --json headRepositoryOwner --jq '.headRepositoryOwner.login')
81+
repo_name=$(gh pr view $pr_number --repo $repo --json headRepository --jq '.headRepository.name')
82+
repo="$repo_owner/$repo_name"
5083
fi
51-
echo "::set-output name=branch::$branch"
84+
{
85+
echo "branch=$branch"
86+
echo "repo=$repo"
87+
} >> $GITHUB_OUTPUT
5288
5389
checkout:
5490
needs: fetch-branch
@@ -64,6 +100,7 @@ jobs:
64100
with:
65101
path: ${{ github.run_id }}/HOMEgfs
66102
submodules: 'recursive'
103+
repository: ${{ needs.fetch-branch.outputs.repo }}
67104
ref: ${{ needs.fetch-branch.outputs.branch }}
68105

69106
build-link:

.gitignore

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,6 @@ ush/bufr2ioda_insitu*
171171
versions/build.ver
172172
versions/run.ver
173173

174-
# wxflow checkout and symlinks
175-
ush/python/wxflow
176-
workflow/wxflow
177-
ci/scripts/wxflow
178-
179174
# jcb checkout and symlinks
180175
ush/python/jcb
181176
workflow/jcb
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
experiment:
2+
system: gfs
3+
mode: cycled
4+
5+
arguments:
6+
pslot: {{ 'pslot' | getenv }}
7+
app: S2S
8+
resdetatmos: 48
9+
resdetocean: 5.0
10+
resensatmos: 48
11+
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
12+
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
13+
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48mx500/20240610
14+
idate: 2021032412
15+
edate: 2021032418
16+
nens: 3
17+
interval: 0
18+
start: warm
19+
yaml: {{ HOMEgfs }}/ci/cases/yamls/soca_gfs_defaults_ci.yaml
20+
21+
skip_ci_on_hosts:
22+
- wcoss2
23+
- orion
24+
- hercules
25+
- hera
26+
- gaea

ci/scripts/wxflow

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../sorc/wxflow/src/wxflow

env/HERA.env

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fi
99

1010
step=$1
1111

12-
export launcher="srun -l --export=ALL"
12+
export launcher="srun -l --export=ALL --hint=nomultithread"
1313
export mpmd_opt="--multi-prog --output=mpmd.%j.%t.out"
1414

1515
#export POSTAMBLE_CMD='report-mem'
@@ -50,7 +50,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
5050
export POE="NO"
5151
export BACK="NO"
5252
export sys_tp="HERA"
53-
export launcher_PREP="srun"
53+
export launcher_PREP="srun --hint=nomultithread"
5454

5555
elif [[ "${step}" = "prepsnowobs" ]]; then
5656

@@ -153,10 +153,10 @@ elif [[ "${step}" = "ocnanalecen" ]]; then
153153
export NTHREADS_OCNANALECEN=${NTHREADSmax}
154154
export APRUN_OCNANALECEN="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANALECEN}"
155155

156-
elif [[ "${step}" = "marineanalletkf" ]]; then
156+
elif [[ "${step}" = "marineanlletkf" ]]; then
157157

158-
export NTHREADS_MARINEANALLETKF=${NTHREADSmax}
159-
export APRUN_MARINEANALLETKF="${APRUN_default} --cpus-per-task=${NTHREADS_MARINEANALLETKF}"
158+
export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
159+
export APRUN_MARINEANLLETKF=${APRUN_default}
160160

161161
elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then
162162

env/HERCULES.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fi
99

1010
step=$1
1111

12-
export launcher="srun -l --export=ALL"
12+
export launcher="srun -l --export=ALL --hint=nomultithread"
1313
export mpmd_opt="--multi-prog --output=mpmd.%j.%t.out"
1414

1515
# Configure MPI environment
@@ -48,7 +48,7 @@ case ${step} in
4848
export POE="NO"
4949
export BACK=${BACK:-"YES"}
5050
export sys_tp="HERCULES"
51-
export launcher_PREP="srun"
51+
export launcher_PREP="srun --hint=nomultithread"
5252
;;
5353
"prepsnowobs")
5454

env/ORION.env

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fi
99

1010
step=$1
1111

12-
export launcher="srun -l --export=ALL"
12+
export launcher="srun -l --export=ALL --hint=nomultithread"
1313
export mpmd_opt="--multi-prog --output=mpmd.%j.%t.out"
1414

1515
# Configure MPI environment
@@ -45,7 +45,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
4545
export POE="NO"
4646
export BACK=${BACK:-"YES"}
4747
export sys_tp="ORION"
48-
export launcher_PREP="srun"
48+
export launcher_PREP="srun --hint=nomultithread"
4949

5050
elif [[ "${step}" = "prepsnowobs" ]]; then
5151

@@ -149,10 +149,10 @@ elif [[ "${step}" = "ocnanalecen" ]]; then
149149
export NTHREADS_OCNANALECEN=${NTHREADSmax}
150150
export APRUN_OCNANALECEN="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANALECEN}"
151151

152-
elif [[ "${step}" = "marineanalletkf" ]]; then
152+
elif [[ "${step}" = "marineanlletkf" ]]; then
153153

154-
export NTHREADS_MARINEANALLETKF=${NTHREADSmax}
155-
export APRUN_MARINEANALLETKF="${APRUN_default} --cpus-per-task=${NTHREADS_MARINEANALLETKF}"
154+
export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
155+
export APRUN_MARINEANLLETKF="${APRUN_default}"
156156

157157
elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then
158158

env/WCOSS2.env

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,10 @@ elif [[ "${step}" = "ocnanalecen" ]]; then
126126
export NTHREADS_OCNANALECEN=${NTHREADSmax}
127127
export APRUN_OCNANALECEN="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANALECEN}"
128128

129-
elif [[ "${step}" = "marineanalletkf" ]]; then
129+
elif [[ "${step}" = "marineanlletkf" ]]; then
130130

131-
export NTHREADS_MARINEANALLETKF=${NTHREADSmax}
132-
export APRUN_MARINEANALLETKF="${APRUN_default} --cpus-per-task=${NTHREADS_MARINEANALLETKF}"
131+
export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
132+
export APRUN_MARINEANLLETKF="${APRUN_default}"
133133

134134
elif [[ "${step}" = "atmanlfv3inc" ]]; then
135135

jobs/JGDAS_ATMOS_ANALYSIS_DIAG

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ export OPREFIX="${RUN/enkf}.t${cyc}z."
2727
export GPREFIX="${GDUMP}.t${gcyc}z."
2828
export APREFIX="${RUN}.t${cyc}z."
2929

30-
YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_ATMOS_ANALYSIS
31-
mkdir -m 775 -p "${COM_ATMOS_ANALYSIS}"
30+
YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
31+
COMOUT_ATMOS_ANALYSIS:COM_ATMOS_ANALYSIS_TMPL
32+
mkdir -m 775 -p "${COMOUT_ATMOS_ANALYSIS}"
3233

3334
###############################################################
3435
# Run relevant script

jobs/JGDAS_ENKF_DIAG

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,56 +30,58 @@ export APREFIX="${RUN}.t${cyc}z."
3030
export GPREFIX="${GDUMP_ENS}.t${gcyc}z."
3131
GPREFIX_DET="${GDUMP}.t${gcyc}z."
3232

33-
RUN=${RUN/enkf} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_OBS
34-
MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_ATMOS_ANALYSIS
33+
RUN=${RUN/enkf} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
34+
COMIN_OBS:COM_OBS_TMPL
35+
MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
36+
COMOUT_ATMOS_ANALYSIS:COM_ATMOS_ANALYSIS_TMPL
3537

3638
RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
37-
COM_OBS_PREV:COM_OBS_TMPL \
38-
COM_ATMOS_ANALYSIS_DET_PREV:COM_ATMOS_ANALYSIS_TMPL
39+
COMIN_OBS_PREV:COM_OBS_TMPL \
40+
COMIN_ATMOS_ANALYSIS_DET_PREV:COM_ATMOS_ANALYSIS_TMPL
3941

4042
MEMDIR="ensstat" RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
41-
COM_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL
43+
COMIN_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL
4244

4345

44-
export ATMGES_ENSMEAN="${COM_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.ensmean.nc"
46+
export ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_PREV}/${GPREFIX}atmf006.ensmean.nc"
4547
if [ ! -f ${ATMGES_ENSMEAN} ]; then
4648
echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}"
4749
exit 1
4850
fi
4951

5052
# Link observational data
51-
export PREPQC="${COM_OBS}/${OPREFIX}prepbufr"
53+
export PREPQC="${COMIN_OBS}/${OPREFIX}prepbufr"
5254
if [[ ! -f ${PREPQC} ]]; then
5355
echo "WARNING: Global PREPBUFR FILE ${PREPQC} MISSING"
5456
fi
55-
export TCVITL="${COM_OBS}/${OPREFIX}syndata.tcvitals.tm00"
57+
export TCVITL="${COMIN_OBS}/${OPREFIX}syndata.tcvitals.tm00"
5658
if [[ ${DONST} = "YES" ]]; then
57-
export NSSTBF="${COM_OBS}/${OPREFIX}nsstbufr"
59+
export NSSTBF="${COMIN_OBS}/${OPREFIX}nsstbufr"
5860
fi
59-
export PREPQCPF="${COM_OBS}/${OPREFIX}prepbufr.acft_profiles"
61+
export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles"
6062

6163
# Guess Bias correction coefficients related to control
62-
export GBIAS=${COM_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias
63-
export GBIASPC=${COM_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc
64-
export GBIASAIR=${COM_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air
65-
export GRADSTAT=${COM_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat
64+
export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias
65+
export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc
66+
export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air
67+
export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat
6668

6769
# Bias correction coefficients related to ensemble mean
68-
export ABIAS="${COM_ATMOS_ANALYSIS}/${APREFIX}abias.ensmean"
69-
export ABIASPC="${COM_ATMOS_ANALYSIS}/${APREFIX}abias_pc.ensmean"
70-
export ABIASAIR="${COM_ATMOS_ANALYSIS}/${APREFIX}abias_air.ensmean"
71-
export ABIASe="${COM_ATMOS_ANALYSIS}/${APREFIX}abias_int.ensmean"
70+
export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.ensmean"
71+
export ABIASPC="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_pc.ensmean"
72+
export ABIASAIR="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_air.ensmean"
73+
export ABIASe="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias_int.ensmean"
7274

7375
# Diagnostics related to ensemble mean
74-
export GSISTAT="${COM_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean"
75-
export CNVSTAT="${COM_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean"
76-
export OZNSTAT="${COM_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean"
77-
export RADSTAT="${COM_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean"
76+
export GSISTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}gsistat.ensmean"
77+
export CNVSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}cnvstat.ensmean"
78+
export OZNSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}oznstat.ensmean"
79+
export RADSTAT="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}radstat.ensmean"
7880

7981
# Select observations based on ensemble mean
8082
export RUN_SELECT="YES"
8183
export USE_SELECT="NO"
82-
export SELECT_OBS="${COM_ATMOS_ANALYSIS}/${APREFIX}obsinput.ensmean"
84+
export SELECT_OBS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}obsinput.ensmean"
8385

8486
export DIAG_SUFFIX="_ensmean"
8587
export DIAG_COMPRESS="NO"

0 commit comments

Comments
 (0)