forked from wrf-model/WRF
-
Notifications
You must be signed in to change notification settings - Fork 0
/
set_timekeeping_alarms.m4
97 lines (87 loc) · 3.43 KB
/
set_timekeeping_alarms.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
define( ALARM,
`! $1$2_ INTERVAL
! $1$2_interval is left there (and means minutes) for consistency, but
! $1$2_interval_m will take precedence if specified
CALL nl_get_$1$2_interval( grid%id, $1$2_interval ) ! same as minutes
CALL nl_get_$1$2_interval_d( grid%id, $1$2_interval_d )
CALL nl_get_$1$2_interval_h( grid%id, $1$2_interval_h )
CALL nl_get_$1$2_interval_m( grid%id, $1$2_interval_m )
CALL nl_get_$1$2_interval_s( grid%id, $1$2_interval_s )
IF ( $1$2_interval_m .EQ. 0 ) $1$2_interval_m = $1$2_interval
IF ( MAX( $1$2_interval_d, &
$1$2_interval_h, $1$2_interval_m , $1$2_interval_s ) .GT. 0 ) THEN
CALL WRFU_TimeIntervalSet( interval, D=$1$2_interval_d, &
H=$1$2_interval_h, M=$1$2_interval_m, S=$1$2_interval_s, rc=rc )
CALL wrf_check_error( WRFU_SUCCESS, rc, &
"WRFU_TimeIntervalSet($1$2_interval) FAILED", &
__FILE__ , &
__LINE__ )
ELSE
interval = run_length + padding_interval
ENDIF
CALL nl_get_$1$2_begin_y( grid%id, $1$2_begin_y )
CALL nl_get_$1$2_begin_d( grid%id, $1$2_begin_d )
CALL nl_get_$1$2_begin_h( grid%id, $1$2_begin_h )
CALL nl_get_$1$2_begin_m( grid%id, $1$2_begin_m )
CALL nl_get_$1$2_begin_s( grid%id, $1$2_begin_s )
IF ( MAX( $1$2_begin_y, $1$2_begin_d, &
$1$2_begin_h, $1$2_begin_m , $1$2_begin_s ) .GT. 0 ) THEN
CALL WRFU_TimeIntervalSet( begin_time , D=$1$2_begin_d, &
H=$1$2_begin_h, M=$1$2_begin_m, S=$1$2_begin_s, rc=rc )
CALL wrf_check_error( WRFU_SUCCESS, rc, &
"WRFU_TimeIntervalSet($1$2_begin) FAILED", &
__FILE__ , &
__LINE__ )
ELSE
begin_time = zero_time
ENDIF
CALL nl_get_$1$2_end_y( grid%id, $1$2_end_y )
CALL nl_get_$1$2_end_d( grid%id, $1$2_end_d )
CALL nl_get_$1$2_end_h( grid%id, $1$2_end_h )
CALL nl_get_$1$2_end_m( grid%id, $1$2_end_m )
CALL nl_get_$1$2_end_s( grid%id, $1$2_end_s )
IF ( MAX( $1$2_end_y, $1$2_end_d, &
$1$2_end_h, $1$2_end_m , $1$2_end_s ) .GT. 0 ) THEN
CALL WRFU_TimeIntervalSet( end_time , D=$1$2_end_d, &
H=$1$2_end_h, M=$1$2_end_m, S=$1$2_end_s, rc=rc )
CALL wrf_check_error( WRFU_SUCCESS, rc, &
"WRFU_TimeIntervalSet($1$2_end) FAILED", &
__FILE__ , &
__LINE__ )
ELSE
end_time = run_length + padding_interval
ENDIF
CALL domain_alarm_create( grid, $1$2_ALARM, interval, begin_time, end_time )
IF ( interval .NE. run_length + padding_interval .AND. begin_time .EQ. zero_time ) THEN
CALL WRFU_AlarmRingerOn( grid%alarms( $1$2_ALARM ), rc=rc )
CALL wrf_check_error( WRFU_SUCCESS, rc, &
"WRFU_AlarmRingerOn($1$2_ALARM) FAILED", &
__FILE__ , &
__LINE__ )
ENDIF'
)
ALARM(history,)
ALARM(auxinput,1)
ALARM(auxinput,2)
ALARM(auxinput,3)
ALARM(auxinput,4)
#ifndef WRF_CHEM
ALARM(auxinput,5)
#endif
ALARM(auxinput,6)
ALARM(auxinput,7)
ALARM(auxinput,8)
ALARM(auxinput,9)
ALARM(auxinput,10)
ALARM(auxinput,11)
ALARM(auxhist,1)
ALARM(auxhist,2)
ALARM(auxhist,3)
ALARM(auxhist,4)
ALARM(auxhist,5)
ALARM(auxhist,6)
ALARM(auxhist,7)
ALARM(auxhist,8)
ALARM(auxhist,9)
ALARM(auxhist,10)
ALARM(auxhist,11)