Uniformly apply REAL(kind=kind_phys) from CCPP-Physics machine.F definitions to MYNN Surface scheme and wrapper#985
Uniformly apply REAL(kind=kind_phys) from CCPP-Physics machine.F definitions to MYNN Surface scheme and wrapper#985timsliwinski-noaa wants to merge 1 commit into
Conversation
…nitions where necessary to improve consistency in precision This change modifies REAL-type variables and specific REAL-type constants so that they uniformly utilize the kind=kind_phys definition for REAL types found in the CCPP-physics machine.F file. This reduces casting and recasting of REALs between types of differing precision. Additional changes include changing occurances of ALOG to LOG to support more than single precision REALs as needed when kind=kind_phys is defined in that manner.
joeolson42
left a comment
There was a problem hiding this comment.
Thanks for doing this. I do have an update coming for this scheme and I had added the kind_phys declarations but not as thoroughly as you did it (even in the max/mins). Also, thanks for removing the trailing spaces. I am skeptical they are coming from my editor...
|
Thank you, Joseph. Happy to help. I'm also working to port this scheme over to GPUs using OpenACC so this was precursor work to that. More to come on the GPU front in the future, but I'll watch for your updates. |
|
@timsliwinski-noaa @joeolson42 |
|
@dustinswales |
|
@timsliwinski-noaa Actually, since you started from the SCM it makes sense that you would open the PR here. Sorry for any confusion. |
|
@timsliwinski-noaa @joeolson42 I tested this change in the UFS and the tests with do_mynnedmf=T fail when comparing to the baseline. In the error files there are the following statements: Any ideas? |
|
@dustinswales From your output, it appears I may have missed turning off the debug option in the MYNN surface scheme module file before I created the pull request. Can you change the debug option to 0 rather than 1 on line 115 of module_sf_mynn.F90 and let me know if that clears everything up? If so, I'll push that change to the branch. If that doesn't fix it, I'll have to dig further to see what else may be wrong. |
|
@timsliwinski-noaa The RTs are successful with Intel on NCARs Cheyenne with the debugging option change you suggested. |
Uniformly apply REAL(kind=kind_phys) from CCPP-Physics machine.F definitions to MYNN Surface scheme and wrapper
Description of changes:
This change modifies REAL-type variables and specific REAL-type constants so that they uniformly utilize the kind=kind_phys definition for REAL types found in the CCPP-physics machine.F file. This reduces casting and recasting of REALs between types of differing precision. Additional changes include changing occurances of ALOG to LOG to support more than single precision REALs as needed when kind=kind_phys is defined in that manner.
Testing:
Testing was performed using CCPP-SCM. Testing included standalone compilation as well as compilation as part of the CCPP-SCM framework. Runtime testing was performed and output from a TWPICE RRFS v1 beta case utilizing the MYNN Surface Scheme was compared between runs performed before and after changes in this commit. Aside from expected changes in rounding errors and the accumulation thereof, significant changes were not observed in the output.