-
Notifications
You must be signed in to change notification settings - Fork 154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug in GFS_typedefs.F90? Should Model%nto and Model%nto2 always be initialized? #870
Comments
@DusanJovic-NOAA @SamuelTrahanNOAA I'd appreciate if you could take a look at this. If what I am saying above is correct, then I don't understand why you are not getting these double free or out of bounds errors. Thanks! |
EDIT: This is incorrect. See comments that follow. |
If you call get_tracer_index for them (as I think you should), then they get value NO_TRACERS = -99, which then, together with your label_dtend_tracer logic, means they are skipped (index + 100 --> if <2 ignore) ? |
Yes, my apologies, you are right. The correct fix is to always call get_tracer_index for those variables. |
See
fv3atm/ccpp/data/GFS_typedefs.F90
Line 5181 in a936459
Model%nto
andModel%nto2
are only initialized if the CPP directiveMULTI_GASES
is set. But these variables always exist (see lines 1490-1491) and therefore remain uninitialized.In lines 5398-5399, they are used to set up the
label_dtend_tracer
array ifldiag3d
is true. Sinceldiag3d
can be true withoutMULTI_GASES
being set, it looks like uninitialized values ofnto
andnto2
are passed to that routine. Unless I am not seeing it. Depending on the system you are on, this can have bad consequences. Example: on my laptop and on Nautilus (a DoD Penguin Linux system), they both always have value zero. That results in double free memory corruption errors later in theadd_dtend
calls. On Narwhal (a DoD Cray system), they have very large but different integer values that result in out of bounds errors. This is with NEPTUNE and not with the UFS, but if I read the code inGFS_typedefs
correctly, the bug seems to be there, too?The text was updated successfully, but these errors were encountered: