diff --git a/src/opsinputs/opsinputs_cxfields_mod.F90 b/src/opsinputs/opsinputs_cxfields_mod.F90 index 72643c13..5ec4ee0f 100644 --- a/src/opsinputs/opsinputs_cxfields_mod.F90 +++ b/src/opsinputs/opsinputs_cxfields_mod.F90 @@ -60,7 +60,7 @@ module opsinputs_cxfields_mod character(len=*), parameter, public :: opsinputs_cxfields_NO2_AQ = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_CO_AQ = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_BLtype = opsinputs_cxfields_unknown -character(len=*), parameter, public :: opsinputs_cxfields_theta = "theta" +character(len=*), parameter, public :: opsinputs_cxfields_theta = "potential_temperature" character(len=*), parameter, public :: opsinputs_cxfields_rh = var_rh character(len=*), parameter, public :: opsinputs_cxfields_u = var_u character(len=*), parameter, public :: opsinputs_cxfields_v = var_v @@ -81,12 +81,12 @@ module opsinputs_cxfields_mod character(len=*), parameter, public :: opsinputs_cxfields_ozone = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_qcf = var_cli character(len=*), parameter, public :: opsinputs_cxfields_qcl = var_clw -character(len=*), parameter, public :: opsinputs_cxfields_cloud_bulk = "cloud_area_fraction_in_atmosphere_layer" +character(len=*), parameter, public :: opsinputs_cxfields_cloud_bulk = "cloud_volume_fraction_in_atmosphere_layer" character(len=*), parameter, public :: opsinputs_cxfields_aerosol_p = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_CDNC = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_RH_AMC = opsinputs_cxfields_unknown -character(len=*), parameter, public :: opsinputs_cxfields_Cl = "liquid_cloud_fraction" -character(len=*), parameter, public :: opsinputs_cxfields_Cf = "frozen_cloud_fraction" +character(len=*), parameter, public :: opsinputs_cxfields_Cl = "liquid_cloud_volume_fraction_in_atmosphere_layer" +character(len=*), parameter, public :: opsinputs_cxfields_Cf = "ice_cloud_volume_fraction_in_atmosphere_layer" character(len=*), parameter, public :: opsinputs_cxfields_qrain = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_ExnerA = opsinputs_cxfields_unknown character(len=*), parameter, public :: opsinputs_cxfields_RichNumber = opsinputs_cxfields_unknown diff --git a/test/generate_unittest_netcdfs.py b/test/generate_unittest_netcdfs.py index 8be95550..5d4d1cf9 100644 --- a/test/generate_unittest_netcdfs.py +++ b/test/generate_unittest_netcdfs.py @@ -784,7 +784,7 @@ def copy_var_to_var(Group, invarname, outvarname, filename): output_1d_geoval_to_netcdf ('total_cloud_amount', 'testinput/024_SurfaceCxField_CloudAmount.nc4') output_1d_geoval_to_netcdf ('obukhov_length', 'testinput/056_SurfaceCxField_obukhov_length.nc4') output_1d_geoval_to_netcdf ('friction_velocity_over_water', 'testinput/057_SurfaceCxField_friction_velocity_over_water.nc4') - output_2d_geoval_to_netcdf ('theta', 'testinput/001_UpperAirCxField_theta.nc4') + output_2d_geoval_to_netcdf ('potential_temperature', 'testinput/001_UpperAirCxField_theta.nc4') output_2d_geoval_to_netcdf ('relative_humidity', 'testinput/002_UpperAirCxField_relative_humidity.nc4') output_2d_geoval_to_netcdf ('eastward_wind', 'testinput/003_UpperAirCxField_u.nc4') output_2d_geoval_to_netcdf ('northward_wind', 'testinput/004_UpperAirCxField_v.nc4') @@ -793,9 +793,9 @@ def copy_var_to_var(Group, invarname, outvarname, filename): output_2d_geoval_to_netcdf ('air_pressure_levels', 'testinput/011_UpperAirCxField_P.nc4') output_2d_geoval_to_netcdf ('mass_content_of_cloud_ice_in_atmosphere_layer', 'testinput/029_UpperAirCxField_qcf.nc4') output_2d_geoval_to_netcdf ('mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'testinput/030_UpperAirCxField_qcl.nc4') - output_2d_geoval_to_netcdf ('cloud_area_fraction_in_atmosphere_layer', 'testinput/031_UpperAirCxField_cloud_bulk.nc4') - output_2d_geoval_to_netcdf ('frozen_cloud_fraction', 'testinput/034_UpperAirCxField_Cf.nc4') - output_2d_geoval_to_netcdf ('liquid_cloud_fraction', 'testinput/035_UpperAirCxField_Cl.nc4') + output_2d_geoval_to_netcdf ('cloud_volume_fraction_in_atmosphere_layer', 'testinput/031_UpperAirCxField_cloud_bulk.nc4') + output_2d_geoval_to_netcdf ('ice_cloud_volume_fraction_in_atmosphere_layer', 'testinput/034_UpperAirCxField_Cf.nc4') + output_2d_geoval_to_netcdf ('liquid_cloud_volume_fraction_in_atmosphere_layer', 'testinput/035_UpperAirCxField_Cl.nc4') output_2d_geovals_to_netcdf (['mass_fraction_of_dust00%s_in_air' % i for i in range(1, 7)], 'testinput/041-046_UpperAirCxField_dust1-dust6.nc4') output_2d_geovals_to_netcdf (['eastward_wind', 'northward_wind'], 'testinput/CxWriter_UnRotateWinds.nc4', shift_by_varindex=False) @@ -805,49 +805,49 @@ def copy_var_to_var(Group, invarname, outvarname, filename): # AMSR output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_amsr.nc4') # GMIlow output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_gmilow.nc4') # GMIhigh output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_gmihigh.nc4') # ATMS output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_atms.nc4') # ATOVS output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_atovs.nc4') # SSMIS output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_ssmis.nc4') @@ -855,79 +855,79 @@ def copy_var_to_var(Group, invarname, outvarname, filename): # GNSS-RO output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_gnssro.nc4') # Sonde output_full_cx_to_netcdf(['ice_area_fraction', 'surface_altitude', 'surface_pressure'], - ['eastward_wind','northward_wind','theta','specific_humidity', + ['eastward_wind','northward_wind','potential_temperature','specific_humidity', 'mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer', - 'liquid_cloud_fraction', - 'frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer', + 'liquid_cloud_volume_fraction_in_atmosphere_layer', + 'ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_sonde.nc4') # Sonde - UKV output_full_cx_to_netcdf(['ice_area_fraction', 'surface_altitude', 'surface_pressure'], - ['eastward_wind','northward_wind','theta','specific_humidity', + ['eastward_wind','northward_wind','potential_temperature','specific_humidity', 'mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer', - 'liquid_cloud_fraction', - 'frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer', + 'liquid_cloud_volume_fraction_in_atmosphere_layer', + 'ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_ukvnamelist_sonde.nc4') # SatTCWV output_full_cx_to_netcdf(['surface_altitude','surface_pressure','ice_area_fraction','total_cloud_amount'], - ['theta','specific_humidity','air_pressure_levels','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','air_pressure_levels','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', - 'cloud_area_fraction_in_atmosphere_layer','frozen_cloud_fraction','liquid_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_sattcwv.nc4') # IASI - this tests the variable_for_quality_control option output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m','surface_pressure_at_mean_sea_level'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_iasi.nc4') # GroundGPS output_full_cx_to_netcdf(['skin_temperature','ice_area_fraction','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_groundgps.nc4') # Aircraft output_full_cx_to_netcdf(['ice_area_fraction', 'surface_altitude', 'surface_pressure'], - ['eastward_wind','northward_wind','theta','specific_humidity', + ['eastward_wind','northward_wind','potential_temperature','specific_humidity', 'mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer', - 'liquid_cloud_fraction', - 'frozen_cloud_fraction'], + 'cloud_volume_fraction_in_atmosphere_layer', + 'liquid_cloud_volume_fraction_in_atmosphere_layer', + 'ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_aircraft.nc4') # Surface output_full_cx_to_netcdf(['skin_temperature','surface_altitude','surface_pressure','uwind_at_10m', 'vwind_at_10m','surface_temperature','relative_humidity_2m'], - ['theta','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', + ['potential_temperature','specific_humidity','mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer','air_pressure_levels', - 'cloud_area_fraction_in_atmosphere_layer','liquid_cloud_fraction','frozen_cloud_fraction', + 'cloud_volume_fraction_in_atmosphere_layer','liquid_cloud_volume_fraction_in_atmosphere_layer','ice_cloud_volume_fraction_in_atmosphere_layer', 'eastward_wind','northward_wind'], 'testinput/cx_globalnamelist_surface.nc4') diff --git a/test/testinput/001_UpperAirCxField_theta.nc4 b/test/testinput/001_UpperAirCxField_theta.nc4 index e37a4e24..62977e0b 100644 Binary files a/test/testinput/001_UpperAirCxField_theta.nc4 and b/test/testinput/001_UpperAirCxField_theta.nc4 differ diff --git a/test/testinput/004_SurfaceCxField_rh2.nc4 b/test/testinput/004_SurfaceCxField_rh2.nc4 index fef0f380..30eda75d 100644 Binary files a/test/testinput/004_SurfaceCxField_rh2.nc4 and b/test/testinput/004_SurfaceCxField_rh2.nc4 differ diff --git a/test/testinput/031_UpperAirCxField_cloud_bulk.nc4 b/test/testinput/031_UpperAirCxField_cloud_bulk.nc4 index c63339b8..30e0ef41 100644 Binary files a/test/testinput/031_UpperAirCxField_cloud_bulk.nc4 and b/test/testinput/031_UpperAirCxField_cloud_bulk.nc4 differ diff --git a/test/testinput/034_UpperAirCxField_Cf.nc4 b/test/testinput/034_UpperAirCxField_Cf.nc4 index 33e18274..6e035a91 100644 Binary files a/test/testinput/034_UpperAirCxField_Cf.nc4 and b/test/testinput/034_UpperAirCxField_Cf.nc4 differ diff --git a/test/testinput/035_UpperAirCxField_Cl.nc4 b/test/testinput/035_UpperAirCxField_Cl.nc4 index 706ea03f..92166755 100644 Binary files a/test/testinput/035_UpperAirCxField_Cl.nc4 and b/test/testinput/035_UpperAirCxField_Cl.nc4 differ diff --git a/test/testinput/cx_globalnamelist_aircraft.nc4 b/test/testinput/cx_globalnamelist_aircraft.nc4 index 3715f6a2..1b9a4986 100644 Binary files a/test/testinput/cx_globalnamelist_aircraft.nc4 and b/test/testinput/cx_globalnamelist_aircraft.nc4 differ diff --git a/test/testinput/cx_globalnamelist_amsr.nc4 b/test/testinput/cx_globalnamelist_amsr.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_amsr.nc4 and b/test/testinput/cx_globalnamelist_amsr.nc4 differ diff --git a/test/testinput/cx_globalnamelist_atms.nc4 b/test/testinput/cx_globalnamelist_atms.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_atms.nc4 and b/test/testinput/cx_globalnamelist_atms.nc4 differ diff --git a/test/testinput/cx_globalnamelist_atovs.nc4 b/test/testinput/cx_globalnamelist_atovs.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_atovs.nc4 and b/test/testinput/cx_globalnamelist_atovs.nc4 differ diff --git a/test/testinput/cx_globalnamelist_gmihigh.nc4 b/test/testinput/cx_globalnamelist_gmihigh.nc4 index 422e4702..cc5982b7 100644 Binary files a/test/testinput/cx_globalnamelist_gmihigh.nc4 and b/test/testinput/cx_globalnamelist_gmihigh.nc4 differ diff --git a/test/testinput/cx_globalnamelist_gmilow.nc4 b/test/testinput/cx_globalnamelist_gmilow.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_gmilow.nc4 and b/test/testinput/cx_globalnamelist_gmilow.nc4 differ diff --git a/test/testinput/cx_globalnamelist_gnssro.nc4 b/test/testinput/cx_globalnamelist_gnssro.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_gnssro.nc4 and b/test/testinput/cx_globalnamelist_gnssro.nc4 differ diff --git a/test/testinput/cx_globalnamelist_groundgps.nc4 b/test/testinput/cx_globalnamelist_groundgps.nc4 index bcedea10..95359adf 100644 Binary files a/test/testinput/cx_globalnamelist_groundgps.nc4 and b/test/testinput/cx_globalnamelist_groundgps.nc4 differ diff --git a/test/testinput/cx_globalnamelist_iasi.nc4 b/test/testinput/cx_globalnamelist_iasi.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_iasi.nc4 and b/test/testinput/cx_globalnamelist_iasi.nc4 differ diff --git a/test/testinput/cx_globalnamelist_sattcwv.nc4 b/test/testinput/cx_globalnamelist_sattcwv.nc4 index 59f130e5..21f5001f 100644 Binary files a/test/testinput/cx_globalnamelist_sattcwv.nc4 and b/test/testinput/cx_globalnamelist_sattcwv.nc4 differ diff --git a/test/testinput/cx_globalnamelist_sonde.nc4 b/test/testinput/cx_globalnamelist_sonde.nc4 index 3715f6a2..1b9a4986 100644 Binary files a/test/testinput/cx_globalnamelist_sonde.nc4 and b/test/testinput/cx_globalnamelist_sonde.nc4 differ diff --git a/test/testinput/cx_globalnamelist_ssmis.nc4 b/test/testinput/cx_globalnamelist_ssmis.nc4 index 8e2f33d3..e495fadb 100644 Binary files a/test/testinput/cx_globalnamelist_ssmis.nc4 and b/test/testinput/cx_globalnamelist_ssmis.nc4 differ diff --git a/test/testinput/cx_globalnamelist_surface.nc4 b/test/testinput/cx_globalnamelist_surface.nc4 index d7f487b3..406212a6 100644 Binary files a/test/testinput/cx_globalnamelist_surface.nc4 and b/test/testinput/cx_globalnamelist_surface.nc4 differ diff --git a/test/testinput/cx_ukvnamelist_sonde.nc4 b/test/testinput/cx_ukvnamelist_sonde.nc4 index 3715f6a2..1b9a4986 100644 Binary files a/test/testinput/cx_ukvnamelist_sonde.nc4 and b/test/testinput/cx_ukvnamelist_sonde.nc4 differ