@@ -24,22 +24,14 @@ def stage_ic(self):
24
24
25
25
# Atm ICs
26
26
if self .app_config .do_atm :
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'
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 )]:
32
32
data = f"{ prefix } /{ file } "
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 ))
33
+ dep_dict = {'type' : 'data' , 'data' : data }
34
+ deps .append (rocoto .add_dependency (dep_dict ))
43
35
else : # data-atmosphere
44
36
# TODO - need more information about how these forcings are stored
45
37
prefix = f"{ cpl_ic ['BASE_CPLIC' ]} /{ cpl_ic ['CPL_DATM' ]} /@Y@m@d@H"
@@ -78,14 +70,13 @@ def stage_ic(self):
78
70
79
71
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = deps )
80
72
81
- cycledef = 'gdas_half' if self .cdump in ['gdas' ] else self .cdump
82
73
resources = self .get_resource ('stage_ic' )
83
74
task_name = f'{ self .cdump } stage_ic'
84
75
task_dict = {'task_name' : task_name ,
85
76
'resources' : resources ,
86
77
'dependency' : dependencies ,
87
78
'envars' : self .envars ,
88
- 'cycledef' : cycledef ,
79
+ 'cycledef' : self . cdump ,
89
80
'command' : f'{ self .HOMEgfs } /jobs/rocoto/stage_ic.sh' ,
90
81
'job_name' : f'{ self .pslot } _{ task_name } _@H' ,
91
82
'log' : f'{ self .rotdir } /logs/@Y@m@d@H/{ task_name } .log' ,
@@ -842,7 +833,7 @@ def _fcst_cycled(self):
842
833
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = dependencies )
843
834
844
835
if self .cdump in ['gdas' ]:
845
- dep_dict = {'type' : 'task ' , 'name ' : f' { self .cdump } stage_ic' }
836
+ dep_dict = {'type' : 'cycleexist ' , 'condition ' : 'not' , 'offset' : f"- { timedelta_to_HMS ( self ._base [ 'cycle_interval' ]) } " }
846
837
dependencies .append (rocoto .add_dependency (dep_dict ))
847
838
dependencies = rocoto .create_dependency (dep_condition = 'or' , dep = dependencies )
848
839
@@ -2540,7 +2531,7 @@ def efcs(self):
2540
2531
dep_dict = {'type' : 'task' , 'name' : f'{ self .cdump } esfc' }
2541
2532
deps .append (rocoto .add_dependency (dep_dict ))
2542
2533
dependencies = rocoto .create_dependency (dep_condition = 'and' , dep = deps )
2543
- dep_dict = {'type' : 'task ' , 'name ' : f'gdasstage_ic' }
2534
+ dep_dict = {'type' : 'cycleexist ' , 'condition ' : 'not' , 'offset' : f"- { timedelta_to_HMS ( self . _base [ 'cycle_interval' ]) } " }
2544
2535
dependencies .append (rocoto .add_dependency (dep_dict ))
2545
2536
dependencies = rocoto .create_dependency (dep_condition = 'or' , dep = dependencies )
2546
2537
0 commit comments