139 |
IF ( flds(md,ld).EQ.cdiag(nd) ) THEN |
IF ( flds(md,ld).EQ.cdiag(nd) ) THEN |
140 |
CALL DIAGNOSTICS_SETDIAG(mate,ndiagcount,md,ld,nd,myThid) |
CALL DIAGNOSTICS_SETDIAG(mate,ndiagcount,md,ld,nd,myThid) |
141 |
found = .TRUE. |
found = .TRUE. |
|
jdiag(md,ld) = nd |
|
142 |
ENDIF |
ENDIF |
143 |
ENDDO |
ENDDO |
144 |
IF ( .NOT.found ) THEN |
IF ( .NOT.found ) THEN |
195 |
DO md=1,nActive(ld) |
DO md=1,nActive(ld) |
196 |
IF (mdiag(md,ld).EQ.0 ) THEN |
IF (mdiag(md,ld).EQ.0 ) THEN |
197 |
|
|
198 |
nd = jdiag(md,ld) |
k = SIGN(1,jdiag(md,ld)) |
199 |
|
nd = ABS(jdiag(md,ld)) |
200 |
mate = hdiag(nd) |
mate = hdiag(nd) |
201 |
IF ( mate.GT.0 ) THEN |
IF ( mate.GT.0 ) THEN |
202 |
DO j=1,nlists |
DO j=1,nlists |
203 |
DO i=1,nActive(j) |
DO i=1,nActive(j) |
204 |
IF ( mdiag(md,ld).EQ.0 .AND. jdiag(i,j).EQ.mate ) THEN |
IF ( mdiag(md,ld).EQ.0 .AND. (k*jdiag(i,j)).EQ.mate ) THEN |
205 |
IF ( freq(j).EQ.freq(ld) .AND. phase(j).EQ.phase(ld) |
IF ( freq(j).EQ.freq(ld) .AND. phase(j).EQ.phase(ld) |
206 |
& .AND. averageFreq(j) .EQ.averageFreq(ld) |
& .AND. averageFreq(j) .EQ.averageFreq(ld) |
207 |
& .AND. averagePhase(j).EQ.averagePhase(ld) |
& .AND. averagePhase(j).EQ.averagePhase(ld) |
231 |
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: |
232 |
kLev = numLevels*10 |
kLev = numLevels*10 |
233 |
DO md=1,nfields(ld) |
DO md=1,nfields(ld) |
234 |
nd = jdiag(md,ld) |
nd = ABS(jdiag(md,ld)) |
235 |
kLev = MIN(kdiag(nd),kLev) |
kLev = MIN(kdiag(nd),kLev) |
236 |
ENDDO |
ENDDO |
237 |
IF ( kLev.LE.0 ) THEN |
IF ( kLev.LE.0 ) THEN |
273 |
kLev = MAX(NINT(levs(k,ld)),kLev) |
kLev = MAX(NINT(levs(k,ld)),kLev) |
274 |
ENDDO |
ENDDO |
275 |
DO md=1,nfields(ld) |
DO md=1,nfields(ld) |
276 |
nd = jdiag(md,ld) |
nd = ABS(jdiag(md,ld)) |
277 |
IF ( kLev.GT.kdiag(nd) ) THEN |
IF ( kLev.GT.kdiag(nd) ) THEN |
278 |
C- Note: diagnostics_out take care (in some way) of this case |
C- Note: diagnostics_out take care (in some way) of this case |
279 |
C so that it does not cause "index out-off bounds" error. |
C so that it does not cause "index out-off bounds" error. |