Skip to content

Commit a01b2a7

Browse files
authored
Merge pull request #355 from GEOS-ESM/feature/rtodling/prelim4djedi
Adding 4d capability for JEDI
2 parents 809d994 + 984fd61 commit a01b2a7

File tree

8 files changed

+96
-70
lines changed

8 files changed

+96
-70
lines changed

src/Applications/GEOSdas_App/jedi/etc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set (ALLETC
55
geos_3dfgat.yaml
66
geos_hyb4denvar.yaml
77
jedi_acquire_bkg.j
8+
jedi_acquire_ebkg.j
89
jedi_acquire_ioda.j
910
jedi_acquire_vbc.j
1011
jedi_run_var.j

src/Applications/GEOSdas_App/jedi/etc/JEDIanaConfig.csh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Top options
33
setenv JEDI_SET 1 # bring bkg/obs/ens
44
setenv JEDI_RUN 1 # run JEDI var executable
5-
setenv JEDI_HYBRID 0 # control opts for hyb JEDI
5+
setenv JEDI_HYBRID @JEDI_HYBRID # control opts for hyb JEDI
66
setenv JEDI_MKIAU 1 # calculates IAU output
77
setenv JEDI_POST 0 # process results (move files, etc)
88
setenv JEDI_IAU_OVERWRITE 0 # overwrite GSI-IAU with JEDI-IAU (when cycling)
@@ -33,7 +33,7 @@ setenv JEDI_ADDINC_MPIRUN "mpirun -np 12"
3333
setenv JEDI_CNVANA_MPIRUN "mpirun -np 12"
3434
setenv JEDI_CNVENS_MPIRUN "mpirun -np 12"
3535
setenv JEDI_CNVINC_MPIRUN "mpirun -np 12"
36-
setenv JEDI_NCPUS 384
36+
setenv JEDI_NCPUS @JEDI_VAR_NCPUS
3737
setenv JEDI_FV3VAR_MPIRUN "mpirun -perhost @JEDI_VAR_PERHOST -np $JEDI_NCPUS"
3838

3939
setenv JEDI_MKIAU_MPIRUN "mpirun "

src/Applications/GEOSdas_App/jedi/etc/geos_hyb4denvar.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ cost function:
1818
background:
1919
states:
2020
- datapath: './'
21-
datetime: $JEDI_ISO_DATE_BEG
21+
datetime: $JEDI_ISO_DATE_001
2222
filenames:
2323
- bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4
2424
- fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_RESOL.nc4
@@ -159,7 +159,7 @@ cost function:
159159
- u10m
160160
- v10m
161161
- datapath: './'
162-
datetime: JEDI_ISO_DATE_004
162+
datetime: $JEDI_ISO_DATE_004
163163
filenames:
164164
- bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4
165165
- fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_RESOL.nc4
@@ -300,7 +300,7 @@ cost function:
300300
- u10m
301301
- v10m
302302
- datapath: './'
303-
datetime: $JEDI_ISO_DATE_END
303+
datetime: $JEDI_ISO_DATE_007
304304
filenames:
305305
- bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4
306306
- fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_RESOL.nc4
@@ -36211,7 +36211,7 @@ cost function:
3621136211
parallel subwindows: false
3621236212
subwindow: PT1H
3621336213
time window:
36214-
begin: '2023-10-09T21:00:00Z'
36214+
begin: $JEDI_ISO_DATE_BEG
3621536215
bound to include: begin
3621636216
length: PT6H
3621736217
variable change:

src/Applications/GEOSdas_App/jedi/etc/jedi_acquire_bkg.j

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@
44
#SBATCH --time=1:00:00
55

66
cd $ACQWORK
7-
if ( $JEDI_GET_ENSBKG ) then
8-
if ( $JEDI_HYBRID == 1 ) then
9-
acquire -v -rc $JEDIETC/jedi_ebkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
10-
else
11-
acquire -v -rc $JEDIETC/jedi_ebkgx.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
12-
endif
13-
endif
147
acquire -v -rc $JEDIETC/jedi_bkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMDP $NHMSP 060000 1
158
#acquire -v -rc $JEDIETC/jedi_bkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
169
exit
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/csh -xvf
2+
#SBATCH --account=$GID
3+
#SBATCH --partition=datamove
4+
#SBATCH --time=1:00:00
5+
6+
cd $ACQWORK
7+
if ( $JEDI_GET_ENSBKG ) then
8+
if ( $JEDI_HYBRID == 1 ) then
9+
acquire -v -rc $JEDIETC/jedi_ebkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
10+
else
11+
acquire -v -rc $JEDIETC/jedi_ebkgx.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
12+
endif
13+
endif
14+
acquire -v -rc $JEDIETC/jedi_bkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMDP $NHMSP 060000 1
15+
#acquire -v -rc $JEDIETC/jedi_bkg.acq -d $ACQWORK -s $FVHOME/spool -ssh $NYMD $NHMS 060000 1
16+
exit

src/Applications/GEOSdas_App/jedi/etc/ut_jedi.j

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
setenv GID g0613
44
setenv BATCH_SUBCMD "sbatch"
55

6-
setenv EXPID j51rt00
6+
setenv EXPID j3dfgat
77
setenv FVHOME /discover/nobackup/projects/gmao/dadev/rtodling/JEDI/x51/$EXPID
88
setenv FVROOT `cat $FVHOME/.FVROOT`
99
setenv FVWORK `cat $FVHOME/.FVWORK`
@@ -14,7 +14,7 @@ source $FVROOT/bin/g5_modules
1414
source $FVHOME/run/jedi/JEDIanaConfig.csh
1515
set path = ( . $FVHOME/run $JEDIDIR $FVROOT/bin $SHARE/dasilva/opengrads/Contents $BASEDIR/$ARCH/bin $path )
1616

17-
set this = `ls -d $FVWORK/ana.*00`
17+
set this = `ls -d $FVWORK/jedi.*00`
1818
set lstana = `basename $this`
1919
set nymd = `echo $lstana | cut -d. -f2`
2020
set nhms = `echo $lstana | cut -d. -f3`

src/Applications/GEOSdas_App/jedi/jedi_set.csh

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ if ( $#argv < 2 ) then
2525
echo " AUTHOR"
2626
echo " Ricardo Todling ([email protected]), NASA/GMAO "
2727
echo " Initial version: 18Oct2020 by: R. Todling"
28-
echo " Last modified: 25Oct2025 by: R. Todling"
28+
echo " Last modified: 01May2025 by: R. Todling"
2929
echo " \\end{verbatim} "
3030
echo " \\clearpage "
3131
exit(0)
@@ -152,7 +152,7 @@ cd -
152152
# Get positioned in JEDI work dir
153153
cd $JEDIWRK
154154

155-
foreach dir ( ana bkg ensemble hofx iau obs osen inc vbc )
155+
foreach dir ( ana atmens bkg hofx iau obs osen inc vbc )
156156
if ( ! -d $dir ) mkdir -p $dir
157157
end
158158

@@ -373,7 +373,18 @@ else
373373
exit(3)
374374
endif
375375
if( $JEDI_GET_ENSBKG ) then
376-
cd $JEDIWRK
376+
cd $JEDIWRK/atmens
377+
setenv NYMD $nymdb # initial date of current cycle
378+
setenv NHMS $nhmsb # initial time of current cycle
379+
setenv NYMDP $nymdp # initial date of previous cycle
380+
setenv NHMSP $nhmsp # initial time of previous cycle
381+
setenv ACQWORK $JEDIWRK/atmens
382+
vED -env $FVHOME/run/jedi/jedi_acquire_ebkg.j -o jedi_acquire_ebkg.j
383+
if ( $BATCH_SUBCMD == "sbatch" ) then
384+
sbatch -W -o jedi_acq.log jedi_acquire_ebkg.j
385+
else
386+
qsub -W block=true -o jedi_acq.log jedi_acquire_ebkg.j
387+
endif
377388
if ( $JEDI_HYBRID == 1 ) then # lat-lon ensemble
378389
set tarbal = "atmens_ebkg"
379390
set inball = ""
@@ -389,22 +400,17 @@ if( $JEDI_GET_ENSBKG ) then
389400
set lst = `ls *.$tarbal.*.tar `
390401
if ( $#lst == 1 ) then
391402
tar xvf $lst
392-
set this = `ls -1d *${tarbal}z/$inball/mem*`
393-
@ nmem = $this[1]
394-
@ nc = 0
395-
while ( $nc < $nmem[1] )
396-
@ nc = $nc + 1
397-
set memtag = `echo $nc | awk '{printf "%03d", $1}'`
398-
mkdir mem$memtag
399-
cd $mem$memtag
400-
ln -sf *${tarbal}z/$inball/mem$memtag/*.$bkgtyp.*nc4 .
401-
foreach fn ( `ls *.$bkgtyp*.nc4`)
403+
/bin/mv *${tarbal}*z/$inball/mem* .
404+
foreach dir ( `ls -d mem*` )
405+
cd $dir
406+
foreach fn ( `ls *.$bkgtyp*.nc4` )
402407
set sfx = `echo $fn | cut -d. -f${nwords}-`
403408
ln -sf $fn geos.$bkgtyp.$sfx
404409
end
405410
cd -
406411
end
407412
cd $JEDIWRK
413+
ln -sf atmens/mem* .
408414
else
409415
echo " ${MYNAME}: failed to retrieve ensemble tar ball, aborting ..."
410416
exit(4)

src/Applications/GEOSdas_App/jedi/setup_aanajedi.pl

Lines changed: 52 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# setup_aanajedi - setup for an atmospheric JEDI analysis
44
#
55
# 20Apr2015 Todling Initial code
6+
# 01May2015 Todling Add 4d-capability
67
#
78
#-----------------------------------------------------------------------------------------------------
89

@@ -167,6 +168,50 @@ sub init {
167168
if ( $nodename eq "cas" ) { $ncpus_per_node = 46; }
168169
if ( $nodename eq "mil" ) { $ncpus_per_node = 126; }
169170

171+
# Var run configuration parameters
172+
$cres = $resolution + 1;
173+
if ( $cres == 361 ) {
174+
if ( $scheme eq "hyb4denvar" ) {
175+
} else {
176+
$varxlayout = 10;
177+
$varylayout = 10;
178+
$gsixlayout = 10;
179+
$gsiylayout = 6 * $gsixlayout;
180+
$perhost_var = 16;
181+
}
182+
$gsibec_lat = 361;
183+
$gsibec_lon = 576;
184+
} elsif ( $cres == 181 ) {
185+
if ( $scheme eq "hyb4denvar" ) {
186+
$varxlayout = 16;
187+
$varylayout = 7;
188+
$gsixlayout = 21;
189+
$gsiylayout = 32;
190+
$perhost_var = 12;
191+
} else {
192+
$varxlayout = 8;
193+
$varylayout = 8;
194+
$gsixlayout = 8;
195+
$gsiylayout = 6 * $gsixlayout;
196+
$perhost_var = 16;
197+
}
198+
$gsibec_lat = 181;
199+
$gsibec_lon = 288;
200+
} elsif ( $cres == 91 ) {
201+
if ( $scheme eq "hyb4denvar" ) {
202+
} else {
203+
$varxlayout = 6;
204+
$varylayout = 6;
205+
$gsixlayout = 6;
206+
$gsiylayout = 6 * $gsixlayout;
207+
}
208+
$gsibec_lat = 91;
209+
$gsibec_lon = 144;
210+
$perhost_var = 16;
211+
} else {
212+
die "Unknown resolutio settings, aborting \n";
213+
}
214+
$ncpus_var = $gsixlayout * $gsiylayout;
170215

171216
# build internal variables
172217

@@ -176,6 +221,7 @@ sub init {
176221
@rc2jedi = qw ( JEDIanaConfig.csh
177222
SWELLConfig.csh
178223
jedi_acquire_bkg.j
224+
jedi_acquire_ebkg.j
179225
jedi_acquire_ioda.j
180226
jedi_acquire_vbc.j
181227
jedi_run_var.j
@@ -321,6 +367,9 @@ sub ed_conf_rc {
321367

322368
my($acq);
323369

370+
$jedihyb = 0;
371+
if ( $scheme == "hyb4denvar" ) { $jedihyb = 1 };
372+
324373
$tmprc = "$mydir/tmp.rc";
325374
$thisrc = "$mydir/$conffn";
326375

@@ -332,10 +381,12 @@ sub ed_conf_rc {
332381
while( defined($rcd = <LUN>) ) {
333382
chomp($rcd);
334383
if($rcd =~ /\@JEDI_FEEDBACK_VARBC/) {$rcd=~ s/\@JEDI_FEEDBACK_VARBC/$cvbc/g; }
384+
if($rcd =~ /\@JEDI_HYBRID/) {$rcd=~ s/\@JEDI_HYBRID/$jedihyb/g; }
335385
if($rcd =~ /\@JEDI_INPUT/) {$rcd=~ s/\@JEDI_INPUT/$jediinput/g; }
336386
if($rcd =~ /\@JEDI_OBS_OPT/) {$rcd=~ s/\@JEDI_OBS_OPT/$jedi_obs_opt/g; }
337387
if($rcd =~ /\@JEDI_ROOT/) {$rcd=~ s/\@JEDI_ROOT/$jediroot/g; }
338388
if($rcd =~ /\@JEDI_STATIC_FILES/) {$rcd=~ s/\@JEDI_STATIC_FILES/$jedistatic/g; }
389+
if($rcd =~ /\@JEDI_VAR_NCPUS/) {$rcd=~ s/\@JEDI_VAR_NCPUS/$ncpus_var/g; }
339390
if($rcd =~ /\@JEDI_VAR_PERHOST/) {$rcd=~ s/\@JEDI_VAR_PERHOST/$perhost_var/g; }
340391
if($rcd =~ /\@OFFLIODADIR/) {$rcd=~ s/\@OFFLIODADIR/$iodadir/g; }
341392

@@ -427,48 +478,7 @@ sub ed_var_yaml {
427478

428479
$tmprc = "$mydir/tmp.rc";
429480
$thisrc = "$mydir/$conffn";
430-
my $cres = $resolution + 1;
431-
if ( $cres == 361 ) {
432-
if ( $scheme eq "hyb4denvar" ) {
433-
} else {
434-
$varxlayout = 10;
435-
$varylayout = 10;
436-
$gsixlayout = 10;
437-
$gsiylayout = 6 * $gsixlayout;
438-
$perhost_var = 16;
439-
}
440-
$gsibec_lat = 361;
441-
$gsibec_lon = 576;
442-
} elsif ( $cres == 181 ) {
443-
if ( $scheme eq "hyb4denvar" ) {
444-
$varxlayout = 16;
445-
$varylayout = 7;
446-
$gsixlayout = 21;
447-
$gsiylayout = 32;
448-
$perhost_var = 12;
449-
} else {
450-
$varxlayout = 8;
451-
$varylayout = 8;
452-
$gsixlayout = 8;
453-
$gsiylayout = 6 * $gsixlayout;
454-
$perhost_var = 16;
455-
}
456-
$gsibec_lat = 181;
457-
$gsibec_lon = 288;
458-
} elsif ( $cres == 91 ) {
459-
if ( $scheme eq "hyb4denvar" ) {
460-
} else {
461-
$varxlayout = 6;
462-
$varylayout = 6;
463-
$gsixlayout = 6;
464-
$gsiylayout = 6 * $gsixlayout;
465-
}
466-
$gsibec_lat = 91;
467-
$gsibec_lon = 144;
468-
$perhost_var = 16;
469-
} else {
470-
die "Unknown resolutio settings, aborting \n";
471-
}
481+
472482
# the following will need ATTENTION:
473483
$obsop_mapdir = "$fvhome/run/jedi/Config";
474484

0 commit comments

Comments
 (0)