/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_implicit_r.F
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/gad_implicit_r.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.26 by jmc, Wed Oct 26 00:46:00 2016 UTC revision 1.27 by jmc, Wed Oct 26 21:36:03 2016 UTC
# Line 73  C rTrans    :: vertical volume transport Line 73  C rTrans    :: vertical volume transport
73  C localTr   :: local copy of tracer (for Non-Lin Adv.Scheme)  C localTr   :: local copy of tracer (for Non-Lin Adv.Scheme)
74  C diagonalNumber :: number of non-zero diagonals in the matrix  C diagonalNumber :: number of non-zero diagonals in the matrix
75  C errCode   :: > 0 if singular matrix  C errCode   :: > 0 if singular matrix
76    C msgBuf    :: Informational/error message buffer
77        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
78        PARAMETER( iMin = 1, iMax = sNx )        PARAMETER( iMin = 1, iMax = sNx )
79        PARAMETER( jMin = 1, jMax = sNy )        PARAMETER( jMin = 1, jMax = sNy )
# Line 94  C errCode   :: > 0 if singular matrix Line 95  C errCode   :: > 0 if singular matrix
95        _RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
96        _RL div(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL div(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
97        _RL flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
98  #endif  # ifdef SOLVE_DIAGONAL_LOWMEMORY
99          CHARACTER*(MAX_LEN_MBUF) msgBuf
100    # endif /* SOLVE_DIAGONAL_LOWMEMORY */
101    #endif /* ALLOW_DIAGNOSTICS */
102  CEOP  CEOP
103    
104  C--   no need to solve anything with only 1 level:  C--   no need to solve anything with only 1 level:
# Line 297  C--   Set diagnostic suffix for the curr Line 301  C--   Set diagnostic suffix for the curr
301              flx(i,j) = 0. _d 0              flx(i,j) = 0. _d 0
302            ENDDO            ENDDO
303           ENDDO           ENDDO
304    C--      start diagnostics k loop
305           DO k= Nr,1,-1           DO k= Nr,1,-1
306    
307            IF ( implicitDiffusion .AND. k.GE.2 ) THEN            IF ( implicitDiffusion .AND. k.GE.2 ) THEN
308              DO j=jMin,jMax              DO j=jMin,jMax
309               DO i=iMin,iMax               DO i=iMin,iMax
# Line 320  cc#endif Line 326  cc#endif
326               ENDDO               ENDDO
327              ENDDO              ENDDO
328            ENDIF            ENDIF
329    
330  C-  Note: Needs to explicitly increment counter (call DIAGNOSTICS_COUNT)  C-  Note: Needs to explicitly increment counter (call DIAGNOSTICS_COUNT)
331  C         since skipping k=1 DIAGNOSTICS_FILL call.  C         since skipping k=1 DIAGNOSTICS_FILL call.
332            IF ( diagDif .AND. k.GE.2 ) THEN            IF ( diagDif .AND. k.GE.2 ) THEN
# Line 333  C         since skipping k=1 DIAGNOSTICS Line 340  C         since skipping k=1 DIAGNOSTICS
340             ENDIF             ENDIF
341  #endif /* ALLOW_LAYERS */  #endif /* ALLOW_LAYERS */
342            ENDIF            ENDIF
343    
344            IF ( diagAdv ) THEN            IF ( diagAdv ) THEN
345    #ifdef SOLVE_DIAGONAL_LOWMEMORY
346               diagName = 'ADVr'//diagSufx
347               WRITE(msgBuf,'(4A)') 'GAD_IMPLICIT_R: ',
348         &      'unable to compute Diagnostic "', diagName, '" with'
349               CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
350         &                         SQUEEZE_RIGHT, myThid )
351               WRITE(msgBuf,'(4A)') 'GAD_IMPLICIT_R: ',
352         &      '#define SOLVE_DIAGONAL_LOWMEMORY (in CPP_OPTIONS.h)'
353               CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
354         &                         SQUEEZE_RIGHT, myThid )
355               STOP 'ABNORMAL END: S/R GAD_IMPLICIT_R'
356    #endif /* SOLVE_DIAGONAL_LOWMEMORY */
357             km1=MAX(1,k-1)             km1=MAX(1,k-1)
358             km2=MAX(1,k-2)             km2=MAX(1,k-2)
359             kp1=MIN(Nr,k+1)             kp1=MIN(Nr,k+1)
# Line 418  cc#endif Line 438  cc#endif
438             ENDIF             ENDIF
439  #endif /* ALLOW_LAYERS */  #endif /* ALLOW_LAYERS */
440            ENDIF            ENDIF
441    
442    C--      end diagnostics k loop
443           ENDDO           ENDDO
444          ENDIF          ENDIF
445        ENDIF        ENDIF

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

  ViewVC Help
Powered by ViewVC 1.1.22