subroutine fielddump use modglobal, only : ib,ie,ih,jb,je,jh,ke,kb,kh,rk3step,timee,& tfielddump, tnextfielddump, lfielddump !use modmpi, only : myid,cmyid !use modsubgriddata, only : ekm,sbshr use modstat_nc, only : writestat_nc implicit none real, allocatable :: vars(:,:,:,:) integer n if (.not. ((timee>=tnextfielddump) .or. (rk3step==0))) return if (.not. lfielddump) return if (rk3step/=3 .and. rk3step/=0) return do n=1,nvar if (derived_kind(n) /= 0) call compute_derived(derived_kind(n), dbuf(:,:,:,derived_slot(n))) end do if (rk3step == 3) tnextfielddump=tnextfielddump+tfielddump if (lhalos) then allocate(vars(ib-ih:ie+ih,jb-jh:je+jh,kb-kh:ke+kh,nvar)); vars = 0; do n=1,nvar vars(ib-ih:ie+ih,jb-jh:je+jh,kb-kh:ke+kh,n) = pfields(n)%point end do else allocate(vars(ib:ie,jb:je,kb:ke,nvar)); vars = 0; do n=1,nvar vars(ib:ie,jb:je,kb:ke,n) = pfields(n)%point end do end if call writestat_nc(ncid,1,tncname,(/timee/),nrec,.true.) !call writestat_nc(ncid,nvar,ncname,vars,nrec,imax+2,jmax+2,khigh-klow+1) call writestat_nc(ncid,nvar,ncname,vars,nrec,ihigh-ilow+1,jhigh-jlow+1,khigh-klow+1) deallocate(vars) end subroutine fielddump