COSIMA / access-om2

ACCESS-OM2 global ocean - sea ice coupled model configurations.
20 stars 22 forks source link

Support ERA5 forcing #242

Open aekiss opened 3 years ago

aekiss commented 3 years ago

This issue is a continuation of an email discussion on making configurations that support ERA5 forcing, e.g. to assess the impact of the forcing dataset on the sea ice simulation.

ERA5 is available on NCI at /g/data/rt52: https://opus.nci.org.au/display/ERA5/ERA5+Community+Home ~[edit: use /g/data/ik11/inputs/ERA5 instead]~

Replacing JRA55-do with ERA5 would require

and changes to

and possibly more, e.g.

Our configurations currently support only JRA55-do forcing: https://github.com/COSIMA/access-om2/tree/master/control but we have some old, unsupported CORE configs here that may be useful as a reference for the changes required https://github.com/COSIMA/1deg_core_nyf https://github.com/COSIMA/025deg_core2_nyf https://github.com/COSIMA/025deg_core_nyf

aekiss commented 3 years ago

Note that JRA55-do has velocity components, temperature and humidity all at 10m height. Humidity and temperature are shifted from 2m in JRA55 to 10m in JRA55-do - see appendix A2 in Tsujino et al 2018.

aekiss commented 3 years ago

Re. using ERA5 for initial conditions: SST and SIC are available in ERA5. But SST would need to somehow be merged with the WOA temperature initial condition that applies below the surface. I'd also be surprised if SIC, SST IC's have much enduring effect, since the Antarctic ice nearly disappears in summer and the surface layer is so thin the SST would quickly revert to the WOA values below it.

aekiss commented 3 years ago

(in response to @nichannah's email)

  1. I also can't find absolute (or relative) humidity in ERA5, but as you point out there is 2m dew point temperature so I guess we'd have to calculate it from that somehow.
  2. temperature and dew point are at 2m - will we need to convert these to 10m as in appendix A2 in Tsujino et al 2018?
  3. surface_solar_radiation_downwards and surface_thermal_radiation_downwards are probably equivalent to JRA55-do rsds and rlds. Not sure how to check that.
  4. I don't know whether total precipitation includes snowfall - but if so, your suggestion to difference them to get rainfall makes sense
  5. we'd need to be careful to check what's in the various ERA runoff fields - e.g. whether solid runoff is included (I'm guessing not)
aekiss commented 3 years ago

re. above, from TWG 21 July 2021:

  1. Matt C knows how to do this calculation
  2. Matt and Russ: u, v, T, q need to be at the same level (but not necessarily 10m) - may need to read in height field to do calculations. Best to calculate on the fly.
  3. Russ: yes, surface_solar_radiation_downwards=rsds and surface_thermal_radiation_downwards=rlds
  4. need to check this. cice needs snow separately
  5. for further investigation
nichannah commented 3 years ago

Quick update. A new experiment has been created with update config/input files including remapping weights. I've still got some work to do to modify YATM to properly handle runtime modifications to the input fields. i.e. to calculate humidity from dew point temperature.

AndyHoggANU commented 3 years ago

Just wondering if this is relevant to this development?

https://confluence.ecmwf.int/display/CKB/ERA5%3A+large+10m+winds

aekiss commented 3 years ago

This affects <160 spacetime points in the whole dataset, so it seems a smaller issue than the backwards cyclones in JRA55 https://github.com/COSIMA/access-om2/issues/186 The affected data was replaced by a different analysis product. I suppose that could create discontinuities with large curls, but they would be very localised and brief.

aekiss commented 2 years ago

For reference, here are all the variables in /g/data/rt52/era5/single-levels/reanalysis and their paths. The chunking can vary for a given variable; the chunking for the first file in 2017 is shown.

name longname [units] dimensions chunking path
acwh Altimeter corrected wave height [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/acwh/*/acwh*.nc
alnid Near IR albedo for diffuse radiation [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/alnid/*/alnid*.nc
alnip Near IR albedo for direct radiation [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/alnip/*/alnip*.nc
aluvd UV visible albedo for diffuse radiation [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/aluvd/*/aluvd*.nc
aluvp UV visible albedo for direct radiation [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/aluvp/*/aluvp*.nc
anor Angle of sub-gridscale orography [radians] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/anor/*/anor*.nc
arrc Altimeter range relative correction [~] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/arrc/*/arrc*.nc
asn Snow albedo [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/asn/*/asn*.nc
awh Altimeter wave height [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/awh/*/awh*.nc
bfi Benjamin-Feir index [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/bfi/*/bfi*.nc
blh Boundary layer height [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/blh/*/blh*.nc
cape Convective available potential energy [J kg**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cape/*/cape*.nc
cbh Cloud base height [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cbh/*/cbh*.nc
cdww Coefficient of drag with waves [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/cdww/*/cdww*.nc
chnk Charnock [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/chnk/*/chnk*.nc
cin Convective inhibition [J kg**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cin/*/cin*.nc
cl Lake cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cl/*/cl*.nc
crr Convective rain rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/crr/*/crr*.nc
csfr Convective snowfall rate water equivalent [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/csfr/*/csfr*.nc
cvh High vegetation cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cvh/*/cvh*.nc
cvl Low vegetation cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/cvl/*/cvl*.nc
d2m 2 metre dewpoint temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/2d/*/2d*.nc
dctb Duct base height [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/dctb/*/dctb*.nc
deg0l 0 degrees C isothermal level (atm) [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/deg0l/*/deg0l*.nc
dl Lake depth [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/dl/*/dl*.nc
dndza Mean vertical gradient of refractivity inside trapping layer [m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/dndza/*/dndza*.nc
dndzn Minimum vertical gradient of refractivity inside trapping layer [m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/dndzn/*/dndzn*.nc
dwi 10 metre wind direction [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/dwi/*/dwi*.nc
dwps Wave spectral directional width for swell [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/dwps/*/dwps*.nc
dwww Wave spectral directional width for wind waves [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/dwww/*/dwww*.nc
fal Forecast albedo [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/fal/*/fal*.nc
fg10 10 metre wind gust since previous post-processing [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/10fg/*/10fg*.nc
flsr Forecast logarithm of surface roughness for heat [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/flsr/*/flsr*.nc
fsr Forecast surface roughness [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/fsr/*/fsr*.nc
hcc High cloud cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/hcc/*/hcc*.nc
hmax Maximum individual wave height [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/hmax/*/hmax*.nc
i10fg Instantaneous 10 metre wind gust [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/i10fg/*/i10fg*.nc
ie Instantaneous moisture flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ie/*/ie*.nc
iews Instantaneous eastward turbulent surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/iews/*/iews*.nc
ilspf Instantaneous large-scale surface precipitation fraction [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ilspf/*/ilspf*.nc
inss Instantaneous northward turbulent surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/inss/*/inss*.nc
ishf Instantaneous surface sensible heat flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ishf/*/ishf*.nc
isor Anisotropy of sub-gridscale orography [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/isor/*/isor*.nc
istl1 Ice temperature layer 1 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/istl1/*/istl1*.nc
istl2 Ice temperature layer 2 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/istl2/*/istl2*.nc
istl3 Ice temperature layer 3 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/istl3/*/istl3*.nc
istl4 Ice temperature layer 4 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/istl4/*/istl4*.nc
kx K index [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/kx/*/kx*.nc
lai_hv Leaf area index, high vegetation [m2 m-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lai-hv/*/lai-hv*.nc
lai_lv Leaf area index, low vegetation [m2 m-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lai-lv/*/lai-lv*.nc
lblt Lake bottom temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lblt/*/lblt*.nc
lcc Low cloud cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lcc/*/lcc*.nc
licd Lake ice depth [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/licd/*/licd*.nc
lict Lake ice temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lict/*/lict*.nc
lmld Lake mix-layer depth [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lmld/*/lmld*.nc
lmlt Lake mix-layer temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lmlt/*/lmlt*.nc
lshf Lake shape factor [dimensionless] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lshf/*/lshf*.nc
lsm Land-sea mask [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lsm/*/lsm*.nc
lsrr Large scale rain rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lsrr/*/lsrr*.nc
lssfr Large scale snowfall rate water equivalent [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/lssfr/*/lssfr*.nc
ltlt Lake total layer temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ltlt/*/ltlt*.nc
mbld Mean boundary layer dissipation [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mbld/*/mbld*.nc
mcc Medium cloud cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mcc/*/mcc*.nc
mcpr Mean convective precipitation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mcpr/*/mcpr*.nc
mcsr Mean convective snowfall rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mcsr/*/mcsr*.nc
mdts Mean direction of total swell [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mdts/*/mdts*.nc
mdww Mean direction of wind waves [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mdww/*/mdww*.nc
megwss Mean eastward gravity wave surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/megwss/*/megwss*.nc
mer Mean evaporation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mer/*/mer*.nc
metss Mean eastward turbulent surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/metss/*/metss*.nc
mgwd Mean gravity wave dissipation [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mgwd/*/mgwd*.nc
mlspf Mean large-scale precipitation fraction [Proportion] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mlspf/*/mlspf*.nc
mlspr Mean large-scale precipitation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mlspr/*/mlspr*.nc
mlssr Mean large-scale snowfall rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mlssr/*/mlssr*.nc
mn2t Minimum temperature at 2 metres since previous post-processing [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mn2t/*/mn2t*.nc
mngwss Mean northward gravity wave surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mngwss/*/mngwss*.nc
mntpr Minimum total precipitation rate since previous post-processing [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mntpr/*/mntpr*.nc
mntss Mean northward turbulent surface stress [N m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mntss/*/mntss*.nc
mp1 Mean wave period based on first moment [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mp1/*/mp1*.nc
mp2 Mean zero-crossing wave period [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mp2/*/mp2*.nc
mper Mean potential evaporation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mper/*/mper*.nc
mpts Mean period of total swell [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mpts/*/mpts*.nc
mpww Mean period of wind waves [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mpww/*/mpww*.nc
mror Mean runoff rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mror/*/mror*.nc
msdrswrf Mean surface direct short-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdrswrf/*/msdrswrf*.nc
msdrswrfcs Mean surface direct short-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdrswrfcs/*/msdrswrfcs*.nc
msdwlwrf Mean surface downward long-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdwlwrf/*/msdwlwrf*.nc
msdwlwrfcs Mean surface downward long-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdwlwrfcs/*/msdwlwrfcs*.nc
msdwswrf Mean surface downward short-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdwswrf/*/msdwswrf*.nc
msdwswrfcs Mean surface downward short-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdwswrfcs/*/msdwswrfcs*.nc
msdwuvrf Mean surface downward UV radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msdwuvrf/*/msdwuvrf*.nc
mser Mean snow evaporation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mser/*/mser*.nc
msl Mean sea level pressure [Pa] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msl/*/msl*.nc
mslhf Mean surface latent heat flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mslhf/*/mslhf*.nc
msmr Mean snowmelt rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msmr/*/msmr*.nc
msnlwrf Mean surface net long-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msnlwrf/*/msnlwrf*.nc
msnlwrfcs Mean surface net long-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msnlwrfcs/*/msnlwrfcs*.nc
msnswrf Mean surface net short-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msnswrf/*/msnswrf*.nc
msnswrfcs Mean surface net short-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msnswrfcs/*/msnswrfcs*.nc
msqs Mean square slope of waves [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/msqs/*/msqs*.nc
msr Mean snowfall rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msr/*/msr*.nc
msror Mean surface runoff rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msror/*/msror*.nc
msshf Mean surface sensible heat flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/msshf/*/msshf*.nc
mssror Mean sub-surface runoff rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mssror/*/mssror*.nc
mtdwswrf Mean top downward short-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtdwswrf/*/mtdwswrf*.nc
mtnlwrf Mean top net long-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtnlwrf/*/mtnlwrf*.nc
mtnlwrfcs Mean top net long-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtnlwrfcs/*/mtnlwrfcs*.nc
mtnswrf Mean top net short-wave radiation flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtnswrf/*/mtnswrf*.nc
mtnswrfcs Mean top net short-wave radiation flux, clear sky [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtnswrfcs/*/mtnswrfcs*.nc
mtpr Mean total precipitation rate [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mtpr/*/mtpr*.nc
mvimd Mean vertically integrated moisture divergence [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mvimd/*/mvimd*.nc
mwd Mean wave direction [Degree true] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwd/*/mwd*.nc
mwp Mean wave period [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwp/*/mwp*.nc
mx2t Maximum temperature at 2 metres since previous post-processing [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mx2t/*/mx2t*.nc
mxtpr Maximum total precipitation rate since previous post-processing [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/mxtpr/*/mxtpr*.nc
p140121 Significant wave height of first swell partition [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/swh1/*/swh1*.nc
p140122 Mean wave direction of first swell partition [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwd1/*/mwd1*.nc
p140123 Mean wave period of first swell partition [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwp1/*/mwp1*.nc
p140124 Significant wave height of second swell partition [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/swh2/*/swh2*.nc
p140125 Mean wave direction of second swell partition [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwd2/*/mwd2*.nc
p140126 Mean wave period of second swell partition [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwp2/*/mwp2*.nc
p140127 Significant wave height of third swell partition [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/swh3/*/swh3*.nc
p140128 Mean wave direction of third swell partition [degrees] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwd3/*/mwd3*.nc
p140129 Mean wave period of third swell partition [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/mwp3/*/mwp3*.nc
p140208 Free convective velocity over the oceans [m s**-1] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wstar/*/wstar*.nc
p140209 Air density over the oceans [kg m**-3] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/rhoao/*/rhoao*.nc
p1ps Mean wave period based on first moment for swell [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/p1ps/*/p1ps*.nc
p1ww Mean wave period based on first moment for wind waves [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/p1ww/*/p1ww*.nc
p2ps Mean wave period based on second moment for swell [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/p2ps/*/p2ps*.nc
p2ww Mean wave period based on second moment for wind waves [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/p2ww/*/p2ww*.nc
p53.162 Vertical integral of mass of atmosphere [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vima/*/vima*.nc
p54.162 Vertical integral of temperature [K kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vit/*/vit*.nc
p59.162 Vertical integral of kinetic energy [J m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vike/*/vike*.nc
p60.162 Vertical integral of thermal energy [J m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vithe/*/vithe*.nc
p61.162 Vertical integral of potential+internal energy [J m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vipie/*/vipie*.nc
p62.162 Vertical integral of potential+internal+latent energy [J m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vipile/*/vipile*.nc
p63.162 Vertical integral of total energy [J m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vitoe/*/vitoe*.nc
p64.162 Vertical integral of energy conversion [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viec/*/viec*.nc
p65.162 Vertical integral of eastward mass flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vimae/*/vimae*.nc
p66.162 Vertical integral of northward mass flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viman/*/viman*.nc
p67.162 Vertical integral of eastward kinetic energy flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vikee/*/vikee*.nc
p68.162 Vertical integral of northward kinetic energy flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viken/*/viken*.nc
p69.162 Vertical integral of eastward heat flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vithee/*/vithee*.nc
p70.162 Vertical integral of northward heat flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vithen/*/vithen*.nc
p71.162 Vertical integral of eastward water vapour flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viwve/*/viwve*.nc
p72.162 Vertical integral of northward water vapour flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viwvn/*/viwvn*.nc
p73.162 Vertical integral of eastward geopotential flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vige/*/vige*.nc
p74.162 Vertical integral of northward geopotential flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vign/*/vign*.nc
p75.162 Vertical integral of eastward total energy flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vitoee/*/vitoee*.nc
p76.162 Vertical integral of northward total energy flux [W m**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vitoen/*/vitoen*.nc
p77.162 Vertical integral of eastward ozone flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vioze/*/vioze*.nc
p78.162 Vertical integral of northward ozone flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viozn/*/viozn*.nc
p79.162 Vertical integral of divergence of cloud liquid water flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vilwd/*/vilwd*.nc
p80.162 Vertical integral of divergence of cloud frozen water flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viiwd/*/viiwd*.nc
p81.162 Vertical integral of divergence of mass flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vimad/*/vimad*.nc
p82.162 Vertical integral of divergence of kinetic energy flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viked/*/viked*.nc
p83.162 Vertical integral of divergence of thermal energy flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vithed/*/vithed*.nc
p84.162 Vertical integral of divergence of moisture flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viwvd/*/viwvd*.nc
p85.162 Vertical integral of divergence of geopotential flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vigd/*/vigd*.nc
p86.162 Vertical integral of divergence of total energy flux [W m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vitoed/*/vitoed*.nc
p87.162 Vertical integral of divergence of ozone flux [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viozd/*/viozd*.nc
p88.162 Vertical integral of eastward cloud liquid water flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vilwe/*/vilwe*.nc
p89.162 Vertical integral of northward cloud liquid water flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vilwn/*/vilwn*.nc
p90.162 Vertical integral of eastward cloud frozen water flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viiwe/*/viiwe*.nc
p91.162 Vertical integral of northward cloud frozen water flux [kg m-1 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/viiwn/*/viiwn*.nc
p92.162 Vertical integral of mass tendency [kg m-2 s-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/vimat/*/vimat*.nc
phiaw Normalized energy flux into waves [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/phiaw/*/phiaw*.nc
phioc Normalized energy flux into ocean [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/phioc/*/phioc*.nc
pp1d Peak wave period [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/pp1d/*/pp1d*.nc
ptype Precipitation type [code table (4.201)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ptype/*/ptype*.nc
rsn Snow density [kg m**-3] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/rsn/*/rsn*.nc
sd Snow depth [m of water equivalent] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/sd/*/sd*.nc
sdfor Standard deviation of filtered subgrid orography [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/sdfor/*/sdfor*.nc
sdor Standard deviation of orography [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/sdor/*/sdor*.nc
shts Significant height of total swell [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/shts/*/shts*.nc
shww Significant height of wind waves [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/shww/*/shww*.nc
siconc Sea ice area fraction [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/ci/*/ci*.nc
skt Skin temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/skt/*/skt*.nc
slor Slope of sub-gridscale orography [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/slor/*/slor*.nc
slt Soil type [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/slt/*/slt*.nc
sp Surface pressure [Pa] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/sp/*/sp*.nc
src Skin reservoir content [m of water equivalent] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/src/*/src*.nc
sst Sea surface temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/sst/*/sst*.nc
stl1 Soil temperature level 1 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/stl1/*/stl1*.nc
stl2 Soil temperature level 2 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/stl2/*/stl2*.nc
stl3 Soil temperature level 3 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/stl3/*/stl3*.nc
stl4 Soil temperature level 4 [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/stl4/*/stl4*.nc
swh Significant height of combined wind waves and swell [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/swh/*/swh*.nc
swvl1 Volumetric soil water layer 1 [m3 m-3] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/swvl1/*/swvl1*.nc
swvl2 Volumetric soil water layer 2 [m3 m-3] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/swvl2/*/swvl2*.nc
swvl3 Volumetric soil water layer 3 [m3 m-3] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/swvl3/*/swvl3*.nc
swvl4 Volumetric soil water layer 4 [m3 m-3] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/swvl4/*/swvl4*.nc
t2m 2 metre temperature [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/2t/*/2t*.nc
tauoc Normalized stress into ocean [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/tauoc/*/tauoc*.nc
tcc Total cloud cover [(0 - 1)] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcc/*/tcc*.nc
tciw Total column cloud ice water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tciw/*/tciw*.nc
tclw Total column cloud liquid water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tclw/*/tclw*.nc
tco3 Total column ozone [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tco3/*/tco3*.nc
tcrw Total column rain water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcrw/*/tcrw*.nc
tcslw Total column supercooled liquid water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcslw/*/tcslw*.nc
tcsw Total column snow water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcsw/*/tcsw*.nc
tcw Total column water [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcw/*/tcw*.nc
tcwv Total column water vapour [kg m**-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tcwv/*/tcwv*.nc
tmax Period corresponding to maximum individual wave height [s] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/tmax/*/tmax*.nc
totalx Total totals index [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/totalx/*/totalx*.nc
tplb Trapping layer base height [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tplb/*/tplb*.nc
tplt Trapping layer top height [m] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tplt/*/tplt*.nc
tsn Temperature of snow layer [K] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tsn/*/tsn*.nc
tvh Type of high vegetation [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tvh/*/tvh*.nc
tvl Type of low vegetation [~] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/tvl/*/tvl*.nc
u10 10 metre U wind component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/10u/*/10u*.nc
u100 100 metre U wind component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/100u/*/100u*.nc
u10n Neutral wind at 10 m u-component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/u10n/*/u10n*.nc
ust U-component stokes drift [m s**-1] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/ust/*/ust*.nc
v10 10 metre V wind component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/10v/*/10v*.nc
v100 100 metre V wind component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/100v/*/100v*.nc
v10n Neutral wind at 10 m v-component [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/v10n/*/v10n*.nc
vst V-component stokes drift [m s**-1] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/vst/*/vst*.nc
wdw Wave spectral directional width [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wdw/*/wdw*.nc
wind 10 metre wind speed [m s**-1] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wind/*/wind*.nc
wmb Model bathymetry [m] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wmb/*/wmb*.nc
wsk Wave spectral kurtosis [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wsk/*/wsk*.nc
wsp Wave spectral peakedness [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wsp/*/wsp*.nc
wss Wave Spectral Skewness [dimensionless] ('time', 'latitude', 'longitude') [149, 73, 144] /g/data/rt52/era5/single-levels/reanalysis/wss/*/wss*.nc
z Geopotential [m2 s-2] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/z/*/z*.nc
zust Friction velocity [m s**-1] ('time', 'latitude', 'longitude') [93, 91, 180] /g/data/rt52/era5/single-levels/reanalysis/zust/*/zust*.nc
aekiss commented 2 years ago

Here are the biases in the monthly 1993-2017 climatology of JRA55-do 1.4.0 tas (10m air temperature) minus ERA5 t2m (2m air temperature), plotted at 2 different colour scales.

JRA55-do is very much warmer (>30 degrees!) over Antarctica, and also has positive and negative biases of around 5 degrees extending into the Southern Ocean in winter and spring. I imagine this is mostly due to the low-temperature cutoff applied to Antarctic temperature, and smoothing in the marginal ice zone (see sec 3.3.4 of Tsujino et al 2018 and below), but figs 6b and 7a show that these changes are purely positive in August over the Southern Ocean whereas we see a mix of positive and negative. Some of the difference could also be due to the differing measurement height.

JRA55-do is cooler in the Arctic, especially in winter. Outside the polar regions it is a fraction of a degree warmer over oceans.

The large difference in polar winters suggests significant differences in the representation of sea ice and its effect on the atmosphere.

JRA55-do_T_10_minus_ERA55_T_2_1993-2017_monthly_mean_vrange_40_200dpi JRA55-do_T_10_minus_ERA55_T_2_1993-2017_monthly_mean_vrange_5_200dpi

Tsujino et al 2018 Fig 6:

Tsujino et al 2018 Fig 7:

scrallen commented 2 years ago

@aekiss Nice plots, this is really interesting. The high latitudes differences are obviously striking.

I showed this at BoM this week. Paul Sandery was there and he pointed out that the very large positive (>10°C) biases in Antarctica appear to be over land, so perhaps the JRA55-do team didn't give that much consideration given it's meant for ocean models. Tsujino et al. appear to mask out land areas.

I understand the height difference is what made you analyse air temps first. Are you considering any similar analysis for other fields?

At a Thursday meeting a few weeks back when this was discussed I think I recall @nichannah saying he felt he was close to a first run with ERA5. Is that the case? Or still a few things to resolve first?

aekiss commented 2 years ago

Hi @scrallen, yes I'll also compare the other fields we will use to drive the model.

@nichannah is converging on a working configuration but hit a few unexpected snags that required code changes. Also, we are yet to resolve how to shift the temperature from 2m to 10m, and calculate 10m ~relative~ specific humidity from 2m dew point.

avivsolo commented 2 years ago

Hi Andrew The method below gives the RH at a position where the dew point temperature is known, but I don't know if that was part of the question. For vertical shifting of these properties, are boundary layer similarity relations the way to go? Cheers, Aviv p.s. In case it's of use, here is a method I used before for conversion of dew point temperature Td to RH, albeit at the given height above ground. It's based on the Tetens approximation for saturation vapor pressure, and on the fact that saturation vapor pressure at the dew point Td is equal to the actual vapor pressure (at the actual temperature T). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %Use Tetens formula to get RH from (T,Td) function RH = RH_from_DP(Td,T) %obtain temperature T and Dew-point temperature Td in Kelvin R3=17.502; R4=32.19; T0=273.15; Pv = exp(R3.(Td-T0)./(Td-R4)); %Actual vapor pressure [Pa] at temperature T, by Tetens formula Ev = exp(R3.(T-T0)./(T-R4)); %Saturation vapor pressure [Pa] by Tetens formula RH = 100*(Pv./Ev); %[0-100]. Calculate relative humidity: ratio of vapor pressure to saturation vapor pressure RH(RH>100) = 100; RH(RH<0) = 0; % Correct some unphysical results of the empirical formula RH = RH/100; % if need 0-1 range end

nichannah commented 2 years ago

Another useful reference on How to calculate hus at 2m (huss): https://confluence.ecmwf.int/pages/viewpage.action?pageId=171411214

aekiss commented 2 years ago

Thanks @avivsolo, that's helpful. I actually meant specific humidity (not relative), but Tetens' formula could be used for that too.

aekiss commented 2 years ago

The ERA5 documentation https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation states

Computation of near-surface humidity Near-surface humidity is not archived directly in ERA datasets, but the archive contains near-surface (2m from the surface) temperature (T), dew point temperature (Td), and surface pressure (sp) from which you can calculate specific and relative humidity at 2m. Specific humidity can be calculated over water and ice using equations 7.4 and 7.5 from Part IV, Physical processes section (Chapter 7, section 7.2.1b) in the documentation of the IFS for CY41R2. Use the 2m dew point temperature and surface pressure (which is approximately equal to the pressure at 2m) in these equations. The constants in 7.4 are to be found in Chapter 12 (of Part IV: Physical processes) and the parameters in 7.5 should be set for saturation over water because the dew point temperature is being used. Relative humidity should be calculated: RH = 100 * es(Td)/es(T) Relative humidity can be calculate with respect to saturation over water, ice or mixed phase by defining es(T) with respect to saturation over water, ice or mixed phase (water and ice). The usual practice is to define near-surface relative humidity with respect to saturation over water.

Equations 7.4 and 7.5 from Part IV, Physical processes section (Chapter 7, section 7.2.1b) in the documentation of the IFS for CY41R2 are here https://www.ecmwf.int/en/elibrary/16648-ifs-documentation-cy41r2-part-iv-physical-processes

Screen Shot 2021-09-14 at Tue 14-9 1 30pm which matches @avivsolo's Tetens' formula above, other than the factor a1 (which cancels in his relative humidity calculation) and a difference of 0.01K in T0 (it seems ECMWF use the triple point rather than freezing temperature; their a4 also differs from parameter c in Buck (1981) eq 3a and table 2 (c = 240.97K = -32.18C) even though that's where they say they got their parameters).

The constants in 7.4 are to be found in Chapter 12 (of Part IV: Physical processes): Screen Shot 2021-09-14 at Tue 14-9 1 35pm Screen Shot 2021-09-14 at Tue 14-9 1 36pm

Reference: Buck, A. L. (1981). New equations for computing vapor pressure and enhancement factor. J. Appl. Meteorol., 20, 1527–1532.

aekiss commented 2 years ago

Hi @nic, to help me get me head around this, I've made this summary of the mapping between JRA55-do and ERA5 forcing fields as currently in libaccessom2/tests/ERA5/forcing.json, in comparison with JRA55-do from here. I have several questions in the notes column. @russfiedler do you have any suggestions? Apologies if I'm digging up things that have already been discussed.

Coupling name JRA55-do ERA5 Note / TODO
swfld_ai rsds Surface Downwelling Shortwave Radiation [W m-2] msdrswrf Mean surface direct short-wave radiation flux [W m**-2] should this be msdwswrf Mean surface downward short-wave radiation flux [W m-2]? Does this include msdwuvrf Mean surface downward UV radiation flux [W m-2]? I guess we don't want to use the "net" quantity msnswrf Mean surface net short-wave radiation flux [W m**-2]?
lwfld_ai rlds Surface Downwelling Longwave Radiation [W m-2] msdwlwrf Mean surface downward long-wave radiation flux [W m**-2] I guess we don't want to use the "net" quantity msnlwrf Mean surface net long-wave radiation flux [W m**-2]?
rain_ai prra Rainfall Flux [kg m-2 s-1] mcpr Mean convective precipitation rate [kg m-2 s-1] and mlspr Mean large-scale precipitation rate [kg m-2 s-1] does snowfall need to be subtracted? Or use crr Convective rain rate [kg m-2 s-1] and lsrr Large scale rain rate [kg m-2 s-1] instead? Ormtpr Mean total precipitation rate [kg m-2 s-1] and ptype Precipitation type [code table (4.201)] instead?
snow_ai prsn Snowfall Flux [kg m-2 s-1] mlssr Mean large-scale snowfall rate [kg m-2 s-1] add mcsr Mean convective snowfall rate [kg m-2 s-1]? or just use msr Mean snowfall rate [kg m-2 s-1]? what about csfr Convective snowfall rate water equivalent [kg m-2 s-1] and lssfr Large scale snowfall rate water equivalent [kg m-2 s-1] ?
press_ai psl Sea Level Pressure [Pa] msl Mean sea level pressure [Pa]
runof_ai friver Water Flux into Sea Water from Rivers [kg m-2 s-1] msror Mean surface runoff rate [kg m-2 s-1] and mssror Mean sub-surface runoff rate [kg m-2 s-1] ~or just use mror Mean runoff rate [kg m-2 s-1]?~ [edit: none of these ERA5 runoff fields are suitable, as they haven't been routed to river mouths - see here]
tair_ai tas Near-Surface (10m) Air Temperature [K] t2m 2 metre temperature [K] Change to 10m height - see appendix A2 in Tsujino et al 2018
qair_ai huss Near-Surface (10m) Specific Humidity [1] t2m 2 metre temperature [K] and d2m 2 metre dewpoint temperature [K] Convert dew point to specific humidity (also requires msl Mean sea level pressure [Pa]) and change to 10m height - see appendix A2 in Tsujino et al 2018
uwnd_ai uas Eastward Near-Surface (10m) Wind [m s-1] u10 10 metre U wind component [m s**-1]
vwnd_ai vas Northward Near-Surface (10m) Wind [m s-1] v10 10 metre V wind component [m s**-1]
licalvf_ai licalvf Land Ice Calving Flux [kg m-2 s-1] not available in ERA5 - use JRA55-do values?
nichannah commented 2 years ago

Thanks @aekiss, this is very helpful. For now I've made the following improvements:

Regarding qair_ai I've used d2m and psl. You can see the current code here:

https://github.com/COSIMA/libaccessom2/blob/242-era5-support/libforcing/src/forcing_field.F90#L169

aekiss commented 2 years ago

OK let's see how that goes. Disclaimer: my suggestions were based purely on the longnames and wild guesswork, so they might not be sensible.

aekiss commented 2 years ago

@aidan which field had one chunk for the whole month? I thought it was d2m but /g/data/rt52/era5/single-levels/reanalysis/2d/2021/2d_era5_oper_sfc_20210501-20210531.nc has

    short d2m(time, latitude, longitude) ;
...
        d2m:_ChunkSizes = 93, 91, 180 ;
aekiss commented 2 years ago

@nichannah - re. ERA5 chunking and caching: you'll still get a performance speedup even if you need to read the same chunk more than once due to memory constraints on the size of the cache. e.g. a 8hr cache would speed it up by 8x even if chunks are larger than 8hr (ie even if chunks are read more than once).

aekiss commented 2 years ago

@nichannah I've added dimensions and chunking to the table of ERA5 variables above

aekiss commented 2 years ago

@nichannah it looks like nearly all variables have 8-hour chunks so you should be able to fit them in a cache and only read each chunk once.

aidanheerdegen commented 2 years ago
$ ncdump -hs /g/data/rt52/era5/single-levels/reanalysis/sp/2020/sp_era5_oper_sfc_20201101-20201130.nc | grep sp
netcdf sp_era5_oper_sfc_20201101-20201130 {
        short sp(time, latitude, longitude) ;
                sp:scale_factor = 0.866173220934491 ;
                sp:add_offset = 76706.6020696395 ;
                sp:_FillValue = -32767s ;
                sp:missing_value = -32767s ;
                sp:units = "Pa" ;
                sp:long_name = "Surface pressure" ;
                sp:standard_name = "surface_air_pressure" ;
                sp:_Storage = "chunked" ;
                sp:_ChunkSizes = 720, 721, 1440 ;
                sp:_DeflateLevel = 5 ;
                sp:_Shuffle = "true" ;
                sp:_Endianness = "little" ;
                sp:_NoFill = "true" ;

I thought about it and It isn't necessary to read in the entire chunk, should be ok to have a fixed cache size and read in some amount of the chunk. Obviously the IO operation will read it all, but you can discard what won't fit in the chunk and then read it again to refill the cache. As long as the cache is big enough so performance is acceptable.

Clearly it's best to read in the whole chunk, but it memory is an issue then it isn't absolutely necessary.

aekiss commented 2 years ago

Looks like the chunking can vary!

The table above uses the first file in 2017 for each variable. For sp this has 8-hr chunks:

$ ncdump -hs /g/data/rt52/era5/single-levels/reanalysis/sp/2017/sp_era5_oper_sfc_20170101-20170131.nc
netcdf sp_era5_oper_sfc_20170101-20170131 {
...
    short sp(time, latitude, longitude) ;
        sp:scale_factor = 0.880649408027253 ;
        sp:add_offset = 76652.608503421 ;
        sp:_FillValue = -32767s ;
        sp:missing_value = -32767s ;
        sp:units = "Pa" ;
        sp:long_name = "Surface pressure" ;
        sp:standard_name = "surface_air_pressure" ;
        sp:_Storage = "chunked" ;
        sp:_ChunkSizes = 93, 91, 180 ;
        sp:_DeflateLevel = 5 ;
        sp:_Shuffle = "true" ;
        sp:_Endianness = "little" ;
...
}
aidanheerdegen commented 2 years ago

Yeah that's right, I thought I'd said that in the meeting. I am informed that ERA5 comes uncompressed from ECMWF and the compression (and chunking) is therefore something that is mostly probably done locally. It should probably be brought to NCI's attention via an email to help@nci.org.au

aekiss commented 2 years ago

/g/data/rt52/era5/single-levels/reanalysis/sp/2020/sp_era5_oper_sfc_20201101-20201130.nc is the only sp file with time chunk size of 720. All the rest are in the range 87-96.

russfiedler commented 2 years ago

I see that the scale and offset are file specific. No problem with that but it needs to be kept in mind.

aekiss commented 2 years ago

weirdly some have sp:_ChunkSizes = 96, 103, 206 ; ie different spatial chunking too

aekiss commented 2 years ago

The chunking in sp is always one of

        sp:_ChunkSizes = 720, 721, 1440 ;
        sp:_ChunkSizes = 87, 91, 180 ;
        sp:_ChunkSizes = 90, 91, 180 ;
        sp:_ChunkSizes = 93, 91, 180 ;
        sp:_ChunkSizes = 96, 103, 206 ;
aidanheerdegen commented 2 years ago

I don't think the process they are using does anything to enforce chunking. The differences may be due to somethings banal as the netCDF library version they are picking up with whatever they're using to do this.

I think any where the chunks are the entire extent of the data should be reported as faulty. They are not fit for purpose. Otherwise the heterogenity is something we'll just have to live with. In which case what I said above applies, just choose a decently sized cache that allows for acceptable performance.

rmholmes commented 2 years ago

Somewhat off topic, but I just wanted to flag some analysis I've done of TIWs and the equatorial circulation in the existing runs, summarized in this notebook. To make a long story short: TIWs are very weak in the JRA55-do runs, which may be because the North Equatorial Counter Current (NECC) is very weak, a common feature of OMIP-2 models. This recent paper by Sun et al. (2021) compare POP simulations with JRA55-raw and JRA55-do and find that the weak NECC in JRA55-do is largely associated with the QuikSCAT correction. There is no "ERA5-do" and so it will be interesting to see if the NECC (and TIWs) is better represented in these new ERA5 runs. The lack of these corrections should be taken into account when comparing ERA-5 and JRA55-do forced runs.

aekiss commented 2 years ago

I've just sent an email to help@nci.org.au re. bad chunking (ticket 179151, following on from Aidan's earlier today). The badly-chunked files that affect us are

/g/data/rt52/era5/single-levels/reanalysis/10u/1980/10u_era5_oper_sfc_19801001-19801031.nc
/g/data/rt52/era5/single-levels/reanalysis/10u/1983/10u_era5_oper_sfc_19830901-19830930.nc
/g/data/rt52/era5/single-levels/reanalysis/10u/2020/10u_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/10v/1992/10v_era5_oper_sfc_19921001-19921031.nc
/g/data/rt52/era5/single-levels/reanalysis/10v/2020/10v_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/2d/1980/2d_era5_oper_sfc_19800301-19800331.nc
/g/data/rt52/era5/single-levels/reanalysis/2d/1996/2d_era5_oper_sfc_19960801-19960831.nc
/g/data/rt52/era5/single-levels/reanalysis/2d/2020/2d_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/2t/1988/2t_era5_oper_sfc_19881101-19881130.nc
/g/data/rt52/era5/single-levels/reanalysis/2t/1990/2t_era5_oper_sfc_19900701-19900731.nc
/g/data/rt52/era5/single-levels/reanalysis/2t/2014/2t_era5_oper_sfc_20140501-20140531.nc
/g/data/rt52/era5/single-levels/reanalysis/2t/2020/2t_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/crr/2020/crr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/csfr/2020/csfr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/lsrr/2020/lsrr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/lssfr/2020/lssfr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mcpr/2020/mcpr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mcsr/2020/mcsr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mlspr/2020/mlspr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mlssr/2020/mlssr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mror/2020/mror_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdrswrf/2020/msdrswrf_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdrswrfcs/2020/msdrswrfcs_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdwlwrf/1996/msdwlwrf_era5_oper_sfc_19961001-19961031.nc
/g/data/rt52/era5/single-levels/reanalysis/msdwlwrf/2010/msdwlwrf_era5_oper_sfc_20101101-20101130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdwlwrf/2020/msdwlwrf_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdwswrf/2020/msdwswrf_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msdwswrfcs/2020/msdwswrfcs_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msl/2013/msl_era5_oper_sfc_20130301-20130331.nc
/g/data/rt52/era5/single-levels/reanalysis/msl/2020/msl_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msr/2020/msr_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/msror/2020/msror_era5_oper_sfc_20201101-20201130.nc
/g/data/rt52/era5/single-levels/reanalysis/mssror/2020/mssror_era5_oper_sfc_20201101-20201130.nc

For reference, the complete list of badly-chunked files in /g/data/rt52/era5/single-levels/reanalysis is given in the attached files.

bad-chunks-paths.txt bad-chunks-detailed.txt

aekiss commented 2 years ago

The files above have been rechunked and temporarily saved in /g/data/uc0/era5_tmp/single-levels/reanalysis

Edit: this is no longer necessary

aidanheerdegen commented 2 years ago

Scott pointed out there is a library level cache available which could solve the performance issue

https://www.unidata.ucar.edu/software/netcdf/workshops/2011/nc4chunking/Cache.html

It is the sort of thing we should probably be doing anyway, tuning the cache size for some of these applications.

aekiss commented 2 years ago

Thanks, that looks promising.

nc_var_set_cache doesn't appear in libaccessom2, so presumably it uses the default cache of 32MB. Not sure if this refers to pre- or post-decompression, but post-decompression seems more likely.

An 8-hr chunk of uncompressed single-precision ERA5 data would need 8*1440*721*4=33,223,680 bytes, which would just fit within 32MB=33,554,432 bytes, assuming nothing else needs storing. I guess the fact that performance is bad indicates it doesn't fit within the cache, but maybe it won't need much of an increase to get major benefits.

aekiss commented 2 years ago

Does the netcdf library provide any sort of diagnostics on cache hits/misses? That could be a good thing to monitor.

aekiss commented 2 years ago

Darshan might be helpful for finding I/O bottlenecks in NetCDF reads? https://opus.nci.org.au/display/Help/Darshan

aekiss commented 2 years ago

[edited - I was looking at the wrong source code]

Hi @nichannah, re. shifting from 2m to 10m, the scripts that generated JRA55-do are available at https://github.com/HiroyukiTsujino/JRA55-do.

~It looks like the shift of air temperature and specific humidity from 2m to 10 briefly outlined in appendix A2 in Tsujino et al 2018 is accomplished in https://github.com/HiroyukiTsujino/JRA55-do/tree/master/extract_jra55 with one of shift_2m_to_10m_tq.sh, shift_2m_to_10m_tq_d1_d2, or shift_2m_to_10m_tq_onedata.sh.~

~These all use shift_2m_to_10m_zrough.F90.~

~The calculations of interest to us are done with bulk_shift, which is defined in bulk_shift_zrough.F90 (_ignore the different definition in bulk-ncar-shift.F90 - that's not what the makefile uses_).~

I'll have a closer look at this tomorrow. I'll translate the Japanese comments.

aekiss commented 2 years ago

[edited - I was looking at the wrong source code]

I've forked the JRA55-do repo and added comments and translations to bulk_shift_zrough.F90 on this branch.

~Over ocean the shift from 2m to 10m is done like so:~

~Over land, height conversion uses equations 7 - 9 of Large and Yeager (2004). There's a discussion of the conversion method on p8 (PDF p15). It seems JRA55-do uses method C, which is iterative, but no iteration takes place in the code and stability is assumed. The shifted quantities are calculated via eq 9bc, but with the psi terms neglected.~

~So in summary it looks like~

@nichannah does that seem feasible?

aekiss commented 2 years ago

~Also note that many of the inputs and outputs of bulk_shift_zrough.F90 have different units from those in ERA5.~

aekiss commented 2 years ago

Oops, turns out I was looking at the wrong definition of bulk_shift. I've confirmed with @HiroyukiTsujino that the one used for JRA55 (with some new comments from me) is actually https://github.com/COSIMA/JRA55-do/blob/extra-comments/anl/diagflux/src/bulk-ncar-shift.F90 not the version in bulk_shift_zrough.F90.

bulk_shift is called from shift_surf_interannual_ocean.

Height conversion uses equations 7 - 9 of Large and Yeager (2004). There's a discussion of the conversion method on p8 (PDF p15). JRA55-do uses method C, which is iterative. Up to n_itts=5 iterations are used to obtain convergence at each grid point.

CPP flag LYCOEF is unused, so the Gill (1982) formulas are used for the surface specific humidity, as described in appendix A2 in Tsujino et al 2018.

From a quick look at the code it seems that shifting T and q from 2m to 10m would require at least these ERA5 variables

Care would need to be taken to convert units correctly.

aidanheerdegen commented 2 years ago

Wouldn't it be nice if someone made a ERA5-do product

rmholmes commented 2 years ago

@aidanheerdegen that would be great! However, there are also a few things that JRA-raw does better than JRA-do (see my TIW example above).

Thanks for the work @aekiss

aidanheerdegen commented 2 years ago

Wouldn't it be good if someone made a JRA55-do-rmholmes product ... which is flippant, but maybe shows there is a use-case for a general approach to creating forcing products on-the-fly. It is just a special case for a coupler framework, using multiple input fields and transforming them (and potentially reducing them) into fields to input to the model.

aekiss commented 2 years ago

Using ERA5 without flux adjustments is likely to lead to a lot of drift, so ERA5-do would be awesome. Brodeau et al. (2010) made a -do based on ERA40 for DRAKKAR, so I wouldn't be surprised if something like that happens eventually for ERA5.

aekiss commented 2 years ago

Here are 25-year monthly means of JRA55-do T at 10m minus JRA55 T at 2m (click to enlarge).

There are very large adjustments unrelated to height over the ice-covered regions, but in ice-free regions the shift from 2m to 10m changes T by a fraction of a degree (apart from a few locations, e.g. near S. America).

So we could probably get away with not moving the ERA5 T from 2m to 10m, at least for initial tests, and assuming there isn't too much cancellation in the climatologies. Not sure if this conclusion also applies to humidity - JRA55 humidity is on pressure levels in /g/data/ua8/synda/CREATE-IP/reanalysis/JMA/JRA-55/JRA-55/atmos/mon/v20200612/ so I haven't done the comparison with JRA55-do.

JRA55-do_T_10_minus_JRA55_T_2_1993-2017_monthly_mean_vrange_3_200dpi

rmholmes commented 2 years ago

@aekiss won't the large differences over ice-covered regions have an impact on sea ice?

aekiss commented 2 years ago

The differences between JRA55-do and JRA55 over ice are dominated by other adjustments, not the change in height.

The JRA55 reanalysis uses observed COBE-SST SIC thresholded at 55%. The resulting sharp edge and anomalously low SAT are ameliorated by ad-hoc smoothing and a floor applied to SAT in JRA55-do (see Tsujino et al. 2018 sec 3.3.4).

These are the resulting changes due to smoothing

and the floor

rmholmes commented 2 years ago

Ah right. Thanks!

aekiss commented 2 years ago

These are biases of JRA55-do (top row) and JRA55 (bottom row) relative to ERA5 for Feb, April, Sept, Nov. Contours are 15% SIC (gray=obs, colours=access-om2 at 1, 0.25, 0.1 deg) and model land mask (thick black).

JRA55-do is generally closer to ERA5 than JRA55 is, but the adjustments seem overdone in the Atlantic and Indian sectors and underdone in the Pacific, at least in Apr-Nov.

Screen Shot 2022-02-04 at Fri 4-2 2 49pm