C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/matrix/matrix_store_tendency.F,v 1.1 2005/04/18 19:42:16 spk Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" C !ROUTINE MATRIX_STORE_TENDENCY_EXP.F C This routine accumalates the explicit tendency matrix. Note C that on entry gPtr is the tracer field after explicit advection- C diffusion. On exit, gPtr is set to the initial tracer field for C the next step (implicit matrix calculation). SUBROUTINE MATRIX_STORE_TENDENCY_EXP( bi, bj, myTime, myIter, myThid ) IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS.h" #include "MATRIX.h" #include "PARAMS.h" INTEGER bi, bj _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_MATRIX INTEGER i,j,k INTEGER iTracer DO iTracer=1,PTRACERS_numInUse DO k=1,Nr DO j=1-Oly, sNy+Oly DO i=1-Olx, sNx+Olx MATRIX(i,j,k,bi,bj,iTracer,1) = & MATRIX(i,j,k,bi,bj,iTracer,1) & + (gPtr(i,j,k,bi,bj,iTracer) & - PTRACERS_initial(i,j,k,bi,bj,iTracer)) gPtr(i,j,k,bi,bj,iTracer)= & PTRACERS_initial(i,j,k,bi,bj,iTracer) ENDDO ENDDO ENDDO ENDDO expMatrixCounter = expMatrixCounter + 1 #endif /* ALLOW_MATRIX */ RETURN END C !ROUTINE MATRIX_STORE_TENDENCY_IMP.F C This routine accumalates the implicit update matrix. Note that C on entry PTR is the tracer field after implicit advection- C diffusion. On exit, PTR is set to the initial tracer field. SUBROUTINE MATRIX_STORE_TENDENCY_IMP( bi, bj, myTime, myIter, myThid ) IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS.h" #include "MATRIX.h" #include "PARAMS.h" INTEGER bi, bj _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_MATRIX INTEGER i,j,k INTEGER iTracer DO iTracer=1,PTRACERS_numInUse DO k=1,Nr DO j=1-Oly, sNy+Oly DO i=1-Olx, sNx+Olx MATRIX(i,j,k,bi,bj,iTracer,2) = & MATRIX(i,j,k,bi,bj,iTracer,2) & + pTracer(i,j,k,bi,bj,iTracer) pTracer(i,j,k,bi,bj,iTracer)= & PTRACERS_initial(i,j,k,bi,bj,iTracer) ENDDO ENDDO ENDDO ENDDO impMatrixCounter = impMatrixCounter + 1 #endif /* ALLOW_MATRIX */ RETURN END