Paul
Here is the code stripped down to the minimum that still demonstrates the warning message. The original code had more module dependencies and generates a series of such warning messages and compilation eventually fails with the aforementioned error message.
Keith
! ----------------------------------------------------------------------
! FILE BG_DOC.F90
!
! ----------------------------------------------------------------
MODULE WX_Document
USE WX_Buff, ONLY: buffer_t, &
Buff_toStr
IMPLICIT NONE
SAVE
PRIVATE
INTEGER(KIND=SELECTED_INT_KIND(9)), &
PARAMETER :: long = SELECTED_INT_KIND(9)
INTEGER(KIND=long), PARAMETER :: XML_ERRMESS_LEN = 100
CHARACTER(LEN=2), PARAMETER :: EndOfLine = ACHAR(13) // ACHAR(10)
TYPE :: XmlError_t
INTEGER(KIND=long) :: id = 0 ! Message integer identifier
CHARACTER(LEN=XML_ERRMESS_LEN) :: str = '' ! Message character string
END TYPE
TYPE :: XmlDoc_t
PRIVATE
LOGICAL :: documentIsOpen = .FALSE.
LOGICAL :: error = .FALSE.
TYPE(XmlError_t) :: errMess = XmlError_t(0, '')
TYPE(buffer_t) :: buffer
END TYPE
INTERFACE Xml_Close
MODULE PROCEDURE Xml_CloseToChan, &
Xml_CloseToChar
END INTERFACE
CONTAINS
!----------------------------------------------------------------
SUBROUTINE Xml_CloseToChan (xf, lunit, error)
TYPE(xmlDoc_t), INTENT(INOUT) :: xf
INTEGER(KIND=long), INTENT(IN) :: lunit
LOGICAL, OPTIONAL, INTENT(OUT) :: error
INTEGER(KIND=long) :: ios
CHARACTER(LEN=XML_ERRMESS_LEN + 10) :: errorString
IF (xf%error) THEN
errorString = '0222, Some message goes here'
WRITE(lunit, '(A)', IOSTAT=ios) Buff_toStr(xf%buffer) // EndOfLine &
// TRIM(errorString)
ELSE
WRITE(lunit, '(A)', IOSTAT=ios) Buff_toStr(xf%buffer)
ENDIF
IF (ios /= 0) xf%error = .TRUE.
IF (PRESENT(error)) error = xf%error
xf%documentIsOpen = .FALSE.
END SUBROUTINE
! --------------------------------------------
SUBROUTINE Xml_CloseToChar (xf, sOut, error)
TYPE(xmlDoc_t), INTENT(INOUT) :: xf
CHARACTER(LEN=*), INTENT(INOUT) :: sOut
LOGICAL, OPTIONAL, INTENT(OUT) :: error
CHARACTER(LEN=XML_ERRMESS_LEN + 10) :: errorString
IF (xf%error) THEN
errorString = '0333, Some message goes here'
sOut = Buff_toStr(xf%buffer) // EndOfLine &
// TRIM(errorString)
ELSE
sOut = Buff_toStr(xf%buffer)
ENDIF
IF (PRESENT(error)) error = xf%error
xf%documentIsOpen = .FALSE.
END SUBROUTINE
!-------------------------------------------------------------------
END MODULE
! ==================================================================
! ----------------------------------------------------------------------
! FILE BG_BUFF.F90
!
!
! ----------------------------------------------------------------
MODULE WX_Buff
IMPLICIT NONE
PRIVATE
INTEGER(KIND=SELECTED_INT_KIND(9)), &
PARAMETER :: long = SELECTED_INT_KIND(9)
INTEGER(KIND=long), PARAMETER :: MAX_BUFF_SIZE = 1048576
TYPE :: buffer_t
PRIVATE
INTEGER(KIND=long) :: size = 0
CHARACTER(LEN=MAX_BUFF_SIZE) :: str = ''
END TYPE
PUBLIC buffer_t, &
Buff_toStr
CONTAINS
!----------------------------------------------------------------
! Returns current contents of buffer as a string.
!
FUNCTION Buff_toStr (buffer) result(str)
TYPE(buffer_t), INTENT(IN) :: buffer
CHARACTER(LEN=buffer%size) :: str
str = buffer%str(1: buffer%size)
END FUNCTION
!----------------------------------------------------------------
END MODULE
! ====================================================================