dm_dwd Module

I/O module for meteorological data of Deutscher Wetterdienst (DWD).


Uses

  • module~~dm_dwd~~UsesGraph module~dm_dwd dm_dwd module~dm_error dm_error module~dm_dwd->module~dm_error module~dm_file dm_file module~dm_dwd->module~dm_file module~dm_kind dm_kind module~dm_dwd->module~dm_kind module~dm_time dm_time module~dm_dwd->module~dm_time module~dm_util dm_util module~dm_dwd->module~dm_util module~dm_error->module~dm_kind module~dm_ascii dm_ascii module~dm_error->module~dm_ascii module~dm_file->module~dm_error module~dm_file->module~dm_kind iso_fortran_env iso_fortran_env module~dm_kind->iso_fortran_env module~dm_time->module~dm_error module~dm_time->module~dm_kind module~dm_time->module~dm_util unix unix module~dm_time->unix module~dm_util->module~dm_error module~dm_util->module~dm_kind

Used by

  • module~~dm_dwd~~UsedByGraph module~dm_dwd dm_dwd module~dm_dwd_api dm_dwd_api module~dm_dwd_api->module~dm_dwd module~dmpack dmpack module~dmpack->module~dm_dwd module~dmpack->module~dm_dwd_api

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: DWD_MOSMIX_STATION_ID_LEN = 5
integer, public, parameter :: DWD_MOSMIX_STATION_ICAO_LEN = 4
integer, public, parameter :: DWD_MOSMIX_STATION_NAME_LEN = 20

Interfaces

  • private function dwd_weather_report_has_value_int32(attribute) result(has)

    Returns .true. if attribute is a valid value.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: attribute

    DWD weather report attribute.

    Return Value logical

  • private function dwd_weather_report_has_value_real32(attribute) result(has)

    Returns .true. if attribute is a valid value.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: attribute

    DWD weather report attribute.

    Return Value logical


Derived Types

type, public ::  dwd_mosmix_station_type

MOSMIX weather station.

Components

Type Visibility Attributes Name Initial
character(len=DWD_MOSMIX_STATION_ID_LEN), public :: id = ' '

Station id.

character(len=DWD_MOSMIX_STATION_ICAO_LEN), public :: icao = '----'

ICAO code.

character(len=DWD_MOSMIX_STATION_NAME_LEN), public :: name = ' '

Station name.

real, public :: lat = 0.0

Latitude.

real, public :: lon = 0.0

Longitude.

integer, public :: elev = 0

Elevation.

type, public ::  dwd_weather_report_type

Weather report data (POI).

Components

Type Visibility Attributes Name Initial
character(len=TIME_LEN), public :: timestamp = TIME_DEFAULT

Date and time [UTC].

real, public :: cloud_cover = huge(0.0)

Cloud cover total [%].

real, public :: temperature_mean_prev_day = huge(0.0)

Daily mean of temperature previous day [°C].

real, public :: depth_new_snow = huge(0.0)

Depth of new snow [cm].

real, public :: dew_point_temperature_2_m = huge(0.0)

Dew point temperature at 2 meters above ground [°C].

real, public :: diffuse_solar_radiation_last_hour = huge(0.0)

Diffuse solar radiation last hour [W/m^2].

real, public :: direct_solar_radiation_last_24_hours = huge(0.0)

Direct solar radiation last 24 hours [W/m^2].

real, public :: direct_solar_radiation_last_hour = huge(0.0)

Direct solar radiation last hour [W/m^2].

real, public :: dry_bulb_temperature_2_m = huge(0.0)

Dry bulb temperature at 2 meters above ground [°C].

real, public :: evaporation_last_24_hours = huge(0.0)

Evaporation/evapotranspiration last 24 hours [mm].

real, public :: global_radiation_last_hour = huge(0.0)

Global radiation last hour [W/m^2].

real, public :: global_radiation_last_24_hours = huge(0.0)

Global radiation last 24 hours [W/m^2].

real, public :: height_lowest_cloud_above_station = huge(0.0)

Height of base of lowest cloud above station [m].

real, public :: horizontal_visibility = huge(0.0)

Horizontal visibility [km].

real, public :: max_wind_speed_mean_prev_day = huge(0.0)

Maximum of 10 minutes mean of wind speed for previous day [km/h].

real, public :: max_temperature_prev_day = huge(0.0)

Maximum of temperature for previous day [°C].

real, public :: max_temperature_last_12_hours_2_m = huge(0.0)

Maximum temperature last 12 hours 2 meters above ground [°C].

real, public :: max_wind_speed_mean_last_hour = huge(0.0)

Maximum wind speed as 10 minutes mean during last hour [km/h].

real, public :: max_wind_speed_last_6_hours = huge(0.0)

Maximum wind speed during last 6 hours [km/h].

real, public :: max_wind_speed_prev_day = huge(0.0)

Maximum wind speed for previous day [km/h].

real, public :: max_wind_speed_last_hour = huge(0.0)

Maximum wind speed last hour [km/h].

real, public :: wind_direction_mean_last_10_min_10_m = huge(0.0)

Mean wind direction during last 10 min at 10 meters above ground [°].

real, public :: wind_speed_mean_last_10_min_10_m = huge(0.0)

Mean wind speed during last 10 min at 10 meters above ground [km/h].

real, public :: min_temperature_prev_day_5_cm = huge(0.0)

Minimum of temperature at 5 cm above ground for previous day [°C].

real, public :: min_temperature_prev_day = huge(0.0)

Minimum of temperature for previous day [°C].

real, public :: min_temperature_last_12_hours_2_m = huge(0.0)

Minimum temperature last 12 hours 2 meters above ground [°C].

real, public :: min_temperature_last_12_hours_5_cm = huge(0.0)

Minimum temperature last 12 hours 5 cm above ground [°C].

integer, public :: last_weather1 = 0

Past weather 1 [code].

integer, public :: last_weather2 = 0

Past weather 2 [code].

real, public :: precipitation_last_24_hours = huge(0.0)

Precipitation amount last 24 hours [mm].

real, public :: precipitation_last_3_hours = huge(0.0)

Precipitation amount last 3 hours [mm].

real, public :: precipitation_last_6_hours = huge(0.0)

Precipitation amount last 6 hours [mm].

real, public :: precipitation_last_hour = huge(0.0)

Precipitation amount last hour [mm].

real, public :: precipitation_last_12_hours = huge(0.0)

Precipitation last 12 hours [mm].

integer, public :: present_weather = 0

Present weather [code].

real, public :: pressure_mean_sea_level = huge(0.0)

Pressure reduced to mean sea level [hPa].

real, public :: relative_humidity = huge(0.0)

Relative humidity [%].

real, public :: water_temperature = huge(0.0)

Sea/water temperature [°C].

real, public :: temperature_5_cm = huge(0.0)

Temperature at 5 cm above ground [°C].

real, public :: total_snow_depth = huge(0.0)

Total snow depth [cm].

real, public :: total_time_sunshine_last_hour = huge(0.0)

Total time of sunshine during last hour [min].

real, public :: total_time_sunshine_last_day = huge(0.0)

Total time of sunshine last day [h].


Functions

public function dm_dwd_mosmix_station_catalog_read(stations, unit, header) result(rc)

Reads MOSMIX stations from CFG catalog file. On error, the array is allocated but of size 0. Pass the file unit to the function:

Read more…

Arguments

Type IntentOptional Attributes Name
type(dwd_mosmix_station_type), intent(out), allocatable :: stations(:)

Stations read from file.

integer, intent(in) :: unit

File unit.

logical, intent(in), optional :: header

File contains header.

Return Value integer

public function dm_dwd_mosmix_station_find(stations, id, station, found) result(rc)

Returns station of id from array stations in argument station.

Read more…

Arguments

Type IntentOptional Attributes Name
type(dwd_mosmix_station_type), intent(inout) :: stations(:)

MOSMIX stations.

character(len=*), intent(in) :: id

Station id.

type(dwd_mosmix_station_type), intent(out), optional :: station

MOSMIX station of id.

logical, intent(out), optional :: found

Station found.

Return Value integer

public function dm_dwd_weather_report_read(reports, unit, header) result(rc)

Reads DWD weather report records from file unit. The reports are available as open data from:

Read more…

Arguments

Type IntentOptional Attributes Name
type(dwd_weather_report_type), intent(out), allocatable :: reports(:)

Weather report records.

integer, intent(in) :: unit

File unit.

logical, intent(in), optional :: header

Write header.

Return Value integer


Subroutines

public subroutine dm_dwd_mosmix_station_catalog_write(stations, unit, header)

Writes MOSMIX station catalog to standard output or file unit.

Arguments

Type IntentOptional Attributes Name
type(dwd_mosmix_station_type), intent(inout) :: stations(:)

MOSMIX station types.

integer, intent(in), optional :: unit

File unit.

logical, intent(in), optional :: header

Write header.

public subroutine dm_dwd_mosmix_station_out(station, unit)

Prints MOSMIX station to standard output or given file unit.

Arguments

Type IntentOptional Attributes Name
type(dwd_mosmix_station_type), intent(in) :: station

MOSMIX station type.

integer, intent(in), optional :: unit

File unit.

public subroutine dm_dwd_weather_report_out(report, unit)

Prints DWD weather report to standard output or given file unit.

Arguments

Type IntentOptional Attributes Name
type(dwd_weather_report_type), intent(in) :: report

Weather report type.

integer, intent(in), optional :: unit

File unit.