diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 index aa517cf..729dcc4 --- a/Makefile +++ b/Makefile @@ -95,7 +95,10 @@ $(OBJDIR)/%.o: %.f90 $(MOBJS) $(FC) $(FFLAGS) -c -o $@ $< $(LDFLAGS) clean: - rm -rf $(PROGRAMS) $(OBJDIR)/*.o $(OBJDIR)/*.mod a.out + rm -rf $(PROGRAMS) $(OBJDIR)/*.o $(OBJDIR)/*.mod UP2D + +cleanall: + \rm -rf *.t *.h5 *.xmf tidy: rm -rf $(OBJDIR)/*.o $(OBJDIR)/*.mod a.out diff --git a/src/dns.f90 b/src/dns.f90 old mode 100755 new mode 100644 diff --git a/src/fileIO/save_fields.f90 b/src/fileIO/save_fields.f90 old mode 100755 new mode 100644 index ab03e80..79e0cfe --- a/src/fileIO/save_fields.f90 +++ b/src/fileIO/save_fields.f90 @@ -1,5 +1,145 @@ +module utils + + implicit none + +contains + + function make_timestring(time) result(res) + + use vars + implicit none + + character(:), allocatable :: res + real(kind=pr), intent (in) :: time + + character(len=strlen) :: tmp + write(tmp,'(i6.6)') nint(time*100.d0) + + res = trim(tmp) + +end function make_timestring + +end module utils + +subroutine write_xdmf(time, it) + use vars + use utils + implicit none + + real(kind=pr), intent (in) :: time + integer, intent (in) :: it + + character(LEN=80) :: filename + character(LEN=80) :: filebase + character(LEN=80) :: charbuf, char_nx_ny + character(1), parameter :: endl = char(10) ! end of line + + integer :: error + + integer, parameter :: IO_NODES_PER_CELL=4 + character(len=80), parameter :: IO_TOPOLOGY_TYPE = 'Quadrilateral' + + filebase = 'UP2D_' // make_timestring(time) + filename = 'UP2D_' // make_timestring(time) // '.xmf' + + open(10,file=filename,iostat=error) + + write(10,'(a)') '' + write(10,'(a)') '' + write(10,'(a)') ' ' + write(10,'(a)') ' ' + + write(charbuf,fmt='(1(f7.2))',iostat=error) time + write(10,'(a)') ' ' + write(10,'(a)') ' ' + write(10,'(a)') '' + + + close(10) + +end subroutine write_xdmf + subroutine save_fields(time, it, u, uk, vort, mask, us, mask_sponge) use vars + use utils implicit none real(kind=pr), intent (in) :: time @@ -10,12 +150,14 @@ subroutine save_fields(time, it, u, uk, vort, mask, us, mask_sponge) real(kind=pr),dimension(0:nx-1,0:ny-1,1:2),intent(inout) :: us real(kind=pr),dimension(:,:), allocatable :: work, pk - character(len=strlen) :: timestring + character(:),allocatable :: timestring allocate(work(0:nx-1, 0:ny-1), pk(0:nx-1, 0:ny-1)) - write(timestring,'(i6.6)') nint(time*100.d0) + !write(timestring,'(i6.6)') nint(time*100.d0) !write(timestring,'(i6.6)') it + timestring=make_timestring(time) + write(*,'("Saving. time=",es12.4," vormax=",es12.4," fname=",A)') time, maxval(vort), timestring if ( iSaveVorticity == 1) then diff --git a/src/inicond/init_fields.f90 b/src/inicond/init_fields.f90 old mode 100755 new mode 100644 diff --git a/src/mask/create_mask.f90 b/src/mask/create_mask.f90 old mode 100755 new mode 100644 diff --git a/src/mean_velocity.f90 b/src/mean_velocity.f90 old mode 100755 new mode 100644 diff --git a/src/params.f90 b/src/params.f90 old mode 100755 new mode 100644 diff --git a/src/spectral_operators/basic_operators.f90 b/src/spectral_operators/basic_operators.f90 old mode 100755 new mode 100644 diff --git a/src/spectral_operators/cof_fftw33.f90 b/src/spectral_operators/cof_fftw33.f90 old mode 100755 new mode 100644 diff --git a/src/spectral_operators/cof_mkl.f90 b/src/spectral_operators/cof_mkl.f90 old mode 100755 new mode 100644 diff --git a/src/spectral_operators/dealiase_mask.f90 b/src/spectral_operators/dealiase_mask.f90 old mode 100755 new mode 100644 diff --git a/src/time_step.f90 b/src/time_step.f90 index 517bb75..00a1034 100644 --- a/src/time_step.f90 +++ b/src/time_step.f90 @@ -41,7 +41,8 @@ subroutine time_step (u, uk, nlk, pk, vort, mask, us, mask_sponge) if ( time_for_output( time, dt1, it, tsave, itsave, Tmax, 0.d0) ) then ! save output fields to disk - call save_fields(time, it, u, uk, vort, mask, us, mask_sponge) + call save_fields(time, it, u, uk, vort, mask, us, mask_sponge) + call write_xdmf(time, it) endif ! output remaining time diff --git a/src/vars.f90 b/src/vars.f90 old mode 100755 new mode 100644