From 180f866216a71c1d8249f43c6bff4ff2406225f2 Mon Sep 17 00:00:00 2001 From: Jesse Lentz <42011922+J-Lentz@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:01:24 -0400 Subject: [PATCH] fix: replace NULL() intrinsic with typed pointer in diag manager for Cray compiler bug (#1560) --- diag_manager/fms_diag_object.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/diag_manager/fms_diag_object.F90 b/diag_manager/fms_diag_object.F90 index c985a6c30..f4c892dec 100644 --- a/diag_manager/fms_diag_object.F90 +++ b/diag_manager/fms_diag_object.F90 @@ -224,6 +224,7 @@ integer function fms_register_diag_field_obj & integer, allocatable :: file_ids(:) !< The file IDs for this variable integer :: i !< For do loops integer, allocatable :: diag_field_indices(:) !< indices where the field was found in the yaml + class(diagDomain_t), pointer :: null_diag_domain => NULL() !< Workaround for a Cray bug which will be fixed in CCE 19 #endif #ifndef use_yaml fms_register_diag_field_obj = DIAG_FIELD_NOT_FOUND @@ -267,7 +268,7 @@ integer function fms_register_diag_field_obj & call fileptr%add_field_and_yaml_id(fieldptr%get_id(), diag_field_indices(i)) call fileptr%add_buffer_id(fieldptr%buffer_ids(i)) if(fieldptr%get_type_of_domain() .eq. NO_DOMAIN) then - call fileptr%set_file_domain(NULL(), fieldptr%get_type_of_domain()) + call fileptr%set_file_domain(null_diag_domain, fieldptr%get_type_of_domain()) else call fileptr%set_file_domain(fieldptr%get_domain(), fieldptr%get_type_of_domain()) endif @@ -284,7 +285,7 @@ integer function fms_register_diag_field_obj & call fileptr%add_buffer_id(fieldptr%buffer_ids(i)) call fileptr%init_diurnal_axis(this%diag_axis, this%registered_axis, diag_field_indices(i)) if(fieldptr%get_type_of_domain() .eq. NO_DOMAIN) then - call fileptr%set_file_domain(NULL(), fieldptr%get_type_of_domain()) + call fileptr%set_file_domain(null_diag_domain, fieldptr%get_type_of_domain()) else call fileptr%set_file_domain(fieldptr%get_domain(), fieldptr%get_type_of_domain()) endif