|
2 | 2 | MPAS_STREAM_LIST_DUPLICATE = 1, & |
3 | 3 | MPAS_STREAM_LIST_NOT_FOUND = 2 |
4 | 4 |
|
| 5 | + ! Maximum number of segments in the output_timelevels specification |
| 6 | + integer, parameter :: MAX_TIMELEVEL_SEGMENTS = 32 |
| 7 | + |
| 8 | + ! timelevel specification |
| 9 | + type MPAS_timelevel_spec_type |
| 10 | + integer :: n_segments = 0 ! Number of parsed segments |
| 11 | + real(kind=RKIND) :: start_hour(MAX_TIMELEVEL_SEGMENTS) ! Start hour for each segment |
| 12 | + real(kind=RKIND) :: end_hour(MAX_TIMELEVEL_SEGMENTS) ! End hour for each segment |
| 13 | + real(kind=RKIND) :: interval_minutes(MAX_TIMELEVEL_SEGMENTS) ! Output interval in minutes |
| 14 | + logical :: is_parsed = .false. ! True if successfully parsed |
| 15 | + end type MPAS_timelevel_spec_type |
| 16 | + |
5 | 17 | type MPAS_stream_list_type |
6 | 18 |
|
7 | 19 | ! Used by list head |
|
17 | 29 | character(len=StrKIND) :: filename |
18 | 30 | character(len=StrKIND) :: filename_template |
19 | 31 | character(len=StrKIND) :: filename_interval |
| 32 | + character(len=StrKIND) :: output_timelevels = '' |
| 33 | + type (MPAS_timelevel_spec_type) :: timelevel_spec |
20 | 34 | type (MPAS_Stream_type), pointer :: stream => null() |
21 | 35 | integer :: timeLevel = 0 |
22 | 36 | integer :: nRecords |
23 | 37 | integer :: precision = MPAS_IO_NATIVE_PRECISION |
24 | 38 | integer :: clobber_mode |
25 | 39 | integer :: gattr_update = 1 |
26 | 40 | integer :: io_type |
| 41 | + integer :: output_done_marker = 0 |
27 | 42 | type (MPAS_TimeInterval_type), pointer :: recordInterval => null() |
28 | 43 | type (MPAS_stream_list_type), pointer :: alarmList_in => null() |
29 | 44 | type (MPAS_stream_list_type), pointer :: alarmList_out => null() |
|
0 commit comments