@@ -24,14 +24,22 @@ def stage_ic(self):
24
24
25
25
# Atm ICs
26
26
if self .app_config .do_atm :
27
- prefix = f" { cpl_ic [ 'BASE_CPLIC' ] } / { cpl_ic [ 'CPL_ATMIC' ] } /@Y@m@d@H/atmos"
28
- for file in [ 'gfs_ctrl.nc' ] + \
29
- [ f' { datatype } _data.tile { tile } .nc'
30
- for datatype in [ 'gfs' , 'sfc' ]
31
- for tile in range ( 1 , self . n_tiles + 1 )]:
27
+ if self . cdump in 'gdas' :
28
+ prefix = f" { cpl_ic [ 'BASE_CPLIC' ] } / { cpl_ic [ 'CPL_ATMIC' ] } /gdas.@Y@m@d/@H/model_data/atmos/restart"
29
+ PDY = self . _base . get ( 'SDATE' ). strftime ( "%Y%m%d%H" )[ 0 : 8 ]
30
+ cyc = self . _base . get ( 'SDATE' ). strftime ( "%Y%m%d%H" )[ 8 : 10 ]
31
+ file = PDY + '.' + cyc + '0000.fv_core.res.nc'
32
32
data = f"{ prefix } /{ file } "
33
- dep_dict = {'type' : 'data' , 'data' : data }
34
- deps .append (rocoto .add_dependency (dep_dict ))
33
+ dep_dict = {'type' : 'data' , 'data' : data , 'offset' : f"-{ timedelta_to_HMS (self ._base ['cycle_interval' ])} " }
34
+ else :
35
+ prefix = f"{ cpl_ic ['BASE_CPLIC' ]} /{ cpl_ic ['CPL_ATMIC' ]} /@Y@m@d@H/atmos"
36
+ for file in ['gfs_ctrl.nc' ] + \
37
+ [f'{ datatype } _data.tile{ tile } .nc'
38
+ for datatype in ['gfs' , 'sfc' ]
39
+ for tile in range (1 , self .n_tiles + 1 )]:
40
+ data = f"{ prefix } /{ file } "
41
+ dep_dict = {'type' : 'data' , 'data' : data }
42
+ deps .append (rocoto .add_dependency (dep_dict ))
35
43
else : # data-atmosphere
36
44
# TODO - need more information about how these forcings are stored
37
45
prefix = f"{ cpl_ic ['BASE_CPLIC' ]} /{ cpl_ic ['CPL_DATM' ]} /@Y@m@d@H"
@@ -70,13 +78,14 @@ def stage_ic(self):
70
78
71
79
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = deps )
72
80
81
+ cycledef = 'gdas_half' if self .cdump in ['gdas' ] else self .cdump
73
82
resources = self .get_resource ('stage_ic' )
74
83
task_name = f'{ self .cdump } stage_ic'
75
84
task_dict = {'task_name' : task_name ,
76
85
'resources' : resources ,
77
86
'dependency' : dependencies ,
78
87
'envars' : self .envars ,
79
- 'cycledef' : self . cdump ,
88
+ 'cycledef' : cycledef ,
80
89
'command' : f'{ self .HOMEgfs } /jobs/rocoto/stage_ic.sh' ,
81
90
'job_name' : f'{ self .pslot } _{ task_name } _@H' ,
82
91
'log' : f'{ self .rotdir } /logs/@Y@m@d@H/{ task_name } .log' ,
@@ -833,7 +842,7 @@ def _fcst_cycled(self):
833
842
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = dependencies )
834
843
835
844
if self .cdump in ['gdas' ]:
836
- dep_dict = {'type' : 'cycleexist ' , 'condition ' : 'not' , 'offset' : f"- { timedelta_to_HMS ( self ._base [ 'cycle_interval' ]) } " }
845
+ dep_dict = {'type' : 'task ' , 'name ' : f' { self .cdump } stage_ic' }
837
846
dependencies .append (rocoto .add_dependency (dep_dict ))
838
847
dependencies = rocoto .create_dependency (dep_condition = 'or' , dep = dependencies )
839
848
@@ -2535,7 +2544,7 @@ def efcs(self):
2535
2544
dep_dict = {'type' : 'task' , 'name' : f'{ self .cdump } esfc' }
2536
2545
deps .append (rocoto .add_dependency (dep_dict ))
2537
2546
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = deps )
2538
- dep_dict = {'type' : 'cycleexist ' , 'condition ' : 'not' , 'offset' : f"- { timedelta_to_HMS ( self . _base [ 'cycle_interval' ]) } " }
2547
+ dep_dict = {'type' : 'task ' , 'name ' : f'gdasstage_ic' }
2539
2548
dependencies .append (rocoto .add_dependency (dep_dict ))
2540
2549
dependencies = rocoto .create_dependency (dep_condition = 'or' , dep = dependencies )
2541
2550
0 commit comments