Skip to content

Commit 0b56a1b

Browse files
committed
Ensure that the string converted output is single character 'T' or 'F'
for .true./.false. attribute values. Clearly document this behavior in the user API doc.
1 parent 96d1290 commit 0b56a1b

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/addon/NUOPC/src/NUOPC_Comp.F90

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -555,10 +555,12 @@ subroutine NUOPC_GridCompAttributeGet(comp, name, value, isPresent, isSet, rc)
555555
!
556556
! This call assumes to find a scalar value. An error is returned otherwise.
557557
!
558-
! This call concverts to a string value, regardless of the actual attribute
559-
! storage.
558+
! This call converts the output to a string value, regardless of the actual
559+
! attribute storage. In particular, for {\tt ESMF\_TYPEKIND\_LOGICAL}
560+
! attributes, the returned values are (uppercase) {\tt T} and {\tt F} for,
561+
! {\tt .true.} and {\tt .false.}, respectively.
560562
!
561-
! Unless {\tt isPresent} and {\tt isSet} are provided, return with error if
563+
! Unless {\tt isPresent} and {\tt isSet} are provided, return with error if
562564
! the attribute is not present or not set, respectively.
563565
!
564566
! The arguments are:
@@ -648,7 +650,7 @@ subroutine NUOPC_GridCompAttributeGet(comp, name, value, isPresent, isSet, rc)
648650
file=FILENAME, &
649651
rcToReturn=rc)) &
650652
return ! bail out
651-
write(value,*) valueL
653+
write(value,"(L1)") valueL
652654
else if (tk==ESMF_TYPEKIND_I4) then
653655
call ESMF_InfoGet(info, key="/NUOPC/Instance/"//name, value=valueI4, &
654656
rc=localrc)
@@ -719,10 +721,12 @@ subroutine NUOPC_CplCompAttributeGet(comp, name, value, isPresent, isSet, rc)
719721
!
720722
! This call assumes to find a scalar value. An error is returned otherwise.
721723
!
722-
! This call concverts to a string value, regardless of the actual attribute
723-
! storage.
724+
! This call converts the output to a string value, regardless of the actual
725+
! attribute storage. In particular, for {\tt ESMF\_TYPEKIND\_LOGICAL}
726+
! attributes, the returned values are (uppercase) {\tt T} and {\tt F} for,
727+
! {\tt .true.} and {\tt .false.}, respectively.
724728
!
725-
! Unless {\tt isPresent} and {\tt isSet} are provided, return with error if
729+
! Unless {\tt isPresent} and {\tt isSet} are provided, return with error if
726730
! the attribute is not present or not set, respectively.
727731
!
728732
! The arguments are:
@@ -812,7 +816,7 @@ subroutine NUOPC_CplCompAttributeGet(comp, name, value, isPresent, isSet, rc)
812816
file=FILENAME, &
813817
rcToReturn=rc)) &
814818
return ! bail out
815-
write(value,*) valueL
819+
write(value,"(L1)") valueL
816820
else if (tk==ESMF_TYPEKIND_I4) then
817821
call ESMF_InfoGet(info, key="/NUOPC/Instance/"//name, value=valueI4, &
818822
rc=localrc)

0 commit comments

Comments
 (0)