Project

General

Profile

Errors with dv2uv command

Added by Matthew Bray over 2 years ago

Hello!

I have been attempting to convert ECMWF generated files containing spectral coefficients of vorticity and divergence (truncation 1279) to u and v wind components on a Gaussian grid using the dv2uv command (e.g., cdo dv2uv gxuz_ml_spec_vo_d_7326.grb gxuz_ml_gg_uv_7326.grb). These files contain 1 time step and 137 hybrid vertical levels and are each around 0.9 GB, so, unfortunately, I am not able to attach one. When I run the command, however, I get the error:

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)

This would seem to indicate a memory issue, but as mentioned, the files are only around 0.9 GB. The machine that I am running CDO on has around 28 GB of memory free, so it doesn't seem like this operation would push the available memory. Any suggestions on how to get around this issue would be greatly appreciated. Thank you!


Replies (2)

RE: Errors with dv2uv command - Added by Uwe Schulzweida over 2 years ago

Hello Matthew,

For the spectral transformation, the necessary Legendre polynomials are calculated in advance and hold in memory. This actually requires a relatively large amount of memory. For T1279 at least 25GB are needed. Since CDO 2.0.0 it is only the half, so about 13GB. The amount of memory depents mostly on the truncation and not on the filesize.

Cheers,
Uwe

RE: Errors with dv2uv command - Added by Matthew Bray over 2 years ago

Hi Uwe,

Good to know! I appreciate the reply. I'll move to a machine with more memory availability.

Thanks again!
Matthew

    (1-2/2)