Back to home page

darwin3

 
 

    


File indexing completed on 2024-12-17 18:33:50 UTC

view on githubraw file Latest commit c145d7be on 2024-06-25 16:42:06 UTC
c145d7be37 Oliv*0001 #include "DARWIN_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: DARWIN_ADD_BOTFORC
                0005 C !INTERFACE: ==========================================================
                0006       SUBROUTINE DARWIN_ADD_BOTFORC(
                0007      U                        gPtr,
                0008      I                        botForc, fac,
                0009      I                        bi, bj, iMin, iMax, jMin, jMax,
                0010      I                        myIter, myTime, myThid )
                0011 
                0012 C !DESCRIPTION:
                0013 
                0014 C !USES: ===============================================================
                0015       IMPLICIT NONE
                0016 #include "SIZE.h"
                0017 #include "GRID.h"
                0018 #include "EEPARAMS.h"
                0019 #include "PARAMS.h"
                0020 
                0021 C!INPUT PARAMETERS: ====================================================
                0022 C  surfForc  :: surface forcing field to apply
                0023 C  fac       :: factor to multiply surface forcing by
                0024 C  myThid    :: thread number
                0025       _RL botForc(1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
                0026       _RL fac
                0027       _RL myTime
                0028       INTEGER iMin, iMax, jMin, jMax, bi, bj, myIter, myThid
                0029 
                0030 C!INPUT/OUTPUT PARAMETERS: =============================================
                0031 C  gPtr      :: surface tracer tendency array to update
                0032       _RL gPtr(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr)
                0033 CEOP
                0034 
                0035 #ifdef ALLOW_DARWIN
                0036 
                0037 C!LOCAL VARIABLES: =====================================================
                0038 C  i,j :: loop indices
                0039       INTEGER i,j,k
                0040       _RL tmp3d(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr)
                0041 
                0042       DO k=1,Nr
                0043        DO j=jMin,jMax
                0044         DO i=iMin,iMax
                0045          tmp3d(i,j,k) = 0 _d 0
                0046         ENDDO
                0047        ENDDO
                0048       ENDDO
                0049       DO j=jMin,jMax
                0050        DO i=iMin,iMax
                0051         k = kLowC(i,j,bi,bj)
                0052         IF (k .GT. 0) THEN
                0053          tmp3d(i,j,k) = botForc(i,j)*fac
                0054      &     *maskC(i,j,k,bi,bj)*recip_drF(k)*recip_hFacC(i,j,k,bi,bj)
                0055         ENDIF
                0056        ENDDO
                0057       ENDDO
                0058       DO k=1,Nr
                0059 #ifdef NONLIN_FRSURF
                0060 C-    Account for change in level thickness
                0061        IF (nonlinFreeSurf.GT.0) THEN
                0062         CALL FREESURF_RESCALE_G(
                0063      I                           bi, bj, k,
                0064      U                           tmp3d,
                0065      I                           myThid )
                0066        ENDIF
                0067 #endif /* NONLIN_FRSURF */
                0068        DO j=jMin,jMax
                0069         DO i=iMin,iMax
                0070          gPtr(i,j,k) = gPtr(i,j,k) + tmp3d(i,j,k)
                0071         ENDDO
                0072        ENDDO
                0073       ENDDO
                0074 
                0075 #endif /* ALLOW_DARWIN */
                0076 
                0077       RETURN
                0078       END