1 |
C $Id: plot_field.F,v 1.1 1998/05/25 20:21:05 cnh Exp $ |
2 |
#include "CPP_OPTIONS.h" |
3 |
#include "CPP_MACROS.h" |
4 |
SUBROUTINE PLOT_FIELD ( A, Nx, Ny ) |
5 |
IMPLICIT NONE |
6 |
C |
7 |
INTEGER Nx, Ny |
8 |
REAL A(Nx,Ny) |
9 |
C |
10 |
INTEGER NC |
11 |
PARAMETER ( NC = 28 ) |
12 |
CHARACTER*(NC) CVAL |
13 |
PARAMETER ( CVAL = |
14 |
&'-abcdefghijklmnopqrstuvwxyz+' ) |
15 |
REAL AMN, AMX, CINT |
16 |
CHARACTER BUFFER(1024) |
17 |
INTEGER I, J, IDX |
18 |
C |
19 |
AMN = 1.D32 |
20 |
AMX = -1.D32 |
21 |
DO J=1,Ny |
22 |
DO I=1,Nx |
23 |
IF( A(I,J).NE.0.) THEN |
24 |
IF ( A(I,J) .LT. AMN ) AMN = A(I,J) |
25 |
IF ( A(I,J) .GT. AMX ) AMX = A(I,J) |
26 |
ENDIF |
27 |
ENDDO |
28 |
ENDDO |
29 |
CINT = (AMX-AMN)/FLOAT(NC-1) |
30 |
WRITE (0,*) ' Min = ', AMN,' Max = ',AMX, ' CINT = ', CINT |
31 |
DO J = Ny, 1 , -1 |
32 |
DO I = 1, Nx |
33 |
IF ( CINT .NE. 0. ) THEN |
34 |
IDX = NINT( FLOAT(NC-1)*(A(I,J)-AMN)/(AMX-AMN) )+1 |
35 |
BUFFER(I) = CVAL(IDX:IDX) |
36 |
ELSE |
37 |
BUFFER(I) = '*' |
38 |
ENDIF |
39 |
IF ( A(I,J) .EQ. 0. ) BUFFER(I) = '.' |
40 |
C IF ( A(I,J) .LT. 0. ) BUFFER(I) = '-' |
41 |
C IF ( A(I,J) .GT. 0. ) BUFFER(I) = '+' |
42 |
ENDDO |
43 |
WRITE(0,'(I3,1X,1024A)') J,(BUFFER(I),I=1,Nx) |
44 |
ENDDO |
45 |
C |
46 |
END |