program Pnf_Test implicit none # include "mpif.h" # include "pnetcdf.inc" integer, parameter :: TOTSIZ_3D(3) = (/ 10, 20, 30 /) logical :: reorder = .false. logical :: isperiodic(3) = (/ .false., .false., .false. /) integer :: comm_cart integer :: ierr integer :: lat_id, lev_id, lon_id integer :: ncid integer :: totpes integer :: tt_id integer :: dim_id(3) integer :: numpes(3) = (/ 0, 1, 1 /) ! number of PEs along axes; ! determined by MPI where a ! zero is specified call MPI_Init (ierr) call MPI_Comm_Size (MPI_COMM_WORLD, totpes, ierr) call MPI_Dims_Create (totpes, 3, numpes, ierr) call MPI_Cart_Create (MPI_COMM_WORLD, 3, numpes, isperiodic, & reorder, comm_cart, ierr) call Nfmpi_Create (comm_cart, "pnf_test.nc", NF_CLOBBER, & MPI_INFO_NULL, ncid, ierr) call Nfmpi_Def_Dim & (ncid, "level", totsiz_3d(1), lev_id, ierr) call Nfmpi_Def_Dim & (ncid, "latitude", totsiz_3d(2), lat_id, ierr) call Nfmpi_Def_Dim & (ncid, "longitude", totsiz_3d(3), lon_id, ierr) dim_id(1) = lev_id dim_id(2) = lat_id dim_id(3) = lon_id call Nfmpi_Def_Var & (ncid, "tt", NF_FLOAT, 3, dim_id, tt_id, ierr) call Nfmpi_Enddef (ncid, ierr) call Nfmpi_Close (ncid, ierr) call MPI_Comm_Free (comm_cart, ierr) call MPI_Finalize (ierr) Stop end program Pnf_Test