-
Notifications
You must be signed in to change notification settings - Fork 7
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
Feature/pnorris/#422 #443 rrtmg lw sw combo generator #492
Feature/pnorris/#422 #443 rrtmg lw sw combo generator #492
Conversation
…nt improve cloud generator
Scott, please also merge to ORBIT default on (AGCM.rc add two lines) at or near this PR (before or after). Thanks, Peter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CMake changes
@dr0cloud It looks like the GNU build has an issue:
Now the function in question does seem pretty...correct: function condensate_inhomogeneous result (inhomo)
logical :: inhomo
if (.not. initialized) then
write(error_unit,*) 'file:', __FILE__, ', line:', __LINE__
error stop 'must initialize_inhomogeneity first'
end if
inhomo = (inhm > 0)
end function condensate_inhomogeneous so I'm not sure why GNU is having an issue. @tclune do you see anything wrong here? Or is this just some GNU oddity so it needs to be the uglier: logical function condensate_inhomogeneous()
if (.not. initialized) then
write(error_unit,*) 'file:', __FILE__, ', line:', __LINE__
error stop 'must initialize_inhomogeneity first'
end if
condensate_inhomogeneous = (inhm > 0)
end function condensate_inhomogeneous |
Per @Gvilla1000-nasa, he says that this might be a GNU bug. He encountered something similar with an: if (function()) then where he instead had to do: condition = function()
if (condition) then GNU had some issue with doing an if-test on a function itself. (But apparently Intel and NAG were okay with doing that.) |
@dr0cloud Well, the solution was pretty simple. I think we just need to make: function condensate_inhomogeneous result (inhomo) be: function condensate_inhomogeneous() result (inhomo) For some reason, parallel make is "hiding" the real error which can be seen in serial build. When I make that change, it seems to build. I also then did a test run of GEOS (GNU Debug) and, well, nothing crashed. So that's nice. |
@mathomp4 Matt fixed it .. need "function f() result (r)" ... not "function f result (r)" for GCC. Thanks Matt! |
This is a large non-zero-diff PR with fastLW+SW that tidies up RRTMG LW and SW and makes them both about 2/3 the runtime and makes them use a combined cloud generator. The changes have been discussed and vetted in modeling group over the past 2-3 months. Most changes are "statistically zero-diff" in the sense that they have minimal difference (~< 0.01 W/m2) in global TOA fluxes (in 3 month MERRA-2 replays) and minimal changes in zonal means. But any difference in the stochastic cloud generator (even changing the PRNG) will have large instantaneous changes in clouds (and therefore radiative fluxes) that will average to near-zero over space and time. The few changes that were statistically non-zero-diff have been understood as being better.