KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error (attempt #2)#517
Merged
davegill merged 4 commits intowrf-model:masterfrom May 14, 2018
davegill:zap_rrtmg_fast_2
Merged
KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error (attempt #2)#517davegill merged 4 commits intowrf-model:masterfrom davegill:zap_rrtmg_fast_2
davegill merged 4 commits intowrf-model:masterfrom
davegill:zap_rrtmg_fast_2
Conversation
TYPE: bug fix
KEYWORDS: RRTMG FAST, GNU
SOURCE: internal
DESCRIPTION OF CHANGES:
With GNU version 6.40, 6.5.0, 7.1.0, 7.2.0, and 7.3.0, the WRF RRTMG FAST LW scheme causes an internal compiler error for some optimization levels. The RRTMG code looks reasonable.
module_ra_rrtmg_swf.f90:5612:0:
use rrsw_kg21_f, only : kao, kbo, selfrefo, forrefo, sfluxrefo, &
internal compiler error: in gfc_trans_use_stmts, at fortran/trans-decl.c:4920
module_ra_rrtmg_swf.f90:5612:0: internal compiler error: Abort trap: 6
gfortran: internal compiler error: Abort trap: 6 (program f951)
The solution is to remove the RRTMG code via an ifdef.
LIST OF MODIFIED FILES:
M phys/module_physics_init.F
M phys/module_ra_rrtmg_lwf.F
M phys/module_ra_rrtmg_swf.F
M phys/module_radiation_driver.F
TESTS CONDUCTED:
- [x] Code builds with GNU/7.2.0 with -D optimization with mods (i.e. NO RRTMG FAST)
- [x] Code does not build with newer GNU with -D optimziation without mods
2 tasks
davegill
added a commit
to davegill/WRF
that referenced
this pull request
Feb 10, 2020
TYPE: enhancement KEYWORDS: GNU, RRTMK SOURCE: internal DESCRIPTION OF CHANGES: Problem: The GNU compiler versions from 6.* through 8.* issue an internal compiler error on various RRTMG-based schemes. Solution: A modification was introduced in the WRF build to allow the RRTMG-fast version to skip being built (commit 17b5ac4 with PR wrf-model#517 "KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error"). This same strategy is now used for the RRTMK scheme. On a good note ... it looks like GNU verion 9.1.* and later fixes this trouble. LIST OF MODIFIED FILES: modified: arch/postamble modified: phys/module_physics_init.F modified: phys/module_ra_rrtmg_lwk.F modified: phys/module_ra_rrtmg_swk.F modified: phys/module_radiation_driver.F modified: share/module_check_a_mundo.F TESTS CONDUCTED: - [ ] Waiting to see if this fixes Ming's problem
davegill
added a commit
that referenced
this pull request
Feb 11, 2020
TYPE: enhancement KEYWORDS: GNU, RRTMK SOURCE: internal DESCRIPTION OF CHANGES: Problem: The GNU compiler versions from 6.* through 8.* issue an internal compiler error on various RRTMG-based schemes. Solution: A modification was introduced in the WRF build to allow the RRTMG-fast version to skip being built (commit 17b5ac4 with PR #517 "KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error"). This same strategy is now used for the RRTMK scheme. On a good note ... it looks like GNU verion 9.1.* and later fixes this trouble. LIST OF MODIFIED FILES: modified: arch/postamble modified: phys/module_physics_init.F modified: phys/module_ra_rrtmg_lwk.F modified: phys/module_ra_rrtmg_swk.F modified: phys/module_radiation_driver.F modified: share/module_check_a_mundo.F TESTS CONDUCTED: 1. Code is bit-for-bit when not using the RRTMGK scheme with compiling using the default settings vs when ifdef'ing out the RRTMGK schemes. 2. When no RRTMGK scheme is built, but the scheme is requested, the code successfully traps the error condition. ``` &physics physics_suite = 'CONUS' ra_lw_physics = 14, -1, -1, ra_sw_physics = 14, -1, -1, ``` ``` --- ERROR: RRTMG-based KIAPS schemes must be built with a default compile-time flag --- ERROR: Run ./clean -a, ./configure, ./compile scripts again -------------- FATAL CALLED --------------- ```
davegill
added a commit
to davegill/WRF
that referenced
this pull request
Feb 12, 2020
TYPE: enhancement KEYWORDS: RRTMG, FAST, KIAPS, postamble, cpp SOURCE: internal DESCRIPTION OF CHANGES: Problem: The WRF code with the GNU compilers (from 6.3.* inclusive to anything before 9.1.0) will sometimes fail to compile. The error is listed as an "internal compiler error". The two RRTMG schemes (FAST and KIAPS) are the standard causes for GNU failing to compile the WRF code successfully. Solution: The following two mods were previously made to the WRF source code: 1. commit 17b5ac4, PR wrf-model#517 "KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error" 2. commit a83c7cb, PR wrf-model#1084 "KLUGE - Option to avoid building RRTMK due to GNU problem" This new PR just resests the default settings from "always build these schemes" to "never build these schemes". LIST OF MODIFIED FILES: modified: arch/postamble TESTS CONDUCTED: 1. The logic to disable the RRTMG FAST scheme has been in place for more than 18 months. 2. Actually disabling the build of RRTMG FAST has been tested hundreds of times with the combination of the automated Jenkins regression test and the NCAR-only classroom tests. 3. The KIAPS infrastructure has been tested with both the automated Jenkins test and the NCAR classroom regression tests. RELEASE NOTE: The default setting for the WRF model is to NOT compile either of the two derivative RRTMG schemes: FAST or KIAPS. These codes break the GNU compiler (v6.3.0 through v8.*). To re-enable the schemes, modify the `configure.wrf`file after running the `./configure` command. Replace the "zero" values with "ones" in the lines `-DBUILD_RRTMG_FAST=0` or -DBUILD_RRTMK=0`. This is a compile-time modification.
davegill
added a commit
that referenced
this pull request
Feb 12, 2020
TYPE: enhancement KEYWORDS: RRTMG, FAST, KIAPS, postamble, cpp SOURCE: internal DESCRIPTION OF CHANGES: Problem: The WRF code with the GNU compilers (from 6.3.* inclusive to anything before 9.1.0) will sometimes fail to compile. The error is listed as an "internal compiler error". The two RRTMG schemes (FAST and KIAPS) are the standard causes for GNU failing to compile the WRF code successfully. Solution: The following two mods were previously made to the WRF source code: 1. commit 17b5ac4, PR #517 "KLUGE: RRTMG FAST + GNU > 6.3.0 is an internal compiler error" 2. commit a83c7cb, PR #1084 "KLUGE - Option to avoid building RRTMK due to GNU problem" This new PR just resests the default settings from "always build these schemes" to "never build these schemes". LIST OF MODIFIED FILES: modified: arch/postamble TESTS CONDUCTED: 1. The logic to disable the RRTMG FAST scheme has been in place for more than 18 months. 2. Actually disabling the build of RRTMG FAST has been tested hundreds of times with the combination of the automated Jenkins regression test and the NCAR-only classroom tests. 3. The KIAPS infrastructure has been tested with both the automated Jenkins test and the NCAR classroom regression tests. RELEASE NOTE: The default setting for the WRF model is to NOT compile either of the two derivative RRTMG schemes: FAST or KIAPS. These codes break the GNU compiler (v6.3.0 through v8.*). To re-enable the schemes, modify the `configure.wrf` file after running the `./configure` command. Replace the "zero" values with "ones" in the lines `-DBUILD_RRTMG_FAST=0` or `-DBUILD_RRTMK=0`. This is a compile-time modification.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TYPE: bug fix
KEYWORDS: RRTMG FAST, GNU
SOURCE: internal
DESCRIPTION OF CHANGES:
With GNU version 6.4.0, 6.5.0, 7.1.0, 7.2.0, and 7.3.0, the WRF RRTMG FAST LW scheme causes an internal compiler error for some optimization levels. The RRTMG code looks reasonable, so there does not seem an obvious code fix to implement in the RRTMG FAST LW scheme.
The solution is to BE EASILY ABLE TO remove the RRTMG FAST code via an ifdef.
LIST OF MODIFIED FILES:
M phys/module_physics_init.F
M phys/module_ra_rrtmg_lwf.F
M phys/module_ra_rrtmg_swf.F
M phys/module_radiation_driver.F
M share/module_check_a_mundo.F
M arch/postamble
TESTS CONDUCTED: