32 integer,
parameter :: network_name_len=20
39 character(len=network_name_len) :: name
40 end type vol7d_network
43 TYPE(vol7d_network
),
PARAMETER :: vol7d_network_miss=vol7d_network(cmiss)
49 MODULE PROCEDURE vol7d_network_init
55 MODULE PROCEDURE vol7d_network_delete
61 INTERFACE operator (==)
62 MODULE PROCEDURE vol7d_network_eq
68 INTERFACE operator (/=)
69 MODULE PROCEDURE vol7d_network_ne
75 INTERFACE operator (>)
76 MODULE PROCEDURE vol7d_network_gt
82 INTERFACE operator (<)
83 MODULE PROCEDURE vol7d_network_lt
89 INTERFACE operator (>=)
90 MODULE PROCEDURE vol7d_network_ge
96 INTERFACE operator (<=)
97 MODULE PROCEDURE vol7d_network_le
100 #define VOL7D_POLY_TYPE TYPE(vol7d_network)
101 #define VOL7D_POLY_TYPES _network
103 #include "array_utilities_pre.F90"
107 MODULE PROCEDURE display_network
112 MODULE PROCEDURE c_e_network
117 MODULE PROCEDURE to_char_network
127 FUNCTION vol7d_network_new(name) RESULT(this)
128 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: name
130 TYPE(vol7d_network
) :: this
132 CALL
init(this, name)
134 END FUNCTION vol7d_network_new
140 SUBROUTINE vol7d_network_init(this, name)
141 TYPE(vol7d_network
),
INTENT(INOUT) :: this
142 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: name
144 IF (present(name))
THEN
145 this%name = lowercase(name)
150 END SUBROUTINE vol7d_network_init
154 SUBROUTINE vol7d_network_delete(this)
155 TYPE(vol7d_network
),
INTENT(INOUT) :: this
159 END SUBROUTINE vol7d_network_delete
162 subroutine display_network(this)
164 TYPE(vol7d_network
),
INTENT(in) :: this
166 print*,to_char_network(this)
168 end subroutine display_network
171 elemental function c_e_network(this) result(res)
173 TYPE(vol7d_network
),
INTENT(in) :: this
176 res = .not. this == vol7d_network_miss
178 end function c_e_network
181 elemental character(len=20) function to_char_network(this)
183 TYPE(vol7d_network
),
INTENT(in) :: this
185 to_char_network=
"Network: "//trim(this%name)
189 end function to_char_network
192 ELEMENTAL FUNCTION vol7d_network_eq(this, that) RESULT(res)
193 TYPE(vol7d_network
),
INTENT(IN) :: this, that
196 res = (this%name == that%name)
198 END FUNCTION vol7d_network_eq
201 ELEMENTAL FUNCTION vol7d_network_ne(this, that) RESULT(res)
202 TYPE(vol7d_network
),
INTENT(IN) :: this, that
205 res = .NOT.(this == that)
207 END FUNCTION vol7d_network_ne
210 ELEMENTAL FUNCTION vol7d_network_gt(this, that) RESULT(res)
211 TYPE(vol7d_network
),
INTENT(IN) :: this, that
214 res = this%name > that%name
216 END FUNCTION vol7d_network_gt
218 ELEMENTAL FUNCTION vol7d_network_lt(this, that) RESULT(res)
219 TYPE(vol7d_network
),
INTENT(IN) :: this, that
222 res = this%name < that%name
224 END FUNCTION vol7d_network_lt
227 ELEMENTAL FUNCTION vol7d_network_ge(this, that) RESULT(res)
228 TYPE(vol7d_network
),
INTENT(IN) :: this, that
231 res = this%name >= that%name
233 END FUNCTION vol7d_network_ge
235 ELEMENTAL FUNCTION vol7d_network_le(this, that) RESULT(res)
236 TYPE(vol7d_network
),
INTENT(IN) :: this, that
239 res = this%name <= that%name
241 END FUNCTION vol7d_network_le
244 #include "array_utilities_inc.F90"
Definitions of constants and functions for working with missing values.
Classe per la gestione delle reti di stazioni per osservazioni meteo e affini.
return network object in a pretty string
Distruttore per la classe vol7d_network.
Utilities for CHARACTER variables.
Definition of constants to be used for declaring variables of a desired type.
Costruttore per la classe vol7d_network.