• What does F2023:C8107 mean?

    From Steven G. Kargl@21:1/5 to All on Thu Aug 29 17:59:04 2024
    F2023:C8107 states

    The namelist-group-name shall not be a name accessed by use association.

    Are following pieces of code standard conforming?

    ! Code 1
    module mod_nml1
    implicit none
    logical :: ldiag
    namelist /nam_nml1/ldiag
    end module mod_nml1

    program ice_nml
    use mod_nml1
    implicit none
    integer :: ilu
    ldiag = .false.
    write(*,nml=nam_nml1) ! <-- Use assoc. of namelist-group-name
    end program ice_nml

    ! Code 2
    module mod_nml1
    implicit none
    logical :: ldiag
    namelist /nam_nml1/ldiag
    end module mod_nml1

    program ice_nml
    use mod_nml1
    implicit none
    integer :: ilu, j
    namelist /nam_nml1/j ! <-- Use assoc of namelist-group-name
    ldiag = .false.
    j = 42
    write(*,nml=nam_nml1) ! <-- Use assoc of namelist-group-name
    end program ice_nml

    Clarification of the interpretation of C8107 would be appreciated?

    --
    steve

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steven G. Kargl@21:1/5 to Steven G. Kargl on Thu Aug 29 20:50:03 2024
    On Thu, 29 Aug 2024 17:59:04 +0000, Steven G. Kargl wrote:

    F2023:C8107 states

    The namelist-group-name shall not be a name accessed by use association.

    Are following pieces of code standard conforming?

    ! Code 1
    module mod_nml1
    implicit none
    logical :: ldiag
    namelist /nam_nml1/ldiag
    end module mod_nml1

    program ice_nml
    use mod_nml1
    implicit none
    integer :: ilu
    ldiag = .false.
    write(*,nml=nam_nml1) ! <-- Use assoc. of namelist-group-name
    end program ice_nml

    ! Code 2
    module mod_nml1
    implicit none
    logical :: ldiag
    namelist /nam_nml1/ldiag
    end module mod_nml1

    program ice_nml
    use mod_nml1
    implicit none
    integer :: ilu, j
    namelist /nam_nml1/j ! <-- Use assoc of namelist-group-name
    ldiag = .false.
    j = 42
    write(*,nml=nam_nml1) ! <-- Use assoc of namelist-group-name
    end program ice_nml

    Clarification of the interpretation of C8107 would be appreciated?

    After a few minutes re-reading parts of Fortran 2023, I have concluded
    that Code 1 is conforming and Code 2 is non-conforming. My issue was
    caused by gfortran accepting Code 2 without and error or warning under
    -std=gnu option (default behavior). If -std=f2023 is used, then gfortran issues an expected error messages.

    --
    steve

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)