Pgf90 bug (reading NAMELIST hangs)

Hi all,

The following code hangs or coredumps with the lastest version of pgf90. It works with gfortran.

master.F90 (692 Bytes)
namelist (42 Bytes)
run.sh (146 Bytes)

Am I doing something wrong ?

Philippe

Hi Philippe,

Unfortunately, I’m not able to recreate the error (see below) so not sure what’s wrong.

Was the namelist created on a Windows system? If so, then try running “dos2unix namelist” to remove the Windows characters.

Otherwise, what compiler version, OS, and GNU version are you using?

-Mat

% pgf90 -V

pgf90 (aka nvfortran) 21.5-0 LLVM 64-bit target on x86-64 Linux -tp skylake
PGI Compilers and Tools
Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.
dev-sky5:/home/colgrove/tmp% sh run.sh
+ gfortran -g -o master.gfortran.x master.F90
+ seq 100
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ ./master.gfortran.x
  TSTEP =    50.000000000000000
  CSTOP = h1
+ pgf90 -g -o master.pgf90.x master.F90
+ seq 100
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1
+ ./master.pgf90.x
  TSTEP =     50.00000000000000
  CSTOP = h1

Hello Mat,

And thank you for looking into this.

Here are the details you requested :

[CNC]$ pgf90 -V

pgf90 (aka nvfortran) 21.5-0 LLVM 64-bit target on x86-64 Linux -tp zen 
PGI Compilers and Tools
Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.
[CNC]$ gfortran --version
GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.
[CNC]$ hostnamectl
   Static hostname: belenoslogin1.belenoshpc.meteo.fr
         Icon name: computer-server
           Chassis: server
        Machine ID: 19d2dd041d60405f81dbb11cc7ee42ad
           Boot ID: b4077f193ab143c187e4e5963ffb3e33
  Operating System: Red Hat Enterprise Linux Server 7.8 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.8:GA:server
            Kernel: Linux 3.10.0-1127.19.1.el7.x86_64
      Architecture: x86-64

I do not see any strange characters in the `namelist’ file :

[CNC]$ od -c namelist 
0000000       &   N   A   M   R   I   P  \n               T   S   T   E
0000020   P   =   5   0   .   ,  \n               C   S   T   O   P   =
0000040   '   h   1   '   ,  \n       /  \n  \n
0000052

Regards,

Philippe

Hi again,

Please note that I can reproduce the problem on other machines :

[ufh62jk@jean-zay4: pgi1]$ lsb_release -r
Release:        8.1
[ufh62jk@jean-zay4: pgi1]$ hostnamectl
   Static hostname: jean-zay4
         Icon name: computer-server
           Chassis: server
        Machine ID: 11c26020fca44c488d770ceebd9e39e3
           Boot ID: 9b50bf1a5c1244859fa71755f6361d03
  Operating System: Red Hat Enterprise Linux 8.1 (Ootpa)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:8.1:GA
            Kernel: Linux 4.18.0-147.48.1.el8_1.x86_64
      Architecture: x86-64
[ufh62jk@jean-zay4: pgi1]$ pgf90 -V

pgf90 (aka nvfortran) 21.5-0 LLVM 64-bit target on x86-64 Linux -tp skylake 
PGI Compilers and Tools
Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.
[ufh62jk@jean-zay4: pgi1]$ hostnamectl
   Static hostname: jean-zay4
         Icon name: computer-server
           Chassis: server
        Machine ID: 11c26020fca44c488d770ceebd9e39e3
           Boot ID: 9b50bf1a5c1244859fa71755f6361d03
  Operating System: Red Hat Enterprise Linux 8.1 (Ootpa)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:8.1:GA
            Kernel: Linux 4.18.0-147.48.1.el8_1.x86_64
      Architecture: x86-64
[ufh62jk@jean-zay4: pgi1]$ gdb --args ./master.pgf90.x 
GNU gdb (GDB) Red Hat Enterprise Linux 8.2-6.el8_0
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./master.pgf90.x...done.
(gdb) run 
Starting program: /gpfs7kw/linkhome/rech/gensoq01/ufh62jk/pgi1/master.pgf90.x 
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.28-72.el8_1.1.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments

Program received signal SIGSEGV, Segmentation fault.
0x00007fffeb36c681 in __memset_avx2_erms () from /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install libgcc-8.3.1-4.5.el8.x86_64
(gdb) bt
#0  0x00007fffeb36c681 in __memset_avx2_erms () from /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libc.so.6
#1  0x00007fffed2e3a93 in __fortio_assign () from /gpfs7kro/gpfslocalsys/nvhpc/21.5/Linux_x86_64/21.5/compilers/lib/libnvf.so
#2  0x00007fffed4b8c62 in assign () from /gpfs7kro/gpfslocalsys/nvhpc/21.5/Linux_x86_64/21.5/compilers/lib/libnvf.so
#3  0x00000000ffffffff in ?? ()
#4  0x00000000006020c8 in .STATICS1 ()
#5  0x00007fffffffc498 in ?? ()
#6  0x00007fffed4b8caa in assign () from /gpfs7kro/gpfslocalsys/nvhpc/21.5/Linux_x86_64/21.5/compilers/lib/libnvf.so
#7  0x0000000060d2d10e in ?? ()
#8  0x0000000001781940 in ?? ()
#9  0x0000000000602244 in .BSS1 ()
#10 0xffffffffffffffff in ?? ()
#11 0x0000000000000000 in ?? ()

and here :


sor@volta:~/pgi1$ hostnamectl
   Static hostname: volta
         Icon name: computer-desktop
           Chassis: desktop
        Machine ID: f01fd1d3f92142efa4815add6f0fcb66
           Boot ID: fa75ac5571a24c909f7444b711cf449b
  Operating System: Ubuntu 20.04.1 LTS
            Kernel: Linux 5.4.0-62-generic
      Architecture: x86-64
sor@volta:~/pgi1$ pgf90 -V

pgf90 (aka nvfortran) 20.9-0 LLVM 64-bit target on x86-64 Linux -tp haswell 
PGI Compilers and Tools
Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.
sor@volta:~/pgi1$ gdb --args ./master.pgf90.x 
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./master.pgf90.x...
(gdb) run 
Starting program: /home/ms/fr/sor/pgi1/master.pgf90.x 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7ca3ef3 in assign () from /opt/nvidia/hpc_sdk/Linux_x86_64/20.9/compilers/lib/libnvf.so
(gdb) bt
#0  0x00007ffff7ca3ef3 in assign () from /opt/nvidia/hpc_sdk/Linux_x86_64/20.9/compilers/lib/libnvf.so
#1  0x0000000000404244 in .BSS1 ()
#2  0x0000000000000000 in ?? ()

Thanks Philippe, that was helpful. The error seems to present itself on Red Hat 8.1 but not on other OSs and I was able to recreate the issue there.

In looking through our problem reports, I did see a very similar report (TPR #30131) that was recently submitted and was fixed in our development compiler a few days ago. I tested your code and it seems to have fixed this as well.
Assuming the fix passes our internal testing, it should be available in our next release.

-Mat

Thank you Mat.