fabm_tavg_out_4d Subroutine

public subroutine fabm_tavg_out_4d(iou, ln, ib, ic, tmpijkm, ils, ile, jls, jle, kls, kle, t, ids, ide, jds, jde, km, nt)

save 4D data to the NetCDF file given by iou

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iou

NetCDF file id

integer, intent(in) :: ln

data length

integer, intent(in) :: ib(:)

array of start indices

integer, intent(in) :: ic(:)

array of counts

real, intent(in) :: tmpijkm(ils:ile,jls:jle,kls:kle)

mask array for present data slice

integer, intent(in) :: ils

start index - i

integer, intent(in) :: ile

end index - i

integer, intent(in) :: jls

start index - j

integer, intent(in) :: jle

end index - j

integer, intent(in) :: kls

start index - k

integer, intent(in) :: kle

end index - k

real, intent(in) :: t(ids:ide,jds:jde,km,nt)

UVic maintained data array slice

integer, intent(in) :: ids

start index - i

integer, intent(in) :: ide

end index - i

integer, intent(in) :: jds

start index - j

integer, intent(in) :: jde

end index - j

integer, intent(in) :: km

index - k

integer, intent(in) :: nt

number of tracers


Calls

proc~~fabm_tavg_out_4d~~CallsGraph proc~fabm_tavg_out_4d uvic_fabm::fabm_tavg_out_4d interior_state_variables interior_state_variables proc~fabm_tavg_out_4d->interior_state_variables putvaramsk putvaramsk proc~fabm_tavg_out_4d->putvaramsk

Source Code

      subroutine fabm_tavg_out_4d(iou,ln,ib,ic,
     &                tmpijkm,ils,ile,jls,jle,kls,kle,
     &                t,ids,ide,jds,jde,km,nt)
         !! save 4D data to the NetCDF file given by iou
      integer, intent(in) :: iou
         !! NetCDF file id
      integer, intent(in) :: ln
         !! data length
      integer, intent(in) :: ib(:)
         !! array of start indices
      integer, intent(in) :: ic(:)
         !! array of counts 
      real, intent(in) :: tmpijkm(ils:ile,jls:jle,kls:kle)
         !! mask array for present data slice
      integer, intent(in) :: ils
         !! start index - i
      integer, intent(in) :: ile
         !! end index - i
      integer, intent(in) :: jls
         !! start index - j
      integer, intent(in) :: jle
         !! end index - j
      integer, intent(in) :: kls
         !! start index - k
      integer, intent(in) :: kle
         !! end index - k
      real, intent(in) :: t(ids:ide,jds:jde,km,nt)
         !! UVic maintained data array slice
      integer, intent(in) :: ids
         !! start index - i
      integer, intent(in) :: ide
         !! end index - i
      integer, intent(in) :: jds
         !! start index - j
      integer, intent(in) :: jde
         !! end index - j
      integer, intent(in) :: km
         !! index - k
      integer, intent(in) :: nt
         !! number of tracers

         integer :: i,j,k,n
            ! counter
         !KB - should maybe be arguments - or picked from 
         !     somewhere else
         real, parameter :: s = 1.
         real, parameter :: o = 0.
         real, allocatable :: tmpijk(:,:,:)

         ! t(ids:ide,jds:jde,km,nt)
         allocate ( tmpijk(ils:ile,jls:jle,kls:kle) )

         associate(VAR => model%interior_state_variables)
         do n=1,npelagic
#if 1
            tmpijk(ils:ile,jls:jle,kls:kle) = 
     &             t(ils:ile,jls:jle,kls:kle,n+2)
#else
            do j=jls,jle
               do k=kls,kle
                  do i=ils,ile
                     tmpijk(i,j,k) = t(i,k,j,n+2,0)
                  end do
               end do
            end do
#endif
            call putvaramsk ('O_'//trim(VAR(n)%name), iou, ln, 
     &                       ib, ic, tmpijk, tmpijkm, s,o)
         end do
         end associate

         deallocate (tmpijk)

      end subroutine fabm_tavg_out_4d