32 integer,
parameter :: network_name_len=20
39 character(len=network_name_len) :: name
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" Definisce la rete a cui appartiene una stazione.
Classe per la gestione delle reti di stazioni per osservazioni meteo e affini.
return network object in a pretty string
Definitions of constants and functions for working with missing values.
Distruttore per la classe vol7d_network.
Utilities for CHARACTER variables.
Costruttore per la classe vol7d_network.
Definition of constants to be used for declaring variables of a desired type.