read to new array
This commit is contained in:
parent
7a060505f3
commit
e337b9aa6b
2 changed files with 151 additions and 104 deletions
|
|
@ -44,8 +44,13 @@ end function to_omit
|
|||
subroutine read_intro
|
||||
|
||||
character(LEN=10) :: cdum
|
||||
|
||||
integer :: ierr,i
|
||||
|
||||
integer :: first_file
|
||||
|
||||
real*8 :: tmp1, tmp2, tmp3
|
||||
|
||||
open (100, FILE='post-edge-cold-bc-hybrid-intro')
|
||||
open (101, FILE='otape')
|
||||
|
||||
|
|
@ -107,6 +112,28 @@ subroutine read_intro
|
|||
close (100)
|
||||
close (101)
|
||||
|
||||
|
||||
first_file = startnum
|
||||
|
||||
fileloop: DO i=startnum,endnum,skipnum
|
||||
|
||||
IF ( .not. to_omit(i) ) THEN
|
||||
|
||||
first_file = i
|
||||
|
||||
exit fileloop
|
||||
|
||||
ENDIF
|
||||
|
||||
ENDDO fileloop
|
||||
|
||||
OPEN(first_file,FORM='unformatted',STATUS='unknown')
|
||||
|
||||
READ(first_file) tmp1,nxp,nyp,nzp,tmp2,tmp3
|
||||
|
||||
CLOSE(first_file)
|
||||
|
||||
|
||||
end subroutine read_intro
|
||||
|
||||
end module m_parameters
|
||||
|
|
|
|||
228
code/post.f90
228
code/post.f90
|
|
@ -28,6 +28,10 @@
|
|||
REAL, DIMENSION(:,:,:), ALLOCATABLE :: c,Wc,y
|
||||
REAL, DIMENSION(:,:,:), ALLOCATABLE :: c_dot,c_dot_g,c_g,FSD_dot
|
||||
|
||||
REAL, DIMENSION(:,:,:), ALLOCATABLE :: u,v,w
|
||||
|
||||
REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: old_scalar, new_scalar
|
||||
|
||||
REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: m_v,NV,G_C,sd,u_dot,G_V,G_FSD,ub_dot,uu_dot
|
||||
!REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: G_vn,G_sd,G_Y !G_Y is added for edge-cold-bc-3
|
||||
REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: m_v_new
|
||||
|
|
@ -43,12 +47,13 @@
|
|||
|
||||
CALL READ_INTRO
|
||||
|
||||
CALL ALLOCATE_ARRAYS
|
||||
|
||||
CALL PRINT_BANNER
|
||||
|
||||
countnum=0
|
||||
|
||||
|
||||
|
||||
firstloop: DO fread=startnum,endnum,skipnum
|
||||
|
||||
IF ( to_omit(fread) ) THEN
|
||||
|
|
@ -125,116 +130,21 @@
|
|||
WRITE(*,'(a40,i5,a11,i5,a1)') ' Postprocess will be done from "FORT.',startnum,'" to "FORT.',endnum,'"'
|
||||
END SUBROUTINE PRINT_BANNER
|
||||
|
||||
SUBROUTINE ALLOCATE_ARRAYS
|
||||
|
||||
INTEGER :: ierr
|
||||
|
||||
ALLOCATE(m_v(6,nxp,nyp,nzp),STAT=ierr) ; m_v=0. ! Main variables
|
||||
ALLOCATE(m_v_new(nxp,nyp,nzp,2),STAT=ierr) ; m_v_new=0. ! Main variables
|
||||
!ALLOCATE(G_C(3,nxp,nyp,nzp),STAT=ierr) ; G_C=0.
|
||||
!ALLOCATE(cgm(nxp,nyp,nzp),STAT=ierr) ; cgm=0.
|
||||
ALLOCATE(NV(3,nxp,nyp,nzp),STAT=ierr) ; NV=0.
|
||||
!ALLOCATE(sd(7,nxp,nyp,nzp),STAT=ierr) ; sd=0.
|
||||
ALLOCATE(c(nxp,nyp,nzp),STAT=ierr) ; c=0.
|
||||
ALLOCATE(Wc(nxp,nyp,nzp),STAT=ierr) ; Wc=0.
|
||||
ALLOCATE(u_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_dot=0.
|
||||
ALLOCATE(y(nxp,nyp,nzp),STAT=ierr) ; y=0.
|
||||
!ALLOCATE(DivN(nxp,nyp,nzp),STAT=ierr) ; DivN=0.
|
||||
!ALLOCATE(G_V(3,nxp,nyp,nzp),STAT=ierr) ; G_V=0.
|
||||
!ALLOCATE(Div_V(nxp,nyp,nzp),STAT=ierr) ; Div_V=0
|
||||
!ALLOCATE(G_FSD(3,nxp,nyp,nzp),STAT=ierr) ; G_FSD=0.
|
||||
!ALLOCATE(vn(nxp,nyp,nzp),STAT=ierr) ; vn=0.
|
||||
!ALLOCATE(G_vn(3,nxp,nyp,nzp),STAT=ierr) ;G_vn=0.
|
||||
!ALLOCATE(G_sd(3,nxp,nyp,nzp),STAT=ierr) ;G_sd=0.
|
||||
!ALLOCATE(G_Y(3,nxp,nyp,nzp),STAT=ierr) ; G_Y=0.
|
||||
!ALLOCATE(GN_vn(nxp,nyp,nzp),STAT=ierr) ;GN_vn=0.
|
||||
!ALLOCATE(GN_sd(nxp,nyp,nzp),STAT=ierr) ;GN_sd=0.
|
||||
!ALLOCATE(G2N_c(nxp,nyp,nzp),STAT=ierr) ;G2N_c=0.
|
||||
!ALLOCATE(G2_Y(nxp,nyp,nzp),STAT=ierr) ;G2_Y=0.
|
||||
!ALLOCATE(d2gc(4,nxp,nyp,nzp),STAT=ierr) ;d2gc=0.
|
||||
|
||||
ALLOCATE(ub_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; ub_dot=0.
|
||||
ALLOCATE(uu_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; uu_dot=0.
|
||||
ALLOCATE(c_dot(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_dot=0.
|
||||
ALLOCATE(FSD_dot(nxp,(eyp-syp+1),nzp),STAT=ierr) ; FSD_dot=0. !dhkim
|
||||
ALLOCATE(ub_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; ub_dot_g=0.
|
||||
ALLOCATE(uu_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; uu_dot_g=0.
|
||||
ALLOCATE(c_dot_g(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_dot_g=0.
|
||||
ALLOCATE(c_g(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_g=0.
|
||||
|
||||
! Arrays for local sum
|
||||
ALLOCATE(u_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_g=0.
|
||||
ALLOCATE(u_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_dot_g=0.
|
||||
ALLOCATE(RMS_g(4,nxp),STAT=ierr) ; RMS_g=0.
|
||||
ALLOCATE(RMS_b_g(4,nxp),STAT=ierr) ; RMS_b_g=0.
|
||||
ALLOCATE(RMS_u_g(4,nxp),STAT=ierr) ; RMS_u_g=0.
|
||||
ALLOCATE(CM_b_g(4,nxp,(eyp-syp+1),nzp),STAT=ierr) ; CM_b_g=0.
|
||||
ALLOCATE(CM_u_g(4,nxp,(eyp-syp+1),nzp),STAT=ierr) ; CM_u_g=0.
|
||||
ALLOCATE(COV_g(3,nxp),STAT=ierr) ; COV_g=0.
|
||||
|
||||
! Arrays for total sum
|
||||
!ALLOCATE(SMF(23,nxp),STAT=ierr) ; SMF=0.
|
||||
ALLOCATE(SMF(3,nxp),STAT=ierr) ; SMF=0.
|
||||
ALLOCATE(SMC(4,nxp),STAT=ierr) ; SMC=0.
|
||||
!ALLOCATE(FMS(26,nxp),STAT=ierr) ; FMS=0.
|
||||
!ALLOCATE(KMS(2,nxp),STAT=ierr) ; KMS=0.
|
||||
|
||||
ALLOCATE(CM_b(4,nxp),STAT=ierr) ; CM_b=0.
|
||||
ALLOCATE(CM_u(4,nxp),STAT=ierr) ; CM_u=0.
|
||||
ALLOCATE(RMS(8,nxp),STAT=ierr) ; RMS=0.
|
||||
ALLOCATE(RMS_b(4,nxp),STAT=ierr) ; RMS_b=0.
|
||||
ALLOCATE(RMS_u(4,nxp),STAT=ierr) ; RMS_u=0.
|
||||
ALLOCATE(COV(4,nxp),STAT=ierr) ; COV=0.
|
||||
|
||||
ALLOCATE(favg_ndata(nxp),STAT=ierr) ; favg_ndata=0.
|
||||
ALLOCATE(RMS_u_2(4,nxp),STAT=ierr) ; RMS_u_2=0.
|
||||
ALLOCATE(RMS_b_2(4,nxp),STAT=ierr) ; RMS_b_2=0.
|
||||
|
||||
! Arrays for final averages
|
||||
!ALLOCATE(IRE1(28,nxp),STAT=ierr) ; IRE1=0.
|
||||
ALLOCATE(IRE1(7,nxp),STAT=ierr) ; IRE1=0.
|
||||
!ALLOCATE(IRE2(34,nxp),STAT=ierr) ; IRE2=0.
|
||||
ALLOCATE(IRE3(8,nxp),STAT=ierr) ; IRE3=0.
|
||||
ALLOCATE(IRE4(8,nxp),STAT=ierr) ; IRE4=0.
|
||||
ALLOCATE(IRE5(25,nxp),STAT=ierr) ; IRE5=0.
|
||||
ALLOCATE(IRE6(15,nxp),STAT=ierr) ; IRE6=0.
|
||||
!ALLOCATE(IRE7(6,nxp),STAT=ierr) ; IRE7=0.
|
||||
!ALLOCATE(IRE8(26,nxp),STAT=ierr) ; IRE8=0.
|
||||
!ALLOCATE(IRE9(14,nxp),STAT=ierr) ; IRE9=0.
|
||||
|
||||
|
||||
! hyp=l_0*pi/REAL(nyp)
|
||||
hyp=l_0*pi/REAL(nyp-1) ! kwon
|
||||
hxp=hyp; hzp=hyp
|
||||
|
||||
WRITE(*,'(a6,i3,a8,i3,a8,i3)') ' NX = ',nxp,' / NY = ',nyp,' / NZ = ',nzp
|
||||
WRITE(*,*) ' Preparing memory space for COMPACT SCHEME'
|
||||
CALL ludcmp(nxp,nyp,nzp,1,0,0) ! 1,1,0
|
||||
|
||||
WRITE(*,'(a22,i3,a3,i3,a4,i3)') ' Grid number range : ',syp,' ~ ',eyp,' of ',nyp
|
||||
WRITE(*,*)
|
||||
|
||||
END SUBROUTINE ALLOCATE_ARRAYS
|
||||
|
||||
SUBROUTINE READ_FILE(num)
|
||||
INTEGER, INTENT(IN) :: num
|
||||
REAL, DIMENSION(2) :: tmpr
|
||||
INTEGER :: nx, ny, nz
|
||||
REAL :: tmp1,tmp2
|
||||
REAL :: dt,dummyu
|
||||
INTEGER :: ncyc
|
||||
|
||||
OPEN(num,FORM='unformatted',STATUS='unknown')
|
||||
|
||||
READ (num) tnow,nxp,nyp,nzp,tmp1,tmp2
|
||||
READ (num) tnow,nx,ny,nz,tmp1,tmp2
|
||||
|
||||
IF (nzp.eq.1) THEN
|
||||
twod=1
|
||||
ELSE
|
||||
twod=0
|
||||
END IF
|
||||
|
||||
IF (.not. ALLOCATED(m_v)) THEN
|
||||
CALL ALLOCATE_ARRAYS
|
||||
IF ((nx .ne. nxp) .or. (ny .ne. nyp) .or. (nz .ne. nzp)) THEN
|
||||
WRITE(0,*) "Array dimension mismatch", nx, ny, nz, " != ", nxp, nyp, nzp
|
||||
STOP -1
|
||||
ENDIF
|
||||
|
||||
READ (num) ncyc,dt,dummyu
|
||||
|
|
@ -252,14 +162,21 @@
|
|||
|
||||
IF(num.le.shiftnum) THEN
|
||||
WRITE(*,*) ' with an old fort data from Nueman-0X'
|
||||
READ (num) m_v(2,:,:,:),m_v(3,:,:,:),m_v(4,:,:,:),m_v(5:6,:,:,:)
|
||||
READ (num) u,v,w,old_scalar
|
||||
new_scalar(:,:,:,2) = old_scalar(2,:,:,:)
|
||||
ELSE
|
||||
WRITE(*,*) ' with a new fort data from Comb-Cluster'
|
||||
READ (num) m_v(2,:,:,:),m_v(3,:,:,:),m_v(4,:,:,:),m_v_new(:,:,:,1:2)
|
||||
m_v(2,:,:,:) = m_v(2,:,:,:) + dummyu
|
||||
READ (num) u,v,w,new_scalar
|
||||
u = u + dummyu
|
||||
ENDIF
|
||||
|
||||
m_v(2,:,:,:) = u
|
||||
m_v(3,:,:,:) = v
|
||||
m_v(4,:,:,:) = w
|
||||
m_v(6,:,:,:) = new_scalar(:,:,:,2)
|
||||
|
||||
CLOSE (num)
|
||||
|
||||
END SUBROUTINE READ_FILE
|
||||
|
||||
|
||||
|
|
@ -1571,7 +1488,110 @@
|
|||
|
||||
END SUBROUTINE SAVE_AVG_RESULTS
|
||||
|
||||
SUBROUTINE ALLOCATE_ARRAYS
|
||||
|
||||
INTEGER :: ierr
|
||||
|
||||
ALLOCATE(u(nxp,nyp,nzp),STAT=ierr) ; u=0. ! Main variables
|
||||
ALLOCATE(v(nxp,nyp,nzp),STAT=ierr) ; v=0. ! Main variables
|
||||
ALLOCATE(w(nxp,nyp,nzp),STAT=ierr) ; w=0. ! Main variables
|
||||
|
||||
ALLOCATE(old_scalar(2,nxp,nyp,nzp),STAT=ierr) ; old_scalar=0. ! Main variables
|
||||
ALLOCATE(new_scalar(nxp,nyp,nzp,2),STAT=ierr) ; new_scalar=0. ! Main variables
|
||||
|
||||
ALLOCATE(m_v(6,nxp,nyp,nzp),STAT=ierr) ; m_v=0. ! Main variables
|
||||
ALLOCATE(m_v_new(nxp,nyp,nzp,2),STAT=ierr) ; m_v_new=0. ! Main variables
|
||||
!ALLOCATE(G_C(3,nxp,nyp,nzp),STAT=ierr) ; G_C=0.
|
||||
!ALLOCATE(cgm(nxp,nyp,nzp),STAT=ierr) ; cgm=0.
|
||||
ALLOCATE(NV(3,nxp,nyp,nzp),STAT=ierr) ; NV=0.
|
||||
!ALLOCATE(sd(7,nxp,nyp,nzp),STAT=ierr) ; sd=0.
|
||||
ALLOCATE(c(nxp,nyp,nzp),STAT=ierr) ; c=0.
|
||||
ALLOCATE(Wc(nxp,nyp,nzp),STAT=ierr) ; Wc=0.
|
||||
ALLOCATE(u_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_dot=0.
|
||||
ALLOCATE(y(nxp,nyp,nzp),STAT=ierr) ; y=0.
|
||||
!ALLOCATE(DivN(nxp,nyp,nzp),STAT=ierr) ; DivN=0.
|
||||
!ALLOCATE(G_V(3,nxp,nyp,nzp),STAT=ierr) ; G_V=0.
|
||||
!ALLOCATE(Div_V(nxp,nyp,nzp),STAT=ierr) ; Div_V=0
|
||||
!ALLOCATE(G_FSD(3,nxp,nyp,nzp),STAT=ierr) ; G_FSD=0.
|
||||
!ALLOCATE(vn(nxp,nyp,nzp),STAT=ierr) ; vn=0.
|
||||
!ALLOCATE(G_vn(3,nxp,nyp,nzp),STAT=ierr) ;G_vn=0.
|
||||
!ALLOCATE(G_sd(3,nxp,nyp,nzp),STAT=ierr) ;G_sd=0.
|
||||
!ALLOCATE(G_Y(3,nxp,nyp,nzp),STAT=ierr) ; G_Y=0.
|
||||
!ALLOCATE(GN_vn(nxp,nyp,nzp),STAT=ierr) ;GN_vn=0.
|
||||
!ALLOCATE(GN_sd(nxp,nyp,nzp),STAT=ierr) ;GN_sd=0.
|
||||
!ALLOCATE(G2N_c(nxp,nyp,nzp),STAT=ierr) ;G2N_c=0.
|
||||
!ALLOCATE(G2_Y(nxp,nyp,nzp),STAT=ierr) ;G2_Y=0.
|
||||
!ALLOCATE(d2gc(4,nxp,nyp,nzp),STAT=ierr) ;d2gc=0.
|
||||
|
||||
ALLOCATE(ub_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; ub_dot=0.
|
||||
ALLOCATE(uu_dot(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; uu_dot=0.
|
||||
ALLOCATE(c_dot(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_dot=0.
|
||||
ALLOCATE(FSD_dot(nxp,(eyp-syp+1),nzp),STAT=ierr) ; FSD_dot=0. !dhkim
|
||||
ALLOCATE(ub_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; ub_dot_g=0.
|
||||
ALLOCATE(uu_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; uu_dot_g=0.
|
||||
ALLOCATE(c_dot_g(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_dot_g=0.
|
||||
ALLOCATE(c_g(nxp,(eyp-syp+1),nzp),STAT=ierr) ; c_g=0.
|
||||
|
||||
! Arrays for local sum
|
||||
ALLOCATE(u_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_g=0.
|
||||
ALLOCATE(u_dot_g(3,nxp,(eyp-syp+1),nzp),STAT=ierr) ; u_dot_g=0.
|
||||
ALLOCATE(RMS_g(4,nxp),STAT=ierr) ; RMS_g=0.
|
||||
ALLOCATE(RMS_b_g(4,nxp),STAT=ierr) ; RMS_b_g=0.
|
||||
ALLOCATE(RMS_u_g(4,nxp),STAT=ierr) ; RMS_u_g=0.
|
||||
ALLOCATE(CM_b_g(4,nxp,(eyp-syp+1),nzp),STAT=ierr) ; CM_b_g=0.
|
||||
ALLOCATE(CM_u_g(4,nxp,(eyp-syp+1),nzp),STAT=ierr) ; CM_u_g=0.
|
||||
ALLOCATE(COV_g(3,nxp),STAT=ierr) ; COV_g=0.
|
||||
|
||||
! Arrays for total sum
|
||||
!ALLOCATE(SMF(23,nxp),STAT=ierr) ; SMF=0.
|
||||
ALLOCATE(SMF(3,nxp),STAT=ierr) ; SMF=0.
|
||||
ALLOCATE(SMC(4,nxp),STAT=ierr) ; SMC=0.
|
||||
!ALLOCATE(FMS(26,nxp),STAT=ierr) ; FMS=0.
|
||||
!ALLOCATE(KMS(2,nxp),STAT=ierr) ; KMS=0.
|
||||
|
||||
ALLOCATE(CM_b(4,nxp),STAT=ierr) ; CM_b=0.
|
||||
ALLOCATE(CM_u(4,nxp),STAT=ierr) ; CM_u=0.
|
||||
ALLOCATE(RMS(8,nxp),STAT=ierr) ; RMS=0.
|
||||
ALLOCATE(RMS_b(4,nxp),STAT=ierr) ; RMS_b=0.
|
||||
ALLOCATE(RMS_u(4,nxp),STAT=ierr) ; RMS_u=0.
|
||||
ALLOCATE(COV(4,nxp),STAT=ierr) ; COV=0.
|
||||
|
||||
ALLOCATE(favg_ndata(nxp),STAT=ierr) ; favg_ndata=0.
|
||||
ALLOCATE(RMS_u_2(4,nxp),STAT=ierr) ; RMS_u_2=0.
|
||||
ALLOCATE(RMS_b_2(4,nxp),STAT=ierr) ; RMS_b_2=0.
|
||||
|
||||
! Arrays for final averages
|
||||
!ALLOCATE(IRE1(28,nxp),STAT=ierr) ; IRE1=0.
|
||||
ALLOCATE(IRE1(7,nxp),STAT=ierr) ; IRE1=0.
|
||||
!ALLOCATE(IRE2(34,nxp),STAT=ierr) ; IRE2=0.
|
||||
ALLOCATE(IRE3(8,nxp),STAT=ierr) ; IRE3=0.
|
||||
ALLOCATE(IRE4(8,nxp),STAT=ierr) ; IRE4=0.
|
||||
ALLOCATE(IRE5(25,nxp),STAT=ierr) ; IRE5=0.
|
||||
ALLOCATE(IRE6(15,nxp),STAT=ierr) ; IRE6=0.
|
||||
!ALLOCATE(IRE7(6,nxp),STAT=ierr) ; IRE7=0.
|
||||
!ALLOCATE(IRE8(26,nxp),STAT=ierr) ; IRE8=0.
|
||||
!ALLOCATE(IRE9(14,nxp),STAT=ierr) ; IRE9=0.
|
||||
|
||||
|
||||
! hyp=l_0*pi/REAL(nyp)
|
||||
hyp=l_0*pi/REAL(nyp-1) ! kwon
|
||||
hxp=hyp; hzp=hyp
|
||||
|
||||
WRITE(*,'(a6,i3,a8,i3,a8,i3)') ' NX = ',nxp,' / NY = ',nyp,' / NZ = ',nzp
|
||||
WRITE(*,*) ' Preparing memory space for COMPACT SCHEME'
|
||||
CALL ludcmp(nxp,nyp,nzp,1,0,0) ! 1,1,0
|
||||
|
||||
WRITE(*,'(a22,i3,a3,i3,a4,i3)') ' Grid number range : ',syp,' ~ ',eyp,' of ',nyp
|
||||
WRITE(*,*)
|
||||
|
||||
END SUBROUTINE ALLOCATE_ARRAYS
|
||||
|
||||
SUBROUTINE DEALLOCATES_CLOSE
|
||||
DEALLOCATE(u)
|
||||
DEALLOCATE(v)
|
||||
DEALLOCATE(w)
|
||||
DEALLOCATE(old_scalar)
|
||||
DEALLOCATE(new_scalar)
|
||||
DEALLOCATE(m_v)
|
||||
!DEALLOCATE(G_C)
|
||||
!DEALLOCATE(cgm)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue