Back to home page

MITgcm

 
 

    


File indexing completed on 2025-09-17 05:08:23 UTC

view on githubraw file Latest commit e9828181 on 2025-09-16 19:00:16 UTC
c0d1c06c15 Matt*0001 #include "BLING_OPTIONS.h"
                0002 
                0003 CBOP
                0004       subroutine BLING_INIT_VARIA( myThid )
                0005 
                0006 C     ==========================================================
                0007 C     | subroutine bling_init_varia
cab777d667 Matt*0008 C     | o Initialize variable parameters
c0d1c06c15 Matt*0009 C     ==========================================================
                0010 
e0f9a7ba0b Matt*0011       IMPLICIT NONE
                0012 
c0d1c06c15 Matt*0013 C     === Global variables ===
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "PARAMS.h"
                0017 #include "GRID.h"
54b6d6aa91 Matt*0018 #include "PTRACERS_SIZE.h"
                0019 #include "PTRACERS_PARAMS.h"
c0d1c06c15 Matt*0020 #include "BLING_VARS.h"
bd32e74360 Matt*0021 
c0d1c06c15 Matt*0022 C     !INPUT PARAMETERS:
                0023 C     myThid               :: thread number
                0024       INTEGER myThid
                0025 CEOP
                0026 
                0027 #ifdef ALLOW_BLING
                0028       INTEGER i,j, bi,bj
                0029       INTEGER k
                0030 c     CHARACTER*(MAX_LEN_MBUF) msgBuf
                0031 
                0032 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0033 
                0034 C--   Initialise global variables
                0035       DO bj = myByLo(myThid), myByHi(myThid)
                0036        DO bi = myBxLo(myThid), myBxHi(myThid)
e0f9a7ba0b Matt*0037         DO j=1-OLy,sNy+OLy
                0038          DO i=1-OLx,sNx+OLx
47de7c1e0e Matt*0039           DO k = 1, Nr
c0d1c06c15 Matt*0040             omegaC(i,j,k,bi,bj)     = 0. _d 0
                0041             omegaAr(i,j,k,bi,bj)    = 0. _d 0
                0042             irr_mem(i,j,k,bi,bj)    = 1. _d 0
                0043             chl(i,j,k,bi,bj)        = 0. _d 0
3b75ee2a42 Matt*0044             poc(i,j,k,bi,bj)        = 0. _d 0
4ac06494d5 Matt*0045             phyto_sm(i,j,k,bi,bj)   = 4. _d -7 / permil
                0046             phyto_lg(i,j,k,bi,bj)   = 4. _d -7 / permil
e0f9a7ba0b Matt*0047 #ifndef USE_BLING_V1
4ac06494d5 Matt*0048             phyto_diaz(i,j,k,bi,bj) = 4. _d -7 / permil
e0f9a7ba0b Matt*0049 #endif
c0d1c06c15 Matt*0050           ENDDO
82e538d851 aver*0051           chl_sat(i,j,bi,bj)        = 0. _d 0
e0f9a7ba0b Matt*0052           gamma_POM_2d(i,j,bi,bj)   = gamma_POM
                0053           wsink0_2d(i,j,bi,bj)      = wsink0
                0054           phi_DOM_2d(i,j,bi,bj)     = phi_DOM
                0055           phi_sm_2d(i,j,bi,bj)      = phi_sm
                0056           phi_lg_2d(i,j,bi,bj)      = phi_lg
e9828181c3 Yixi*0057           k0_2d(i,j,bi,bj)          = k0
e0f9a7ba0b Matt*0058           Pc_0_2d(i,j,bi,bj)        = Pc_0
                0059           k_Fe_2d(i,j,bi,bj)        = k_Fe
                0060 #ifndef USE_BLING_V1
                0061           k_Fe_diaz_2d(i,j,bi,bj)   = k_Fe_diaz
                0062           Pc_0_diaz_2d(i,j,bi,bj)   = Pc_0_diaz
                0063           alpha_photo_2d(i,j,bi,bj) = alpha_photo
                0064 #endif
c0d1c06c15 Matt*0065          ENDDO
                0066         ENDDO
                0067        ENDDO
                0068       ENDDO
                0069 
47de7c1e0e Matt*0070 C Read in 2d bio related variables
e9828181c3 Yixi*0071         IF ( bling_k0_2dFile .NE. ' ' ) THEN
                0072            CALL READ_FLD_XY_RL( bling_k0_2dFile, ' ',
                0073      &                          k0_2d, 0, myThid )
                0074            _EXCH_XY_RL(k0_2d,myThid)
                0075         ENDIF
47de7c1e0e Matt*0076         IF ( bling_Pc_2dFile .NE. ' ' ) THEN
e0f9a7ba0b Matt*0077            CALL READ_FLD_XY_RL( bling_Pc_2dFile, ' ',
                0078      &                          Pc_0_2d, 0, myThid )
                0079         _EXCH_XY_RL(Pc_0_2d,myThid)
47de7c1e0e Matt*0080         ENDIF
                0081         IF ( bling_k_Fe2dFile .NE. ' ' ) THEN
e0f9a7ba0b Matt*0082            CALL READ_FLD_XY_RL( bling_k_Fe2dFile, ' ',
                0083      &                          k_Fe_2d, 0, myThid )
                0084         _EXCH_XY_RL(k_Fe_2d,myThid)
47de7c1e0e Matt*0085         ENDIF
af8f3b9ffc Matt*0086         IF ( bling_gamma_POM2dFile .NE. ' ' ) THEN
                0087            CALL READ_FLD_XY_RL( bling_gamma_POM2dFile, ' ',
e0f9a7ba0b Matt*0088      &                          gamma_POM_2d, 0, myThid )
                0089         _EXCH_XY_RL(gamma_POM_2d,myThid)
af8f3b9ffc Matt*0090         ENDIF
                0091         IF ( bling_wsink0_2dFile .NE. ' ' ) THEN
                0092            CALL READ_FLD_XY_RL( bling_wsink0_2dFile, ' ',
                0093      &                          wsink0_2d, 0, myThid )
                0094         _EXCH_XY_RL(wsink0_2d,myThid)
                0095         ENDIF
                0096         IF ( bling_phi_DOM2dFile .NE. ' ' ) THEN
                0097            CALL READ_FLD_XY_RL( bling_phi_DOM2dFile, ' ',
e0f9a7ba0b Matt*0098      &                          phi_DOM_2d, 0, myThid )
                0099         _EXCH_XY_RL(phi_DOM_2d,myThid)
af8f3b9ffc Matt*0100         ENDIF
                0101         IF ( bling_phi_sm2dFile .NE. ' ' ) THEN
                0102            CALL READ_FLD_XY_RL( bling_phi_sm2dFile, ' ',
e0f9a7ba0b Matt*0103      &                          phi_sm_2d, 0, myThid )
                0104         _EXCH_XY_RL(phi_sm_2d,myThid)
af8f3b9ffc Matt*0105         ENDIF
                0106         IF ( bling_phi_lg2dFile .NE. ' ' ) THEN
                0107            CALL READ_FLD_XY_RL( bling_phi_lg2dFile, ' ',
e0f9a7ba0b Matt*0108      &                          phi_lg_2d, 0, myThid )
                0109         _EXCH_XY_RL(phi_lg_2d,myThid)
                0110         ENDIF
                0111 #ifndef USE_BLING_V1
                0112         IF ( bling_Pc_2d_diazFile .NE. ' ' ) THEN
                0113            CALL READ_FLD_XY_RL( bling_Pc_2d_diazFile,' ',
                0114      &                          Pc_0_diaz_2d, 0, myThid)
                0115         _EXCH_XY_RL(Pc_0_diaz_2d,myThid)
                0116         ENDIF
                0117         IF (   bling_alpha_photo2dFile .NE. ' ' ) THEN
                0118            CALL READ_FLD_XY_RL( bling_alpha_photo2dFile, ' ',
                0119      &                          alpha_photo_2d, 0, myThid )
                0120         _EXCH_XY_RL(alpha_photo_2d,myThid)
                0121         ENDIF
                0122         IF ( bling_k_Fe_diaz2dFile .NE. ' ' ) THEN
                0123            CALL READ_FLD_XY_RL( bling_k_Fe_diaz2dFile, ' ',
                0124      &                          k_Fe_diaz_2d, 0, myThid )
                0125         _EXCH_XY_RL(k_Fe_diaz_2d,myThid)
af8f3b9ffc Matt*0126         ENDIF
e0f9a7ba0b Matt*0127 #endif
47de7c1e0e Matt*0128 
82e538d851 aver*0129 #ifdef ADVECT_PHYTO
                0130        DO bj = myByLo(myThid), myByHi(myThid)
                0131         DO bi = myBxLo(myThid), myBxHi(myThid)
                0132          DO k=1,Nr
                0133           DO j=1-OLy,sNy+OLy
                0134            DO i=1-OLx,sNx+OLx
                0135             phyto_sm(i,j,k,bi,bj)   = 0.5 _d 0
                0136             phyto_lg(i,j,k,bi,bj)   = 0.5 _d 0
                0137             phyto_diaz(i,j,k,bi,bj) = 0. _d 0
                0138            ENDDO
                0139           ENDDO
                0140          ENDDO
                0141         ENDDO
                0142        ENDDO
                0143 #else
                0144 C     Read phyto plankton abundance ICs and exchange
54b6d6aa91 Matt*0145       IF (nIter0.EQ.PTRACERS_Iter0) THEN
                0146         IF ( bling_psmFile .NE. ' ' ) THEN
                0147          CALL READ_FLD_XYZ_RL(bling_psmFile,' ',
                0148      &        phyto_sm(1-OLx,1-OLy,1,1,1),0,myThid)
                0149          _EXCH_XYZ_RL(phyto_sm(1-OLx,1-OLy,1,1,1),myThid)
                0150         ENDIF
                0151         IF (bling_plgFile .NE. ' ' ) THEN
                0152          CALL READ_FLD_XYZ_RL(bling_plgFile,' ',
                0153      &        phyto_lg(1-OLx,1-OLy,1,1,1),0,myThid)
                0154          _EXCH_XYZ_RL(phyto_lg(1-OLx,1-OLy,1,1,1),myThid)
                0155         ENDIF
e0f9a7ba0b Matt*0156 #ifndef USE_BLING_V1
54b6d6aa91 Matt*0157         IF ( bling_PdiazFile .NE. ' ' ) THEN
                0158          CALL READ_FLD_XYZ_RL(bling_pdiazFile,' ',
                0159      &        phyto_diaz(1-OLx,1-OLy,1,1,1),0,myThid)
                0160          _EXCH_XYZ_RL(phyto_diaz(1-OLx,1-OLy,1,1,1),myThid)
                0161         ENDIF
e0f9a7ba0b Matt*0162 #endif
54b6d6aa91 Matt*0163       ENDIF
82e538d851 aver*0164 #endif /* ifdef ADVECT_PHYTO */
54b6d6aa91 Matt*0165 C     Apply mask
                0166        DO bj = myByLo(myThid), myByHi(myThid)
                0167         DO bi = myBxLo(myThid), myBxHi(myThid)
                0168          DO k=1,Nr
                0169           DO j=1-OLy,sNy+OLy
                0170            DO i=1-OLx,sNx+OLx
                0171             IF (maskC(i,j,k,bi,bj).EQ.0.) THEN
                0172              phyto_sm(i,j,k,bi,bj)   = 0. _d 0
                0173              phyto_lg(i,j,k,bi,bj)   = 0. _d 0
e0f9a7ba0b Matt*0174 #ifndef USE_BLING_V1
54b6d6aa91 Matt*0175              phyto_diaz(i,j,k,bi,bj) = 0. _d 0
e0f9a7ba0b Matt*0176 #endif
54b6d6aa91 Matt*0177             ENDIF
                0178            ENDDO
                0179           ENDDO
                0180          ENDDO
                0181         ENDDO
                0182        ENDDO
                0183 
                0184 C      IF ( nIter0.GT.PTRACERS_Iter0 .OR.
                0185 C     &    (nIter0.EQ.PTRACERS_Iter0 .AND. pickupSuff.NE.' ')
                0186 C IF ABOVE TRUE phyto READ FROM PICKUP AND OVERWRITES IC READ
                0187 C PICKUP CALLED FROM bling_carbonate_init.F
                0188 C
                0189 
c0d1c06c15 Matt*0190 #endif /* ALLOW_BLING */
                0191 
                0192       RETURN
                0193       END