Back to home page

darwin3

 
 

    


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

view on githubraw file Latest commit 16ebea87 on 2022-09-22 23:08:29 UTC
16ebea87f8 Oliv*0001 #include "DARWIN_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: DARWIN_ADD_SURFFORC
                0005 C !INTERFACE: ==========================================================
                0006       SUBROUTINE DARWIN_ADD_SURFFORC(
                0007      U                        gPtr,
                0008      I                        surfForc, 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 surfForc(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)
                0033 CEOP
                0034 
                0035 #ifdef ALLOW_DARWIN
                0036 
                0037 C!LOCAL VARIABLES: =====================================================
                0038 C  i,j :: loop indices
                0039       INTEGER i,j
                0040       _RL tmp2d(1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
                0041 
                0042       DO j=jMin,jMax
                0043        DO i=iMin,iMax
                0044         tmp2d(i,j) = surfForc(i,j)*fac
                0045      &             * recip_drF(1)*recip_hFacC(i,j,1,bi,bj)
                0046        ENDDO
                0047       ENDDO
                0048 #ifdef NONLIN_FRSURF
                0049 C-    Account for change in level thickness
                0050       IF (nonlinFreeSurf.GT.0) THEN
                0051         CALL FREESURF_RESCALE_G(
                0052      I                           bi, bj, 1,
                0053      U                           tmp2d,
                0054      I                           myThid )
                0055       ENDIF
                0056 #endif /* NONLIN_FRSURF */
                0057       DO j=jMin,jMax
                0058        DO i=iMin,iMax
                0059         gPtr(i,j) = gPtr(i,j) + tmp2d(i,j)
                0060        ENDDO
                0061       ENDDO
                0062 
                0063 #endif /* ALLOW_DARWIN */
                0064 
                0065       RETURN
                0066       END