Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

[SOLVED] Ndown error in WRF 4.6.0 on aarch64 architechture

sergiotwp

New member
Hello everyone,
I've been using a recently compiled WRF 4.6.0 dm+sm for a while, that worked fine not using ndown at all. The first runs I tried using ndown.exe always crash, giving an error message I've never seen posted online, except for my partner:
Oops, how can I access UNIX commands from Fortran?
system_or_exec_only


I'm kind of sure it's not the namelist or anything similar because if I execute ndown.exe with a compilation of 4.4.1 it works perfectly (even if the previous steps were executed with the new version).
We have tried changing environment variables, since it seems to be an MPI error, with no result. We have also used a compilation that uses MPICH instead of OpenMPI, giving the same error. No matter the size of the system we try to run it on, it always crashes.

We are executing ndown with one of the following commands:
./ndown.exe
mpirun -np 8 --bind-to none --report-bindings ndown.exe


And we are exporting OMP_STACKSIZE=1G, OMP_NUM_THREADS=2. We have been changing these values a lot, and it seems to make no difference.

I'm attaching images of rsl.out, rsl.error and the standard output.
Thanks in advance.
 

Attachments

  • stdout.png
    stdout.png
    9.4 KB · Views: 7
  • rsl.error.png
    rsl.error.png
    30.3 KB · Views: 7
  • rsl.out.png
    rsl.out.png
    32.5 KB · Views: 7
This seems to be coming from module_get_file_names.F when checking if system shell commands can be invoked in Fortran. Generally this shouldn't be an issue, unless the variable unix_access_ok was not set to .TRUE. internally. This is controlled via defines configured at the ./configure step. My first guess is something may have gone wrong there. Could you upload your configure.wrf file?
 
This seems to be coming from module_get_file_names.F when checking if system shell commands can be invoked in Fortran. Generally this shouldn't be an issue, unless the variable unix_access_ok was not set to .TRUE. internally. This is controlled via defines configured at the ./configure step. My first guess is something may have gone wrong there. Could you upload your configure.wrf file?
Thank you for your response. I have lots of different compilations, so I would like to know which defines I should look at. However, here's the configure.wrf of one of the compilations ndown fails on.
 

Attachments

  • configure.wrf.txt
    21.3 KB · Views: 3
The defines I'm looking for are either -DNONSTANDARD_SYSTEM_SUBR or -DNONSTANDARD_SYSTEM_FUNC
It looks like the Linux aarch64 GCC stanza in arch/configure.defaults does not have either define in the ARCH_LOCAL section. I don't know which will specifically work for your system (you can try -DNONSTANDARD_SYSTEM_SUBR as that's the most common) but adding one that works into that stanza section should work.

Ideally this should not be defined by the stanza and instead be checked at configuration time on a per-system basis.
 
The defines I'm looking for are either -DNONSTANDARD_SYSTEM_SUBR or -DNONSTANDARD_SYSTEM_FUNC
It looks like the Linux aarch64 GCC stanza in arch/configure.defaults does not have either define in the ARCH_LOCAL section. I don't know which will specifically work for your system (you can try -DNONSTANDARD_SYSTEM_SUBR as that's the most common) but adding one that works into that stanza section should work.

Ideally this should not be defined by the stanza and instead be checked at configuration time on a per-system basis.
Thank you so much! Adding -DNONSTANDARD_SYSTEM_SUBR to the ARCH_LOCAL variable in configure.wrf file after the ./configure step of the compilation worked perfectly.
 
Top