Errors with dv2uv command
Added by Matthew Bray over 3 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 3 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 3 years ago
Hi Uwe,
Good to know! I appreciate the reply. I'll move to a machine with more memory availability.
Thanks again!
Matthew