subroutine writestat_3D_nc(ncid,nvar,ncname,vars,nrec,dim1,dim2,dim3)
implicit none
integer, intent(in) :: ncid,nvar,dim1,dim2,dim3
integer, intent(in) :: nrec
!real,dimension(dim1,dim2,dim3,nvar),intent(in) :: vars
real,intent(in) :: vars(0:dim1-1,0:dim2-1,0:dim3-1,nvar)
character(*), dimension(:,:),intent(in) :: ncname
integer :: iret,n,varid
!write(*,*) 'write 3Dnc'
do n=1,nvar
iret = nf90_inq_varid(ncid, ncname(n,1), VarID)
!write(*,*) 'MYID,.', myid
!write(*,*) "nth netcdf variable",n
!write(*,*) 'ncid',ncid
!write(*,*) "n",n
!write(*,*) 'ncname(n,1)',ncname(n,1)
!write(*,*) 'VarID',VarID
!write(*,*) 'nrec',nrec
!write(*,*) 'imax',dim1
!write(*,*) 'jmax',dim2
!write(*,*) 'kmax',dim3
!write(*,*) 'shape(vars)',shape(vars)
!iret = nf90_put_var(ncid, VarID, vars(1:dim1,1:dim2,1:dim3,n),(/1,1,1,nrec/),(/dim1,dim2,dim3,1/))
iret = nf90_put_var(ncid, VarID, vars(:,:,:,n),(/1,1,1,nrec/),(/dim1,dim2,dim3,1/))
end do
iret = nf90_sync(ncid)
end subroutine writestat_3D_nc