YAC 3.18.0
Yet Another Coupler
Loading...
Searching...
No Matches
test_def_datetime.F90
Go to the documentation of this file.
1! Copyright (c) 2024 The YAC Authors
2!
3! SPDX-License-Identifier: BSD-3-Clause
4
8
9#include "test_macros.inc"
10
12
13 USE utest
14 USE yac
15
16 IMPLICIT NONE
17
18 INTEGER :: instance_id, comp_id
19
20 INTEGER :: arg_len
21 INTEGER, PARAMETER :: max_opt_arg_len = 1024
22 CHARACTER(max_opt_arg_len) :: config_dir
23
24 CALL start_test("yac_def_datetime")
25
26 CALL test(command_argument_count() == 1)
27 CALL get_command_argument(1, config_dir, arg_len)
28
29 ! test with default instance
30
31 CALL yac_finit()
32 CALL yac_fread_config_yaml(trim(config_dir) // 'test_def_datetime.yaml')
33
34 CALL yac_fdef_comp("dummy", comp_id)
35 CALL yac_fsync_def()
36
37 CALL test(yac_fget_start_datetime() == '2008-03-09T16:05:07.000')
38 CALL test(yac_fget_end_datetime() == '2008-03-10T16:05:07.000')
39
40 CALL yac_fcleanup()
41 CALL yac_finit()
42
43 CALL yac_fdef_datetime(start_datetime = '2008-03-09T00:00:00.000')
44
45 CALL yac_fdef_comp("dummy", comp_id)
46 CALL yac_fsync_def()
47
48 CALL test(yac_fget_start_datetime() == '2008-03-09T00:00:00.000')
49
50 CALL yac_fcleanup()
51 CALL yac_finit()
52
53 CALL yac_fdef_datetime(end_datetime = '2008-03-10T00:00:00.000')
54
55 CALL yac_fdef_comp("dummy", comp_id)
56 CALL yac_fsync_def()
57
58 CALL test(yac_fget_end_datetime() == '2008-03-10T00:00:00.000')
59
60 CALL yac_fcleanup()
61 CALL yac_finit()
62
63 CALL yac_fdef_datetime( &
64 start_datetime = '2008-03-09T16:05:07', &
65 end_datetime = '2008-03-10T16:05:07')
66
67 CALL yac_fdef_comp("dummy", comp_id)
68 CALL yac_fsync_def()
69
70 CALL test(yac_fget_start_datetime() == '2008-03-09T16:05:07.000')
71 CALL test(yac_fget_end_datetime() == '2008-03-10T16:05:07.000')
72
73 CALL yac_fcleanup()
74
75 ! test with explicit instance
76
77 CALL yac_finit_instance(instance_id)
79 instance_id, trim(config_dir) // 'test_def_datetime.yaml')
80 CALL yac_fdef_comp(instance_id, "dummy", comp_id)
81
82 CALL yac_fsync_def(instance_id)
83
84 CALL test(yac_fget_start_datetime_instance(instance_id) == '2008-03-09T16:05:07.000')
85 CALL test(yac_fget_end_datetime_instance(instance_id) == '2008-03-10T16:05:07.000')
86
87 CALL yac_fcleanup_instance(instance_id)
88 CALL yac_finit_instance(instance_id)
89
91 instance_id, start_datetime = '2008-03-09T00:00:00.000')
92
93 CALL yac_fdef_comp(instance_id, "dummy", comp_id)
94 CALL yac_fsync_def(instance_id)
95
96 CALL test(yac_fget_start_datetime_instance(instance_id) == '2008-03-09T00:00:00.000')
97
98 CALL yac_fcleanup_instance(instance_id)
99 CALL yac_finit_instance(instance_id)
100
102 instance_id, end_datetime = '2008-03-10T00:00:00.000')
103
104 CALL yac_fdef_comp(instance_id, "dummy", comp_id)
105 CALL yac_fsync_def(instance_id)
106
107 CALL test(yac_fget_end_datetime_instance(instance_id) == '2008-03-10T00:00:00.000')
108
109 CALL yac_fcleanup_instance(instance_id)
110 CALL yac_finit_instance(instance_id)
111
113 instance_id, start_datetime = '2008-03-09T16:05:07.000', &
114 end_datetime = '2008-03-10T16:05:07.000')
115
116 CALL yac_fdef_comp(instance_id, "dummy", comp_id)
117 CALL yac_fsync_def(instance_id)
118
119 CALL test(yac_fget_start_datetime_instance(instance_id) == '2008-03-09T16:05:07.000')
120 CALL test(yac_fget_end_datetime_instance(instance_id) == '2008-03-10T16:05:07.000')
121
122 CALL yac_fcleanup_instance(instance_id)
123
124 CALL yac_ffinalize()
125
126 CALL stop_test
127
128 CALL exit_tests
129
130END PROGRAM test_def_datetime
131
Fortran interface for the coupler cleanup before restart.
Fortran interface for the definition of time parameters.
Fortran interface for the coupler termination.
Fortran interface for getting the start- and end datetime.
Fortran interface for the reading of configuration files.
Fortran interface for invoking the end of the definition phase.
Definition utest.F90:5
subroutine, public start_test(name)
Definition utest.F90:20
subroutine, public stop_test()
Definition utest.F90:27
subroutine, public exit_tests()
Definition utest.F90:81
program test_def_datetime
subroutine yac_finit_instance(yac_instance_id)
subroutine yac_fdef_datetime_instance(yac_instance_id, start_datetime, end_datetime)
subroutine yac_fcleanup_instance(yac_instance_id)
character(len=:) function, allocatable yac_fget_end_datetime_instance(yac_instance_id)
character(len=:) function, allocatable yac_fget_start_datetime_instance(yac_instance_id)