From 16ec6d36e98ed5a0db1e6bd9725d95883ada82a2 Mon Sep 17 00:00:00 2001 From: park0d Date: Wed, 27 Sep 2017 04:38:07 +0900 Subject: [PATCH] make parameter of number of scalar equations --- io_write_4.f90 | 1 - m_fdm_calc.f90 | 32 ++++++++++++++++++++------------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/io_write_4.f90 b/io_write_4.f90 index ec833d7..ba3a5c7 100644 --- a/io_write_4.f90 +++ b/io_write_4.f90 @@ -65,7 +65,6 @@ subroutine io_write_4 wmax = maxval(w_(1:nx,1:ny,1:nz_all)) wmin = minval(w_(1:nx,1:ny,1:nz_all)) - call write_tp_field call write_vel_max ( umax,vmax,wmax,umin,vmin,wmin ) endif diff --git a/m_fdm_calc.f90 b/m_fdm_calc.f90 index ae8dd50..fe90fc7 100644 --- a/m_fdm_calc.f90 +++ b/m_fdm_calc.f90 @@ -40,6 +40,8 @@ module m_fdm_calc integer(kind=MPI_INTEGER_KIND) :: fh integer(kind=MPI_OFFSET_KIND) :: offset + integer :: header_length + write(fname,"('fort.',i4)") restartnum if (myid.eq.master) then @@ -107,18 +109,20 @@ module m_fdm_calc call MPI_INFO_CREATE(mpi_info, mpi_err) call MPI_FILE_OPEN(MPI_COMM_TASK,fname,MPI_MODE_RDONLY,mpi_info,fh,mpi_err) + header_length = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + count = nx * ny * nz - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 0*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 0*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_READ_AT_ALL(fh, offset, u_, count, MPI_REAL8, mpi_status, mpi_err) - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 1*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 1*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_READ_AT_ALL(fh, offset, v_, count, MPI_REAL8, mpi_status, mpi_err) - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 2*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 2*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_READ_AT_ALL(fh, offset, w_, count, MPI_REAL8, mpi_status, mpi_err) - count = 2 * nx * ny * nz - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 3*nx*ny*nz_all*8 + myid*2*nx*ny*nz*8 + count = neq * nx * ny * nz + offset = header_length + 4 + 3*nx*ny*nz_all*8 + myid*neq*nx*ny*nz*8 call MPI_FILE_READ_AT_ALL(fh, offset, y1, count, MPI_REAL8, mpi_status, mpi_err) call MPI_FILE_CLOSE(fh, mpi_err) @@ -129,6 +133,8 @@ module m_fdm_calc subroutine fdm_restart_write integer(kind=MPI_INTEGER_KIND) :: fh integer(kind=MPI_OFFSET_KIND) :: offset + + integer :: header_length ! --------------- writing process ------------------ if (myid.eq.0) write(*,*) '=======================================================' @@ -182,18 +188,20 @@ module m_fdm_calc end if + header_length = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + count = nx * ny * nz - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 0*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 0*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_WRITE_AT(fh, offset, u_, count, MPI_REAL8, mpi_status, mpi_err) - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 1*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 1*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_WRITE_AT(fh, offset, v_, count, MPI_REAL8, mpi_status, mpi_err) - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 2*nx*ny*nz_all*8 + myid*nx*ny*nz*8 + offset = header_length + 4 + 2*nx*ny*nz_all*8 + myid*nx*ny*nz*8 call MPI_FILE_WRITE_AT(fh, offset, w_, count, MPI_REAL8, mpi_status, mpi_err) - count = 2 * nx * ny * nz - offset = 2*4+6*8 + 2*4+3*8 + 3*(2*4+2*8) + 4 + 3*nx*ny*nz_all*8 + myid*2*nx*ny*nz*8 + count = neq * nx * ny * nz + offset = header_length + 4 + 3*nx*ny*nz_all*8 + myid*neq*nx*ny*nz*8 call MPI_FILE_WRITE_AT(fh, offset, y1, count, MPI_REAL8, mpi_status, mpi_err) @@ -243,8 +251,8 @@ module m_fdm_calc allocate(y2(neq,nx,ny,nz)) allocate(yf(neq,nx,ny,nz)) - allocate( fz(nd1*nx*ny,nz)) - allocate(dfz(nd1*nx*ny,nz)) + allocate( fz (nd1*nx*ny,nz)) + allocate(dfz (nd1*nx*ny,nz)) allocate( fzz(nd2*nx*ny,nz)) allocate(dfzz(nd2*nx*ny,nz))