Back to home page

darwin3

 
 

    


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

view on githubraw file Latest commit 865e4760 on 2021-08-25 17:18:39 UTC
8fbfd1f382 Oliv*0001 #include "DARWIN_OPTIONS.h"
                0002 #include "EXF_OPTIONS.h"
                0003 
                0004 CBOP
                0005 C !ROUTINE: DARWIN_FIELDS_LOAD
                0006 
                0007 C !INTERFACE: ==========================================================
                0008       SUBROUTINE DARWIN_FIELDS_LOAD( myIter, myTime, myThid )
                0009 
                0010 C !DESCRIPTION:
                0011 C     Load and interpolate forcing fields for darwin package
                0012 
                0013 C !USES: ===============================================================
                0014       IMPLICIT NONE
                0015 #include "SIZE.h"
                0016 #include "EEPARAMS.h"
                0017 #include "PARAMS.h"
                0018 #include "GRID.h"
                0019 #ifdef ALLOW_EXF
                0020 #include "EXF_FIELDS.h"
                0021 #endif
865e47606a Oliv*0022 #ifdef ALLOW_PTRACERS
                0023 #include "PTRACERS_SIZE.h"
                0024 #include "PTRACERS_FIELDS.h"
                0025 #endif
8fbfd1f382 Oliv*0026 #ifdef ALLOW_DARWIN
                0027 #include "DARWIN_SIZE.h"
865e47606a Oliv*0028 #include "DARWIN_INDICES.h"
8fbfd1f382 Oliv*0029 #include "DARWIN_EXF_FIELDS.h"
                0030 #include "DARWIN_PARAMS.h"
                0031 #include "DARWIN_TRAITS.h"
                0032 #endif
                0033 
                0034 C !INPUT PARAMETERS: ===================================================
                0035       _RL     mytime
                0036       integer myiter
                0037       integer mythid
865e47606a Oliv*0038 
                0039 C !FUNCTIONS: ==========================================================
                0040       LOGICAL  DIAGNOSTICS_IS_ON
                0041       EXTERNAL DIAGNOSTICS_IS_ON
8fbfd1f382 Oliv*0042 CEOP
                0043 
                0044 #ifdef ALLOW_DARWIN
                0045 #ifdef ALLOW_EXF
                0046 
                0047 C !LOCAL VARIABLES: ====================================================
                0048       INTEGER bi,bj,i,j
865e47606a Oliv*0049 #ifdef ALLOW_DIAGNOSTICS
                0050       INTEGER k,l
                0051       _RL tmp(sNx,sNy,Nr)
                0052 #endif
8fbfd1f382 Oliv*0053 
                0054 c--   read forcing fields from files and temporal interpolation
                0055 
                0056       CALL DARWIN_EXF_LOAD(myTime, myIter, myThid)
                0057 
                0058       IF (DARWIN_useEXFwind) THEN
                0059        DO bj=myByLo(mythid),myByHi(myThid)
                0060         DO bi=myBxLo(mythid),myBxHi(myThid)
                0061          DO j=1-OLy,sNy+OLy
                0062           DO i=1-OLx,sNx+OLx
                0063            windSpeed(i,j,bi,bj) = wspeed(i,j,bi,bj)
                0064           ENDDO
                0065          ENDDO
                0066         ENDDO
                0067        ENDDO
                0068       ENDIF
                0069 
                0070       CALL DARWIN_MONITOR(myTime, myIter, myThid)
                0071 
                0072 #ifdef ALLOW_DIAGNOSTICS
                0073       IF (useDIAGNOSTICS) THEN
                0074        CALL DIAGNOSTICS_FILL(surfPAR,'surfPAR ',1,1,0,0,0,myThid)
                0075        CALL DIAGNOSTICS_FILL(inputFe,'surfiron',0,1,0,0,0,myThid)
                0076        CALL DIAGNOSTICS_FILL(iceFrac,'DARice  ',0,1,0,0,0,myThid)
                0077        CALL DIAGNOSTICS_FILL(windSpeed,'DARwind ',0,1,0,0,0,myThid)
                0078        CALL DIAGNOSTICS_FILL(atmospCO2,'surfpCO2',0,1,0,0,0,myThid)
                0079       ENDIF
                0080 #endif
                0081 
                0082 #endif /* ALLOW_EXF */
865e47606a Oliv*0083 
                0084 #ifdef ALLOW_DIAGNOSTICS
                0085       IF (useDIAGNOSTICS) THEN
                0086 #ifdef DARWIN_ALLOW_CHLQUOTA
                0087        IF (DIAGNOSTICS_IS_ON('Chl     ', myThid)) THEN
                0088         DO bj=myByLo(mythid),myByHi(myThid)
                0089         DO bi=myBxLo(mythid),myBxHi(myThid)
                0090           DO k=1,Nr
                0091            DO j=1,sNy
                0092             DO i=1,sNx
                0093              tmp(i,j,k) = 0 _d 0
                0094             ENDDO
                0095            ENDDO
                0096           ENDDO
                0097           DO l=iChl,eChl
                0098            DO k=1,Nr
                0099             DO j=1,sNy
                0100              DO i=1,sNx
                0101               tmp(i,j,k) = tmp(i,j,k) + pTracer(i,j,k,bi,bj,l)
                0102              ENDDO
                0103             ENDDO
                0104            ENDDO
                0105           ENDDO
                0106           CALL DIAGNOSTICS_FILL(tmp,'Chl     ',0,Nr,3,bi,bj,myThid)
                0107         ENDDO
                0108         ENDDO
                0109        ENDIF
                0110 #endif /* DARWIN_ALLOW_CHLQUOTA */
                0111        IF (DIAGNOSTICS_IS_ON('plankC  ', myThid)) THEN
                0112         DO bj=myByLo(mythid),myByHi(myThid)
                0113         DO bi=myBxLo(mythid),myBxHi(myThid)
                0114           DO k=1,Nr
                0115            DO j=1,sNy
                0116             DO i=1,sNx
                0117              tmp(i,j,k) = 0 _d 0
                0118             ENDDO
                0119            ENDDO
                0120           ENDDO
                0121           DO l=ic,ec
                0122            DO k=1,Nr
                0123             DO j=1,sNy
                0124              DO i=1,sNx
                0125               tmp(i,j,k) = tmp(i,j,k) + pTracer(i,j,k,bi,bj,l)
                0126              ENDDO
                0127             ENDDO
                0128            ENDDO
                0129           ENDDO
                0130           CALL DIAGNOSTICS_FILL(tmp,'plankC  ',0,Nr,3,bi,bj,myThid)
                0131         ENDDO
                0132         ENDDO
                0133        ENDIF
                0134       ENDIF
                0135 #endif /* ALLOW_DIAGNOSTICS */
                0136 
8fbfd1f382 Oliv*0137 #endif /* ALLOW_DARWIN */
                0138 
                0139       RETURN
                0140       END