<div dir="ltr">Hello All,<br><br>I have been using Parallel HDF5 for our code to do parallel IO of huge files but the performance we&#39;re getting is not very encouraging. So I wanted to do the same with Pnetcdf, but I am not able find much tutorials on the web with simple examples to write out files in parallel. The ones that are there are the serial ones.<br>
<br>So I was wondering if someone on this mailing list has a simple Pnetcdf example, that will help me in understanding how to use pnetcdf.<br><br>Also, I am trying to create a simple file using pnetcdf and am getting this error. There seems to be some problem with the include file and I don&#39;t understand how to get rid of this error. My code is as follows:<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program simple_xy_wr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; implicit none<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include &#39;pnetcdf.inc&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include &#39;mpif.h&#39;<br><br>C&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the data file we will create.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; character*(*) FILE_NAME<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter (FILE_NAME=&#39;<a href="http://simple_xy.nc">simple_xy.nc</a>&#39;)<br><br>C&nbsp;&nbsp;&nbsp;&nbsp; We are writing 2D data, a 6 x 12 grid.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer NDIMS,ierr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter (NDIMS=1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer NX, NY, i, myid, nprocs<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter (NX = 16)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter (NY = 4)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHARACTER(LEN=12) :: dataname<br><br><br>C&nbsp;&nbsp;&nbsp;&nbsp; When we create netCDF files, variables and dimensions, we get back<br>C&nbsp;&nbsp;&nbsp;&nbsp; an ID for each one.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer ncid, varid,varid2, dimids(NDIMS), dimids2(NDIMS)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer x_dimid, y_dimid<br><br>C&nbsp;&nbsp;&nbsp;&nbsp; This is the data array we will write. It will just be filled with<br>C&nbsp;&nbsp;&nbsp;&nbsp; a progression of integers for this example.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer data_out(NX)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer lengths_out(NY)<br>
<br>C&nbsp;&nbsp;&nbsp;&nbsp; Loop indexes, and error handling.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer x, y, retval<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call MPI_INIT(ierr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call MPI_COMM_RANK(MPI_COMM_WORLD, myid, ierr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(*,*) &#39;my id is :&#39;,myid,&#39;&amp; nprocs are:&#39;,nprocs<br><br>C&nbsp;&nbsp;&nbsp;&nbsp; Create some pretend data. If this wasn&#39;t an example program, we<br>C&nbsp;&nbsp;&nbsp;&nbsp; would have some real data to write, for example, model output.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do x = 1, NX<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data_out(x) = (x - 1) * NX<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do y = 1, NY<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lengths_out(y) = (y-1) * NY<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enddo<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nfmpi_create(MPI_COMM_WORLD,FILE_NAME,<br>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp; NF_NETCDF4,MPI_INFO_NULL,ncid)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br clear="all"><br><br>When i compile this using : ftn simple.f $PNETCDF, i get this error.<br><br>PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1816)<br>
PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1820)<br>PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1823)<br>
PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1825)<br>PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1827)<br>
PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1831)<br>PGF90-S-0021-Label field of continuation line is not blank (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1833)<br>
PGF90-S-0034-Syntax error at or near identifier sizeof_mpi_offsetnfmpi_unlimited (/usr/common/usg/pnetcdf/1.0.2/include/pnetcdf.inc: 1836)<br>PGF90-S-0034-Syntax error at or near end of line (simple.f: 50)<br>PGF90-S-0038-Symbol, nfmpi_unlimited, has not been explicitly declared (simple.f)<br>
&nbsp; 0 inform,&nbsp;&nbsp; 0 warnings,&nbsp; 10 severes, 0 fatal for simple_xy_wr<br><br>Am i missing something simple ?<br>-- <br>Regards,<br>Nikhil<br>
</div>