save 4D data to the NetCDF file given by iou
Type | Intent | Optional | 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 |
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