31INTEGER,
PARAMETER :: vol7d_ana_lenident=20
38 TYPE(geo_coord) :: coord
39 CHARACTER(len=vol7d_ana_lenident) :: ident
43TYPE(vol7d_ana),
PARAMETER :: vol7d_ana_miss=
vol7d_ana(geo_coord_miss,cmiss)
49 MODULE PROCEDURE vol7d_ana_init
55 MODULE PROCEDURE vol7d_ana_delete
61INTERFACE OPERATOR (==)
62 MODULE PROCEDURE vol7d_ana_eq
68INTERFACE OPERATOR (/=)
69 MODULE PROCEDURE vol7d_ana_ne
78 MODULE PROCEDURE vol7d_ana_gt
86 MODULE PROCEDURE vol7d_ana_lt
93INTERFACE OPERATOR (>=)
94 MODULE PROCEDURE vol7d_ana_ge
101INTERFACE OPERATOR (<=)
102 MODULE PROCEDURE vol7d_ana_le
108 MODULE PROCEDURE vol7d_ana_c_e
114 MODULE PROCEDURE vol7d_ana_read_unit, vol7d_ana_vect_read_unit
120 MODULE PROCEDURE vol7d_ana_write_unit, vol7d_ana_vect_write_unit
123#define VOL7D_POLY_TYPE TYPE(vol7d_ana)
124#define VOL7D_POLY_TYPES _ana
126#include "array_utilities_pre.F90"
130 MODULE PROCEDURE to_char_ana
135 MODULE PROCEDURE display_ana
143SUBROUTINE vol7d_ana_init(this, lon, lat, ident, ilon, ilat)
144TYPE(vol7d_ana),
INTENT(INOUT) :: this
145REAL(kind=fp_geo),
INTENT(in),
OPTIONAL :: lon
146REAL(kind=fp_geo),
INTENT(in),
OPTIONAL :: lat
147CHARACTER(len=*),
INTENT(in),
OPTIONAL :: ident
148INTEGER(kind=int_l),
INTENT(in),
OPTIONAL :: ilon
149INTEGER(kind=int_l),
INTENT(in),
OPTIONAL :: ilat
151CALL init(this%coord, lon=lon, lat=lat , ilon=ilon, ilat=ilat)
152IF (
PRESENT(ident))
THEN
158END SUBROUTINE vol7d_ana_init
162SUBROUTINE vol7d_ana_delete(this)
163TYPE(vol7d_ana),
INTENT(INOUT) :: this
168END SUBROUTINE vol7d_ana_delete
172character(len=80) function to_char_ana(this)
174TYPE(vol7d_ana),
INTENT(in) :: this
176to_char_ana=
"ANA: "//&
177 to_char(getlon(this%coord),miss=
"Missing lon",form=
"(f11.5)")//&
178 to_char(getlat(this%coord),miss=
"Missing lat",form=
"(f11.5)")//&
179 t2c(this%ident,miss=
"Missing ident")
183end function to_char_ana
186subroutine display_ana(this)
188TYPE(vol7d_ana),
INTENT(in) :: this
192end subroutine display_ana
195ELEMENTAL FUNCTION vol7d_ana_eq(this, that)
RESULT(res)
196TYPE(vol7d_ana),
INTENT(IN) :: this, that
199res = this%coord == that%coord .AND. this%ident == that%ident
201END FUNCTION vol7d_ana_eq
204ELEMENTAL FUNCTION vol7d_ana_ne(this, that)
RESULT(res)
205TYPE(vol7d_ana),
INTENT(IN) :: this, that
208res = .NOT.(this == that)
210END FUNCTION vol7d_ana_ne
213ELEMENTAL FUNCTION vol7d_ana_gt(this, that)
RESULT(res)
214TYPE(vol7d_ana),
INTENT(IN) :: this, that
217res = this%ident > that%ident
219if ( this%ident == that%ident)
then
220 res =this%coord > that%coord
223END FUNCTION vol7d_ana_gt
226ELEMENTAL FUNCTION vol7d_ana_ge(this, that)
RESULT(res)
230res = .not. this < that
232END FUNCTION vol7d_ana_ge
235ELEMENTAL FUNCTION vol7d_ana_lt(this, that)
RESULT(res)
236TYPE(vol7d_ana),
INTENT(IN) :: this, that
239res = this%ident < that%ident
241if ( this%ident == that%ident)
then
242 res = this%coord < that%coord
245END FUNCTION vol7d_ana_lt
248ELEMENTAL FUNCTION vol7d_ana_le(this, that)
RESULT(res)
249TYPE(vol7d_ana),
INTENT(IN) :: this, that
252res = .not. (this > that)
254END FUNCTION vol7d_ana_le
258ELEMENTAL FUNCTION vol7d_ana_c_e(this)
RESULT(c_e)
259TYPE(vol7d_ana),
INTENT(IN) :: this
261c_e = this /= vol7d_ana_miss
262END FUNCTION vol7d_ana_c_e
269SUBROUTINE vol7d_ana_read_unit(this, unit)
270TYPE(vol7d_ana),
INTENT(out) :: this
271INTEGER,
INTENT(in) :: unit
273CALL vol7d_ana_vect_read_unit((/this/), unit)
275END SUBROUTINE vol7d_ana_read_unit
282SUBROUTINE vol7d_ana_vect_read_unit(this, unit)
283TYPE(vol7d_ana) :: this(:)
284INTEGER,
INTENT(in) :: unit
286CHARACTER(len=40) :: form
289INQUIRE(unit, form=form)
290IF (form ==
'FORMATTED')
THEN
291 READ(unit,
'(A)')this(:)%ident
293 READ(unit)this(:)%ident
296END SUBROUTINE vol7d_ana_vect_read_unit
303SUBROUTINE vol7d_ana_write_unit(this, unit)
304TYPE(vol7d_ana),
INTENT(in) :: this
305INTEGER,
INTENT(in) :: unit
307CALL vol7d_ana_vect_write_unit((/this/), unit)
309END SUBROUTINE vol7d_ana_write_unit
316SUBROUTINE vol7d_ana_vect_write_unit(this, unit)
317TYPE(vol7d_ana),
INTENT(in) :: this(:)
318INTEGER,
INTENT(in) :: unit
320CHARACTER(len=40) :: form
323INQUIRE(unit, form=form)
324IF (form ==
'FORMATTED')
THEN
325 WRITE(unit,
'(A)')this(:)%ident
327 WRITE(unit)this(:)%ident
330END SUBROUTINE vol7d_ana_vect_write_unit
333#include "array_utilities_inc.F90"
Distruttore per la classe vol7d_ana.
Index method with sorted array.
Costruttore per la classe vol7d_ana.
Legge un oggetto vol7d_ana o un vettore di oggetti vol7d_ana da un file FORMATTED o UNFORMATTED.
Represent ana object in a pretty string.
Scrive un oggetto vol7d_ana o un vettore di oggetti vol7d_ana su un file FORMATTED o UNFORMATTED.
Classes for handling georeferenced sparse points in geographical corodinates.
Definition of constants to be used for declaring variables of a desired type.
Definitions of constants and functions for working with missing values.
Classe per la gestione dell'anagrafica di stazioni meteo e affini.
Derived type defining an isolated georeferenced point on Earth in polar geographical coordinates.
Definisce l'anagrafica di una stazione.