38 CHARACTER(len=10) :: btable
39 CHARACTER(len=65) :: description
40 CHARACTER(len=24) :: unit
41 integer :: scalefactor
51 TYPE(vol7d_var),
PARAMETER :: vol7d_var_miss= &
52 vol7d_var(cmiss,cmiss,cmiss,imiss,imiss,imiss,imiss,imiss,imiss)
58 MODULE PROCEDURE vol7d_var_init
64 MODULE PROCEDURE vol7d_var_delete
72 INTERFACE operator (==)
73 MODULE PROCEDURE vol7d_var_eq
82 INTERFACE operator (/=)
83 MODULE PROCEDURE vol7d_var_ne, vol7d_var_nesv
88 MODULE PROCEDURE vol7d_var_c_e
91 #define VOL7D_POLY_TYPE TYPE(vol7d_var)
92 #define VOL7D_POLY_TYPES _var
93 #include "array_utilities_pre.F90"
97 MODULE PROCEDURE display_var, display_var_vect
101 INTEGER,
PARAMETER :: var_ord=0
102 INTEGER,
PARAMETER :: var_dir360=1
103 INTEGER,
PARAMETER :: var_press=2
104 INTEGER,
PARAMETER :: var_ucomp=3
105 INTEGER,
PARAMETER :: var_vcomp=4
106 INTEGER,
PARAMETER :: var_wcomp=5
116 elemental SUBROUTINE vol7d_var_init(this, btable, description, unit, scalefactor)
118 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: btable
119 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: description
120 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: unit
121 INTEGER,
INTENT(in),
OPTIONAL :: scalefactor
123 IF (present(btable))
THEN
127 this%description = cmiss
129 this%scalefactor = imiss
132 IF (present(description))
THEN
133 this%description = description
135 this%description = cmiss
137 IF (present(unit))
THEN
142 if (present(scalefactor))
then
143 this%scalefactor = scalefactor
145 this%scalefactor = imiss
154 END SUBROUTINE vol7d_var_init
157 ELEMENTAL FUNCTION vol7d_var_new(btable, description, unit, scalefactor) RESULT(this)
158 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: btable
159 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: description
160 CHARACTER(len=*),
INTENT(in),
OPTIONAL :: unit
161 INTEGER,
INTENT(in),
OPTIONAL :: scalefactor
165 CALL
init(this,btable, description, unit, scalefactor)
167 END FUNCTION vol7d_var_new
171 elemental SUBROUTINE vol7d_var_delete(this)
175 this%description = cmiss
177 this%scalefactor = imiss
179 END SUBROUTINE vol7d_var_delete
182 elemental FUNCTION vol7d_var_eq(this, that) RESULT(res)
186 res = this%btable == that%btable
188 END FUNCTION vol7d_var_eq
204 elemental FUNCTION vol7d_var_ne(this, that) RESULT(res)
208 res = .NOT.(this == that)
210 END FUNCTION vol7d_var_ne
213 FUNCTION vol7d_var_nesv(this, that) RESULT(res)
214 TYPE(vol7d_var),
INTENT(IN) :: this, that(:)
215 LOGICAL :: res(size(that))
220 res(i) = .NOT.(this == that(i))
223 END FUNCTION vol7d_var_nesv
228 subroutine display_var(this)
232 print*,
"VOL7DVAR: ",this%btable,trim(this%description),
" : ",this%unit,&
233 " scale factor",this%scalefactor
235 end subroutine display_var
239 subroutine display_var_vect(this)
245 call display_var(this(i))
248 end subroutine display_var_vect
250 FUNCTION vol7d_var_c_e(this) RESULT(c_e)
253 c_e = this /= vol7d_var_miss
254 END FUNCTION vol7d_var_c_e
261 ELEMENTAL FUNCTION vol7d_vartype(this) RESULT(vartype)
267 SELECT CASE(this%btable)
268 CASE(
'B01012',
'B11001',
'B11043',
'B22001')
270 CASE(
'B07004',
'B10004',
'B10051',
'B10060')
272 CASE(
'B11003',
'B11200')
274 CASE(
'B11004',
'B11201')
276 CASE(
'B11005',
'B11006')
280 END FUNCTION vol7d_vartype
283 #include "array_utilities_inc.F90"
Definitions of constants and functions for working with missing values.
Distruttore per la classe vol7d_var.
display on the screen a brief content of object
Classe per la gestione delle variabili osservate da stazioni meteo e affini.
Costruttore per la classe vol7d_var.
Definisce una variabile meteorologica osservata o un suo attributo.
Definition of constants to be used for declaring variables of a desired type.