fabm_rest_out Subroutine

public subroutine fabm_rest_out(iou, ln, ib, ic, tmpik, ils, ile, kls, kle, tau)

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(inout) :: tmpik(ils:ile,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) :: kls

start index - k

integer, intent(in) :: kle

end index - k

integer, intent(in) :: tau

time index - -1:1


Calls

proc~~fabm_rest_out~~CallsGraph proc~fabm_rest_out uvic_fabm::fabm_rest_out interior_state_variables interior_state_variables proc~fabm_rest_out->interior_state_variables putvara putvara proc~fabm_rest_out->putvara t t proc~fabm_rest_out->t

Source Code

      subroutine fabm_rest_out(iou,ln,ib,ic,tmpik,ils,ile,kls,kle,tau)
         !! 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(inout) :: tmpik(ils:ile,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) :: kls
         !! start index - k
      integer, intent(in) :: kle
         !! end index - k
      integer, intent(in) :: tau
         !! time index - -1:1

         real, parameter :: c0 = 0.
         real, parameter :: c1 = 1.
         character(1) :: x
            ! to distinguise between tau and taup1
         integer :: j
            ! j row slice
         integer :: n
            ! counter

         if (tau == 0) x = '1'
         if (tau == 1) x = '2'
         j = ib(2)

         associate(VAR => model%interior_state_variables)
         do n=1,npelagic
            ! j row slice
            tmpik(ils:ile,kls:kle) = t(ils:ile,kls:kle,j,n,tau)
            call putvara(trim(VAR(n)%name)//x, iou, ln, ib, ic, 
     &                   tmpik, c1, c0)
         end do
         end associate

      end subroutine fabm_rest_out