Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_tools / da_array_print.inc
blobd9cb0a150d3feb6a9c3a598c450462b9526e100b
1 subroutine da_array_print(direction, a, ch)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    integer, intent(in)            :: direction
10    real*8, intent(in)             :: a(:,:)
11    character (len=*), intent(in)  :: ch
13    real                           :: amax
14    integer                        :: i, j
15    integer                        :: len1, len2
16    integer                        :: jstart
17    integer                        :: jend
18    integer                        :: jump
20    len1 = size(a(:,:),dim=1)
21    len2 = size(a(:,:),dim=2)
23    ! Writes the scalar field a
25    write(unit=stdout,fmt='(A)') trim(ch)
27    amax = MAXVAL(abs(a))
28    write(unit=stdout, fmt='(a, 1pe15.8, 4i8)') &
29         '   max(a)=', amax, shape(a)
31    write(unit=stdout,fmt='(a, 1pe15.8, a)') &
32         '   max(a)=', amax, ', i down, j horiz.'
34    write(unit=stdout,fmt='(6x,288i3)') (i,i=1,len2)
36    ! Direction indicates the order of the rows of the print out:
38    if (direction == 1) then
39       jstart = 1
40       jend = len1
41       jump = 1
42    else
43       jstart = len1
44       jend = 1
45       jump = -1
46    end if
48    if (amax.ne.0.0)then
49       do j=jstart,jend,jump
50          write(unit=stdout,fmt='(1x,i5,288i3)') &
51             j, (inT(a(j,i)/amax*99.0),i=1,len2)
52       end do
53    end if
55    write (unit=stdout,fmt='(A)') " "
57 end subroutine da_array_print