Skip to content

Fix WRFDA dm_bcast interfaces#908

Merged
liujake merged 1 commit intowrf-model:release-v4.1.1from
jjguerrette:bugfix/dm_bcast_for_release
May 16, 2019
Merged

Fix WRFDA dm_bcast interfaces#908
liujake merged 1 commit intowrf-model:release-v4.1.1from
jjguerrette:bugfix/dm_bcast_for_release

Conversation

@jjguerrette
Copy link
Contributor

@jjguerrette jjguerrette commented May 15, 2019

TYPE: bug fix

KEYWORDS: WRFDA, BCAST, DMPAR, mpi, 4DVAR

SOURCE: Internal, JJ Guerrette

DESCRIPTION OF CHANGES:
Fix dependencies on wrf_dm_bcast_integer/real/string/bytes …
A missing use statement for da_wrf_interfaces in da_obs_io.f90 was causing the following compile-time error for a 4D-Var build:

catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for da_obs_io.f (code 1)

real    0m19.553s
user    0m18.652s
sys     0m0.668s
da.make:421: recipe for target 'da_obs_io.o' failed
make[1]: [da_obs_io.o] Error 1 (ignored)

The interfaces are updated in da_wrf_interfaces, including assumed-size array behavior similar to that originally defined in module_dm.f90. All known missing use statements related to wrf_dm_bcast_* calls are corrected.

In some cases, scalar variables were changed to array variables with dimension(1), because the wrf_dm_bcast_* subroutines have an assumed-size array dummy argument that requires an array as an input.

The error arose for intel/17.0.1 and mpt/2.19 on cheyenne. Of note is that the compile error has not been noticed previously. An alternative solution could be to notify intel, as the error message suggests. It seemed more logical to put a non-ambiguous fix in place that references specific subroutine interfaces.

LIST OF MODIFIED FILES:
M var/build/depend.txt
M var/da/da_gpseph/da_gpseph.f90
M var/da/da_obs_io/da_obs_io.f90
M var/da/da_par_util/da_par_util.f90
M var/da/da_physics/da_physics.f90
M var/da/da_radiance/da_radiance.f90
M var/da/da_radiance/da_radiance1.f90
M var/da/da_setup_structures/da_scale_background_errors_cv3.inc
M var/da/da_setup_structures/da_setup_structures.f90
M var/da/da_test/da_test.f90
M var/da/da_tools/da_wrf_interfaces.f90
M var/da/da_transfer_model/da_transfer_model.f90
M var/da/da_transfer_model/da_transfer_wrftoxb.inc

TESTS CONDUCTED: Compile works now. Have not conducted WRFDA REGTEST. Only affects 4D-Var builds.

The missing use statement in da_obs_io.df90 was causing the following compile-time error for a 4D-Var build:

catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for da_obs_io.f (code 1)

real    0m19.553s
user    0m18.652s
sys     0m0.668s
da.make:421: recipe for target 'da_obs_io.o' failed
make[1]: [da_obs_io.o] Error 1 (ignored)

The interfaces are updated in da_wrf_interfaces, including assumed-size array behavior in module_dm.f90.

All other known missing use statements related to wrf_dm_bcast_* calls are also corrected.

	modified:   var/build/depend.txt
	modified:   var/da/da_gpseph/da_gpseph.f90
	modified:   var/da/da_obs_io/da_obs_io.f90
	modified:   var/da/da_par_util/da_par_util.f90
	modified:   var/da/da_physics/da_physics.f90
	modified:   var/da/da_radiance/da_radiance.f90
	modified:   var/da/da_radiance/da_radiance1.f90
	modified:   var/da/da_setup_structures/da_setup_structures.f90
	modified:   var/da/da_test/da_test.f90
	modified:   var/da/da_tools/da_wrf_interfaces.f90
	modified:   var/da/da_transfer_model/da_transfer_model.f90
	modified:   var/da/da_transfer_model/da_transfer_wrftoxb.inc
@jjguerrette jjguerrette requested a review from a team as a code owner May 15, 2019 18:11
@jjguerrette jjguerrette changed the title Fix dependencies on wrf_dm_bcast_integer/real/string/bytes Fix WRFDA dm_bcast interfaces May 15, 2019
@davegill
Copy link
Contributor

@jjguerrette
JJ,
Would you add a sentence to explain why some integer values got turned into integer arrays with dimension (1).

@jjguerrette
Copy link
Contributor Author

jjguerrette commented May 16, 2019

@davegill, I added the following sentence:

"In some cases, scalar variables were changed to array variables with dimension(1), because the wrf_dm_bcast_* subroutines have an assumed-size array dummy argument that requires an array as an input."

@davegill
Copy link
Contributor

@jjguerrette
JJ,
Thanks - I'm good

@liujake liujake merged commit 7879c53 into wrf-model:release-v4.1.1 May 16, 2019
liujake pushed a commit that referenced this pull request May 29, 2019
TYPE: bug fix

KEYWORDS: ep, ep_format2, bcast, WRFDA

SOURCE: Internal, JJ Guerrette

DESCRIPTION OF CHANGES: 

These modifications are required following #908 for release-v4.1.1.
The interface to wrf_dm_bcast_* requires an array argument instead of a scalar.  A compile error only arises when #908 and #900 are merged together.  The fix was tested in a 4D-Var build, but should be general.

ISSUE: none

LIST OF MODIFIED FILES: 
M       var/da/da_setup_structures/da_setup_flow_predictors_ep_format2.inc


TESTS CONDUCTED: Compilation is fixed when release-v4.1.1 is merged into develop.  This fix will also work in the current develop branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants