26 |
|
|
27 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
28 |
C == Routine arguments == |
C == Routine arguments == |
29 |
C myThid - Thread number for this instance of the routine. |
C myThid :: my Thread Id. number |
30 |
INTEGER myThid |
INTEGER myThid |
31 |
CEOP |
CEOP |
32 |
|
|
38 |
INTEGER i, j, k, k1, k2, mm, kLev |
INTEGER i, j, k, k1, k2, mm, kLev |
39 |
LOGICAL found |
LOGICAL found |
40 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
41 |
|
CHARACTER*12 suffix |
42 |
|
|
43 |
_BEGIN_MASTER( myThid) |
_BEGIN_MASTER( myThid) |
44 |
|
|
161 |
DO ld=1,nlists |
DO ld=1,nlists |
162 |
IF ( nlevels(ld).EQ.-1 ) THEN |
IF ( nlevels(ld).EQ.-1 ) THEN |
163 |
C- set Nb of levels to the minimum size of all diag of this list: |
C- set Nb of levels to the minimum size of all diag of this list: |
164 |
kLev = numLevels |
kLev = numLevels*10 |
165 |
DO md=1,nfields(ld) |
DO md=1,nfields(ld) |
166 |
nd = jdiag(md,ld) |
nd = jdiag(md,ld) |
167 |
kLev = MIN(kdiag(nd),kLev) |
kLev = MIN(kdiag(nd),kLev) |
168 |
ENDDO |
ENDDO |
169 |
IF ( kLev.LE.0 ) THEN |
IF ( kLev.LE.0 ) THEN |
170 |
WRITE(msgBuf,'(2A,I6,2A)') |
WRITE(msgBuf,'(2A,I4,2A)') |
171 |
& 'DIAGNOSTICS_SET_POINTERS: kLev < 1 in ', |
& 'DIAGNOSTICS_SET_POINTERS: kLev < 1 in', |
172 |
& ' setting levs of list l=',ld,', fnames: ', fnames(ld) |
& ' setting levs of list l=',ld,', fnames=', fnames(ld) |
173 |
|
CALL PRINT_ERROR( msgBuf , myThid ) |
174 |
|
STOP 'ABNORMAL END: S/R DIAGNOSTICS_SET_POINTERS' |
175 |
|
ELSEIF ( kLev.GT.numLevels ) THEN |
176 |
|
WRITE(msgBuf,'(A,2(I6,A))') |
177 |
|
& 'DIAGNOSTICS_SET_POINTERS: kLev=', kLev, |
178 |
|
& ' >', numLevels, ' =numLevels' |
179 |
|
CALL PRINT_ERROR( msgBuf , myThid ) |
180 |
|
WRITE(msgBuf,'(2A,I4,2A)') 'DIAGNOSTICS_SET_POINTERS: in', |
181 |
|
& ' setting levs of list l=',ld,', fnames=', fnames(ld) |
182 |
CALL PRINT_ERROR( msgBuf , myThid ) |
CALL PRINT_ERROR( msgBuf , myThid ) |
183 |
STOP 'ABNORMAL END: S/R DIAGNOSTICS_SET_POINTERS' |
STOP 'ABNORMAL END: S/R DIAGNOSTICS_SET_POINTERS' |
184 |
ENDIF |
ENDIF |
190 |
& 'Set levels for Outp.Stream: ',fnames(ld) |
& 'Set levels for Outp.Stream: ',fnames(ld) |
191 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
192 |
& SQUEEZE_RIGHT, myThid) |
& SQUEEZE_RIGHT, myThid) |
193 |
|
suffix = ' Levels: ' |
194 |
|
IF ( fflags(ld)(2:2).EQ.'I' ) suffix = ' Sum Levels:' |
195 |
DO k1=1,nlevels(ld),20 |
DO k1=1,nlevels(ld),20 |
196 |
k2 = MIN(nlevels(ld),k1+19) |
k2 = MIN(nlevels(ld),k1+19) |
197 |
WRITE(msgBuf,'(A,20F5.0)') |
WRITE(msgBuf,'(A,20F5.0)') suffix, (levs(k,ld),k=k1,k2) |
|
& ' Levels: ', (levs(k,ld),k=k1,k2) |
|
198 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
199 |
& SQUEEZE_RIGHT, myThid) |
& SQUEEZE_RIGHT, myThid) |
200 |
ENDDO |
ENDDO |