Hi all,
I tried to run OpenIFS 43r3 with TCO95 and I'm using pextra fields for the first time. The run crashed due to a 'Floating point exception (core dumped)’.
Is there any additional information necessary to know about pextra or a transformation, that should be taken into account here?
Does anyone encountered a similar problem?
Many thanks for any help!
Best regards,
Julian Krüger
9 Comments
Glenn Carver
Hi Julian,
The 'PEXTRA' facility in IFS has to be set up carefully; it's a tool that the research department here use but it's not integrated into the namelists the same way as the normal output fields are.
There are several steps involved, they are described in more detail on this page: How to control OpenIFS output#Physicaltendenciesandfluxes(budget)output(PEXTRA)
The steps are:
1. Set LBUD23=.true. in the namelist (this turns on the extra diagnostics output but DOES NOT define which fields NOR allocate storage)
2. Set NVEXTR & NCEXTR in namelist NAMDHY. This creates the array space in the model for the extra fields.
3. Set the required GRIB codes to be output, by setting NVEXTRAGB. You MUST make sure that the number of grib codes matches the value used in NVEXTR.
4.None of the above steps actually cause the fields to be written. The last step involves setting MFP3DFS to NAMFPOS namelist which uses the grib codes defined above.
If you've checked all these steps against the link above and it looks correct, attach the model logfile and the crash report to this forum post and I'll take a look.
Best regards, Glenn
Joakim Kjellsson
Hi Glenn
Julian and I spoke this morning and I agreed to have a look as well.
I tried all your suggestions above, but the error remains. Should say we are using OpenIFS + XIOS, so not the normal GRIB output.
I have set the following in my fort.4:
fort.4
And I've activated pextra_91, pextra_92, pextra_93 and pextra_94 in the file_def_ifs.xml file.
This should give dynamics tendencies of u,v,t,q on all 91 model levels, but the error is "floating-point overflow" with the traceback:
The error seems to be in the MPI communications associated with inverse spectral transforms. But that might just be where the FPE is caught and the real error is somewhere else.
We are using the famously problematic Intel MPI 2019, but it always worked for uncoupled runs before so it should be ok with PEXTRA turned on too.
Full log file and namelist are attached.
Cheers
Joakim
Glenn Carver
Hi Joakim, Julian,
I did wonder if you had already done the required steps correctly but it's always the first thing to ask and check.
At first look I can't see anything wrong in what you are doing. I'm not used to seeing the model blow up with an overflow in the transforms though.
How many steps has the model run?
I'll take your namelist file and try to reproduce your crash in a low-res standalone test I have. If that doesn't work then I'll have something to investigate. I'll try do it today but I'm in a meeting all afternoon.
Perhaps you could try just setting a single pextra variable instead of 4 and see if that makes any difference?
Cheers, Glenn
Glenn Carver
Hi Julian,
I can reproduce an abort from the model using your namelist settings. Can you please try defining all the GRIB codes instead of just 4? I vaguely remember they all need defining if you enabled LBUD23 as the code writes to the arrays even if you don't ask for them to be output. So if not all are defined, you get memory overwrites. I've had a busy week of meetings so I've not had chance to check the code, but try that and let me know?
CHeers, Glenn
Joakim Kjellsson
Hi Glenn
Thanks for checking! I will run this test tomorrow or Thursday. We've got some big HPC maintenance running for a few days now.
Cheers
Joakim
Glenn Carver
Hi Julian, Joakim,
I've had more time to check this. I can confirm that you need to define ALL of the grib codes if you enable LBUD23. If I do this, the model works ok. You can choose what to output but you must set NVEXTR & NVEXTRAGB to define all the budget tendencies.
Have a look at the code in src/ifs/phys_ec/callpar.F90. This is where the LBUD23 diagnostics are written and it's clear that once LBUD23 is enabled, all of the tendencies will be written.
One remaining issue is that the code appears to be writing to 25 budget variables, not the 24 listed on the OpenIFS User Guide. This might be a change between OpenIFS 40r1 & 43r3. I've contacted someone internally to double check this and I'll get back to you as soon as possible.
Cheers, Glenn
Glenn Carver
Hi Julian, Joakim,
Richard Forbes has got back to me about the extra budget diagnostics activated with the LBUD23 namelist switch. This confirms:
I attach an updated document but confusing this lists 26 budget variables, though only 25 are defined in the code. Note that the 25th (grib code 115) is actually a 3D field made up of individual 2D fields.
If you still have problems, let me know.
Glenn
ifs_LBUD23_extra_diagnostics_list.pdf
Joakim Kjellsson
Hi Glenn
I think I've got a running configuration now. As you said, I had to define all 25 variables in NVEXTRAGB etc.
I also found that I had to update yomxios.F90 to support field 115.
and add the new "pextra_115" to both field_def_ifs.xml and file_def_ifs.xml.
With those changes, I can get PEXTRA on both reduced and regular grids.
Thanks again for the help!
/Joakim
Glenn Carver
Hi Joakim,
Happy New Year! Glad it all works and thanks for those changes to the XIOS interface code and files. I will add those into the next release of OpenIFS 43r3, which should be out Feb.
Cheers, Glenn