C+ C NAME: C WhatIsR4 C PURPOSE: C Write information about real*4 array C CALLING SEQUENCE: subroutine WhatIsR4(N,A,cStr) C INPUTS: C N integer # elements in array A C A(N) real array C cStr*(*) character*(*) message C OUTPUTS: C (to screen) C CALLS: C BadR4, ArrR4GetMinMax, iArrR4ValuePresent C MODIFICATION HISTORY: C AUG-2001, Paul Hick (UCSD/CASS; pphick@ucsd.edu) C- integer N real A(*) character cStr*(*) parameter (K=8) real AK(K) integer IK(K) M = abs(N) call ArrR4GetMinMax(-M,A,xmin,xmax) Bad = BadR4() nBad = iArrR4ValuePresent(M,A,Bad) nZero = iArrR4ValuePresent(M,A,0.0) write (*,'(60(1H=))') write (*,'(1X,2A)') '>>>>> ',cStr(:itrim(cStr)) if (M .ne. 0) then write (*,*) '# Bad values :',nBad ,' /',M write (*,*) '# Zeros :',nZero,' /',M write (*,*) 'Minimum value :',xmin write (*,*) 'Maximum value :',xmax I1 = 1 I2 = 0 do while (I2 .lt. K .and. I1 .le. M) if (A(I1) .ne. Bad) then I2 = I2+1 IK(I2) = I1 AK(I2) = A(I1) end if I1 = I1+1 end do if (I2 .gt. 0) write (*,*) 'First elements:',(' >',IK(I1),'=',AK(I1), I1=1,I2) else write (*,*) 'No data points in array' end if write (*,'(60(1H=))') return end