Nvfortran f0005 Unable to open temporary file

I install nvidia copmiler recently, and try to compile hello world .f90 code

program hello
  print *, 'Hello, World!'
end program hello

In terminal I write

nvfortran -v tt.f90 -o run

and the results are

Export NVCOMPILER=/opt/nvidia/hpc_sdk/Linux_x86_64/21.7
    Export PGI=/opt/nvidia/hpc_sdk

    /opt/nvidia/hpc_sdk/Linux_x86_64/21.7/compilers/bin/tools/fort1 tt.f90 -opt 1 -nostatic -x 19 
    0x400000 -quad -x 59 4 -x 15 2 -x 49 0x400004 -x 51 0x20 -x 57 0x4c -x 58 0x10000 -x 124 
    0x1000 -tp haswell -x 57 0xfb0000 -x 58 0x78031040 -x 47 0x08 -x 48 4608 -x 49 0x100 -stdinc 
    /opt/nvidia/hpc_sdk/Linux_x86_64/21.7/compilers/include:/usr/lib/gcc/x86_64-linux- 
    gnu/9/include:/usr/local/include:/usr/include/x86_64-linux-gnu:/usr/include -cmdline 
    '+nvfortran tt.f90 -v -o run' -def unix -def __unix -def __unix__ -def linux -def __linux -def 
    __linux__ -def __NO_MATH_INLINES -def __LP64__ -def __x86_64 -def __x86_64__ -def 
    __LONG_MAX__=9223372036854775807L -def '__SIZE_TYPE__=unsigned long int' -def 
    '__PTRDIFF_TYPE__=long int' -def __amd64 -def __amd64__ -def __k8 -def __k8__ -def __MMX__ - 
    def __SSE__ -def __SSE2__ -def __SSE3__ -def __SSSE3__ -def __SSE4_1__ -def __SSE4_2__ -def 
    __AVX__ -def __AVX2__ -def __FMA__ -def __XSAVE__ -def __POPCNT__ -def __FXSR__ -def 
    __PGLLVM__ -def __NVCOMPILER_LLVM__ -def __extension__= -freeform -vect 48 -x 54 1 -x 68 0x1 - 
    x 70 0x40000000 -x 70 0x40000000 -x 68 0x1 -x 124 1 -x 195 0x8000 -y 163 0xc0000000 -x 201 
    0xf0000000 -x 189 0x10 -stbfile /tmp/nvfortranC-lbucjv1tGL.stb -modexport /tmp/nvfortran8- 
    lb0urCnRiG.cmod -modindex /tmp/nvfortranC-lbu7BmOKOB.cmdx -cci /tmp/nvfortran8-lb0JKsP-w1.cci 
    -output /tmp/nvfortranC-lbuzzjmF3W.ilm
    NVFORTRAN-F-0005-Unable to open temporary file -  (tt.f90)
    NVFORTRAN/x86-64 Linux 21.7-0: compilation aborted
    nvfortran-Fatal-f901 completed with exit code 1

    Unlinking /tmp/nvfortranC-lbuzzjmF3W.ilm
    Unlinking /tmp/nvfortran8-lb0JKsP-w1.cci
    Unlinking /tmp/nvfortranC-lbucjv1tGL.stb
    Unlinking /tmp/nvfortran8-lb0urCnRiG.cmod
    Unlinking /tmp/nvfortranC-lbu7BmOKOB.cmdx

I tried to use nvcc to compile hello world in c language, it works well. I have tmp under / and tried to make a new direction /usr/tmp. Neither works. I install ubuntu in Windows and install nvcompiler under ubuntu. it support 10.X and 11.X. I notice someone asked this question, but no solves.

After some digging, this turns out to be compiler issue due to a recent change on how temp files are formed. Since we don’t officially support WSL2 as of yet, we missed it during our QA process. I’ve added a problem report, TPR #30467, and asked our engineers to investigate.

-Mat