Delft3D4 compilation with VS2019 and OneAPI on Windows 10 - netcdf issuesDelft3D4 compilation with VS2019 and OneAPI on Windows 10 - netcdf issueshttps://oss.deltares.nl/c/message_boards/find_thread?p_l_id=1806746&threadId=37748712024-03-19T01:38:32Z2024-03-19T01:38:32ZRE: Delft3D4 compilation with VS2019 and OneAPI on Windows 10 - netcdf issuJason Chin Tze Voonhttps://oss.deltares.nl/c/message_boards/find_message?p_l_id=1806746&messageId=43956122021-08-04T04:30:13Z2021-08-04T04:29:50ZI am also having similar problem. Have you found any solution?Jason Chin Tze Voon2021-08-04T04:29:50ZRE: Delft3D4 compilation with VS2019 and OneAPI on Windows 10 - netcdf issuRussell Lee Lee Nasrallahhttps://oss.deltares.nl/c/message_boards/find_message?p_l_id=1806746&messageId=41340112021-05-16T14:59:31Z2021-05-16T14:59:31ZNo help from me, but I am having similar issues with the OneAPI fortran and C++ Compilers and would love to hear back from the devs. Russell Lee Lee Nasrallah2021-05-16T14:59:31ZDelft3D4 compilation with VS2019 and OneAPI on Windows 10 - netcdf issuesEwan Sloanhttps://oss.deltares.nl/c/message_boards/find_message?p_l_id=1806746&messageId=37748702021-01-27T08:31:31Z2021-01-26T09:02:29ZEdit 27/1/2021:<br /><br /><em>I managed to download Intel Parallel Studio 2019 (update 5), and that seems to have resolved all the issues with netcdf. Seems that netcdf just doesn't get on well with OneAPI. I'm still encountering a single error but that seems unrelated to the issues I've had here so will post about that elsewhere if I can't solve it.</em><br /><br />Hello all,<br /><br />I'm new to Delft3D and am trying to compile version 4 revision delft3d4/65936 on Windows 10. As per the subject line, I'm using Visual Studio 2019 and the version of the Intel Fortran Compiler available through OneAPI.<br /><br />Currently I'm generating around 450 errors on compilation, all of which seem to be related to netcdf. I think (though I'm far from certain) that most of these errors are following on from an initial issue causing module_netcdf_nc_data.f90 to abort compilation. From the compile log:<br /><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif">“<span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black">1>D:\Compile_Test\Source_Code_Repository2\src\third_party_open\netcdf\netcdf-fortran-4.4.4\fortran\module_netcdf_nc_data.F90(94): error #6401: The attributes of this name conflict with those made accessible by a USE statement. [C_PTRDIFF_T]”</span></span></span></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span>This causes a "Compilation aborted (code 1)" error to occur for this module. The error refers to the following section of code:<br /><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! Define processor/compiler dependent parameters for ptrdiff_t, signed char,</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! and short types. Note prtdiff_t was not defined in the FORTRAN 2003</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! standard as an interoperable type in ISO_C_BINDING but was added as part of</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! the recent TS29113 Technical Specification "Futher Interoperability with C" </span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! passed in 2012. For now we will make our own using C_INT32_T or C_INT64_T</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! but allow users to use the default definition for compilers that support </span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green">! TS29113 (like gfortran 4.8). Default will be C_INTPTR_T </span></span></span></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: green"></span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#ifndef HAVE_TS29113_SUPPORT</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#if (SIZEOF_PTRDIFF_T == 4)</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Integer</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black">, </span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Parameter</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"> :: C_PTRDIFF_T = C_INT32_T</span></span></span></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#elif (SIZEOF_PTRDIFF_T == 8)</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Integer</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black">, </span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Parameter</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"> :: C_PTRDIFF_T = C_INT64_T</span></span></span></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#else</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><u><strong><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Integer</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black">, </span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: blue">Parameter</span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"> :: C_PTRDIFF_T = C_INTPTR_T</span></span></span></span></span></strong></u><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#endif</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: black"></span></span></span></span></span><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit">#endif</span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong></span></span><br /><span style="font-size: 10px;"><span style="font-family: Calibri, sans-serif"><strong><span style="font-size: 10px;"><span style="font-family: Consolas"><span style="color: inherit"></span></span></span></strong></span></span>The bold/underlined line is the one referred to by the error.<br /><br />My coding knowledge is very limited so I don't know how to fix this. Any suggestions would be greatly appreciated.<br /><br />As an aside, I've tried to find legacy versions of Parallel Studio XE to try to use alongside older versions of Visual Studio, but it doesn't seem possible to get hold of these since things were ported over to OneAPI instead.Ewan Sloan2021-01-26T09:02:29Z