module io_metadata implicit none type :: variable_metadata character(len=32) :: name ! variable name character(len=32), dimension(4) :: dim_names ! dimension names character(len=32) :: char_name(10) = '' ! character metadata names character(len=32) :: char_value(10) = '' ! character metadata values character(len=32) :: int_name(10) = '' ! integer metadata names integer :: int_value(10) = 0 ! integer metadata values character(len=32) :: real_name(10) = '' ! real metadata names real :: real_value(10) = 0.0 ! real metadata values end type variable_metadata ! variable metadata collection type(variable_metadata), public :: meta_temperature = variable_metadata( & name = 'T2M', & dim_names = [character(len=32) :: 'X', 'Y', 'Z', 'Time'], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Air Temperature', & 'C', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_pressure = variable_metadata( & name = 'SLP', & dim_names = [character(len=32) :: 'X', 'Y', 'Time', ''], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Air Pressure at Sea Level', & 'Pa', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_humidity = variable_metadata( & name = 'HUM_2M', & dim_names = [character(len=32) :: 'X', 'Y', 'Time', ''], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Relative Humidity', & '%', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_richnum = variable_metadata( & name = 'RICHNUM', & dim_names = [character(len=32) :: 'X', 'Y', 'Z', 'Time'], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Richardson number', & 'Ri', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_anzt = variable_metadata( & name = 'ANZT', & dim_names = [character(len=32) :: 'X', 'Y', 'Z', 'Time'], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'ANZT Vertical mixing parameter', & 'ANZT', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_anzu = variable_metadata( & name = 'ANZU', & dim_names = [character(len=32) :: 'X', 'Y', 'Z', 'Time'], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'ANZU Vertical mixing parameter', & 'ANZU', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_test1d = variable_metadata( & name = 'TEST1D', & dim_names = [character(len=32) :: 'X', '', '', ''], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Test 1D variable', & '-', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_test2d = variable_metadata( & name = 'TEST2D', & dim_names = [character(len=32) :: 'X', 'Y', '', ''], & char_name = [character(len=32) :: & 'long_name', & 'units', & '', '', '', '', '', '', '', ''], & char_value = [character(len=32) :: & 'Test 2D variable', & '-', & '', '', '', '', '', '', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & 1.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_ri_grad_2d = variable_metadata( & name = 'Ri_grad', & dim_names = [character(len=32) :: 'Z', 'Time', '', '']) type(variable_metadata), public :: meta_kh_2d = variable_metadata( & name = 'kh', & dim_names = [character(len=32) :: 'Z', 'Time', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & -3.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) type(variable_metadata), public :: meta_km_2d = variable_metadata( & name = 'km', & dim_names = [character(len=32) :: 'Z', 'Time', '', ''], & real_name = [character(len=32) :: & 'missing_value', & 'scale_factor', & '', '', '', '', '', '', '', ''], & real_value = [& -9999.9, & -3.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) end module io_metadata