I am using a numerical wave model (SWASH: https://swash.sourceforge.io/), and attempting to run simulations in parallel. Note, I am at the limits of my expertise here, so any clarification process or nomenclature are appreciated. The model uses MPICH2 to allow the user to specify the number of processes to run. In a successful parallel run on a single multi-processor machine, the model should output sequential outputs (for example a PRINT file that records information on timestepping and initialization will be output in serial, while multiple PRINT-00X files will be created in parallel, where X is the process number).
When I run the model I receive the following error for each process past the first (this first process continues successfully and outputs to the initial PRINT file):
forrtl: severe (47): write to READONLY file, unit 4, file C:\Users\DESKTOP\SWASH\vic_harbour\coarse_test\PRINT
Image PC Routine Line Source
swash.exe 00007FF70AD5C5E8 Unknown Unknown Unknown
swash.exe 00007FF70AD159BA Unknown Unknown Unknown
swash.exe 00007FF70AC9A269 OCPINI 290 ocpids.for
swash.exe 00007FF70A912CB9 SWASHINIT 85 SwashInit.f90
swash.exe 00007FF70A911B69 SWASHMAIN 119 SwashMain.f90
swash.exe 00007FF70A911AB4 MAIN__ 63 Swash.f90
swash.exe 00007FF70ADDC8C2 Unknown Unknown Unknown
swash.exe 00007FF70ADDCCB4 Unknown Unknown Unknown
KERNEL32.DLL 00007FFC67187034 Unknown Unknown Unknown
ntdll.dll 00007FFC67B22651 Unknown Unknown Unknown
If I abort the job I see error 47 reported for all but one process. Presumably, the processes are initiated successfully, but because they aren't given discrete PRINT-00X files to write to, they fail (hence the Read Only error).
I have successfully installed the program on two windows computers (win10 and 11), both using the provided installer, and by compiling the source code (including patches: https://swash.sourceforge.io/problems_and_fixes/problems_and_fixes.htm). When compiling I used the intel one API environment. I have encountered this problem using pre-defined test cases (link in above linked page) provided by SWASH folks, and tried different grid partitioning schemes (info here: https://swash.sourceforge.io/online_doc/swashimp/node10.html). MPICH is installed as follows: https://swash.sourceforge.io/online_doc/swashimp/node9.html . Unfortunately I am unable to use the mpiifort call in the free intel compiler, so cannot set things up that route, as far as I know.
Note that when compiling I receive two messages:
(1) at the nmake config step:
'uname' is not recognized as an internal or external command, operable program or batch file
But the the config file is successfully populated with windows appropriate info.
(2) at the nmake mpi step:
ifort sparskit2.for -c /O2 /assume:byterecl /traceback /nowarn /nologo /Qdiag-disable:8290 /Qdiag-disable:8291 /Qdiag-disable:8293 /include:C:\PROGRA~1\MPICH2\include
My question: I think the program is initializing the parallel process, but fails to generate the correct outputs.
Broadly, is this related to the software itself, or is there any evidence here that this is a problem with compiling/installation and/or mpi implementation.
Specifically, how would I go about getting the parallel runs to produce the appropriate outputs?