** Warning **
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.
Last-Modified: Thu, 17 Sep 2025 05:09:17 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/dic/dic_ini_forcing.F
File indexing completed on 2023-11-08 06:10:16 UTC
view on github raw file Latest commit 51e381e9 on 2023-11-07 18:00:07 UTC
e547c854e1 Step* 0001 #include "DIC_OPTIONS.h "
0002
08536d17ba Step* 0003
254eed5bf2 Davi* 0004
08536d17ba Step* 0005
0006
e547c854e1 Step* 0007 SUBROUTINE DIC_INI_FORCING ( myThid )
0008
08536d17ba Step* 0009
0010
441b6e8b14 Step* 0011
e547c854e1 Step* 0012
08536d17ba Step* 0013
0014 IMPLICIT NONE
e547c854e1 Step* 0015 #include "SIZE.h "
0016 #include "EEPARAMS.h "
0017 #include "PARAMS.h "
0018 #include "GRID.h "
2ef8966791 Davi* 0019 #include "DIC_VARS.h "
e547c854e1 Step* 0020 #include "DIC_LOAD.h "
0021
08536d17ba Step* 0022
0023
e547c854e1 Step* 0024 INTEGER myThid
08536d17ba Step* 0025
e547c854e1 Step* 0026
63d67d9eeb Jean* 0027 #ifdef ALLOW_DIC
441b6e8b14 Step* 0028
51e381e9c9 Jean* 0029
0030 INTEGER bi , bj , i , j
0031 INTEGER intimeP , intime0 , intime1
0032 _RL aWght , bWght
2e3e8c330d Jona* 0033 #ifdef DIC_CALCITE_SAT
0034 INTEGER k
0035 #endif
c845fbfeae Jean* 0036
51e381e9c9 Jean* 0037
63d67d9eeb Jean* 0038 DO bj = myByLo (myThid ), myByHi (myThid )
0039 DO bi = myBxLo (myThid ), myBxHi (myThid )
51e381e9c9 Jean* 0040
0041
0042 DO j =1-OLy ,sNy +OLy
0043 DO i =1-OLx ,sNx +OLx
0044 wind (i ,j ,bi ,bj ) = 0. _d 0
0045 fIce (i ,j ,bi ,bj ) = 0. _d 0
0046 AtmosP (i ,j ,bi ,bj ) = 0. _d 0
0047 silicaSurf (i ,j ,bi ,bj ) = 0. _d 0
0048 #ifdef DIC_BIOTIC
0049 par (i ,j ,bi ,bj ) = 0. _d 0
0050 CHL (i ,j ,bi ,bj ) = 0. _d 0
0051 InputFe (i ,j ,bi ,bj ) = 0. _d 0
0052 #endif
0053 ENDDO
0054 ENDDO
0055 #ifdef DIC_CALCITE_SAT
0056 DO k =1,Nr
0057 DO j =1-OLy ,sNy +OLy
0058 DO i =1-OLx ,sNx +OLx
0059 silicaDeep (i ,j ,k ,bi ,bj ) = 0. _d 0
0060 ENDDO
0061 ENDDO
0062 ENDDO
0063 #endif
0064
0065
0066 DIC_ldRec (bi ,bj ) = 0
0067 DO j =1-OLy ,sNy +OLy
0068 DO i =1-OLx ,sNx +OLx
0069 dicwind0 (i ,j ,bi ,bj ) = 0. _d 0
0070 dicwind1 (i ,j ,bi ,bj ) = 0. _d 0
0071 atmosp0 (i ,j ,bi ,bj ) = 0. _d 0
0072 atmosp1 (i ,j ,bi ,bj ) = 0. _d 0
0073 silicaSurf0 (i ,j ,bi ,bj ) = 0. _d 0
0074 silicaSurf1 (i ,j ,bi ,bj ) = 0. _d 0
0075 ice0 (i ,j ,bi ,bj ) = 0. _d 0
0076 ice1 (i ,j ,bi ,bj ) = 0. _d 0
9b8a71f139 Step* 0077 #ifdef READ_PAR
51e381e9c9 Jean* 0078 par0 (i ,j ,bi ,bj ) = 0. _d 0
0079 par1 (i ,j ,bi ,bj ) = 0. _d 0
9b8a71f139 Step* 0080 #endif
9e77a98ea8 Jean* 0081 #ifdef ALLOW_FE
51e381e9c9 Jean* 0082 feinput0 (i ,j ,bi ,bj ) = 0. _d 0
0083 feinput1 (i ,j ,bi ,bj ) = 0. _d 0
9e77a98ea8 Jean* 0084 #endif
0085 #ifdef LIGHT_CHL
51e381e9c9 Jean* 0086 chlinput (i ,j ,bi ,bj ) = 0. _d 0
9e77a98ea8 Jean* 0087 #endif
51e381e9c9 Jean* 0088 ENDDO
0089 ENDDO
2e3e8c330d Jona* 0090 #ifdef DIC_CALCITE_SAT
a1d0e455fd Hann* 0091 DO k =1,Nr
0092 DO j =1-OLy ,sNy +OLy
0093 DO i =1-OLx ,sNx +OLx
0094 silicaDeep0 (i ,j ,k ,bi ,bj ) = 0. _d 0
0095 silicaDeep1 (i ,j ,k ,bi ,bj ) = 0. _d 0
0096 ENDDO
0097 ENDDO
0098 ENDDO
51e381e9c9 Jean* 0099 #endif
0100
a1d0e455fd Hann* 0101 ENDDO
0102 ENDDO
e547c854e1 Step* 0103
51e381e9c9 Jean* 0104
e393d3c4a7 Step* 0105
51e381e9c9 Jean* 0106
0107 DO bj = myByLo (myThid ), myByHi (myThid )
0108 DO bi = myBxLo (myThid ), myBxHi (myThid )
c8a76e9bb9 Jean* 0109 DO j =1-OLy ,sNy +OLy
0110 DO i =1-OLx ,sNx +OLx
51e381e9c9 Jean* 0111 wind (i ,j ,bi ,bj ) = 5. _d 0*maskC (i ,j ,1,bi ,bj )
2e3e8c330d Jona* 0112 AtmosP (i ,j ,bi ,bj ) = 1. _d 0*maskC (i ,j ,1,bi ,bj )
a1d0e455fd Hann* 0113 silicaSurf (i ,j ,bi ,bj ) = 7.6838 _d -3*maskC (i ,j ,1,bi ,bj )
2e3e8c330d Jona* 0114 fIce (i ,j ,bi ,bj ) = 0. _d 0
441b6e8b14 Step* 0115 #ifdef READ_PAR
51e381e9c9 Jean* 0116 par (i ,j ,bi ,bj ) = 100. _d 0*maskC (i ,j ,1,bi ,bj )
441b6e8b14 Step* 0117 #endif
9e77a98ea8 Jean* 0118 #ifdef LIGHT_CHL
0119
2e3e8c330d Jona* 0120 CHL (i ,j ,bi ,bj ) = 1. _d -2*maskC (i ,j ,1,bi ,bj )
9e77a98ea8 Jean* 0121 #endif
441b6e8b14 Step* 0122 #ifdef ALLOW_FE
2e3e8c330d Jona* 0123 InputFe (i ,j ,bi ,bj ) = 1. _d -11*maskC (i ,j ,1,bi ,bj )
441b6e8b14 Step* 0124 #endif
0125 ENDDO
0126 ENDDO
2e3e8c330d Jona* 0127 #ifdef DIC_CALCITE_SAT
0128 IF ( useCalciteSaturation ) THEN
0129 DO k =1,Nr
0130 DO j =1-OLy ,sNy +OLy
0131 DO i =1-OLx ,sNx +OLx
0132 silicaDeep (i ,j ,k ,bi ,bj ) = 3. _d -2*maskC (i ,j ,k ,bi ,bj )
0133 ENDDO
a1d0e455fd Hann* 0134 ENDDO
0135 ENDDO
2e3e8c330d Jona* 0136 ENDIF
0137 #endif
a1d0e455fd Hann* 0138
441b6e8b14 Step* 0139 ENDDO
51e381e9c9 Jean* 0140 ENDDO
0141
0142
0143
0144
0145
0146 IF ( DIC_windFile .NE. ' ' ) THEN
0147 CALL READ_REC_XY_RL ( DIC_windFile , wind ,
0148 & 1, nIter0 , myThid )
0149 _EXCH_XY_RL ( wind , myThid )
0150 ENDIF
0151 IF ( DIC_atmospFile .NE. ' ' ) THEN
0152 CALL READ_REC_XY_RL ( DIC_atmospFile , AtmosP ,
0153 & 1, nIter0 , myThid )
0154 _EXCH_XY_RL ( AtmosP , myThid )
0155 ENDIF
0156 IF ( DIC_silicaFile .NE. ' ' ) THEN
0157 CALL READ_REC_XY_RL ( DIC_silicaFile , silicaSurf ,
0158 & 1, nIter0 , myThid )
0159 _EXCH_XY_RL ( silicaSurf , myThid )
0160 ENDIF
0161 IF ( DIC_iceFile .NE. ' ' ) THEN
0162 CALL READ_REC_XY_RL ( DIC_iceFile , fIce ,
0163 & 1, nIter0 , myThid )
0164 _EXCH_XY_RL ( fIce , myThid )
0165 ENDIF
0166 #ifdef DIC_BIOTIC
0167
0168 IF ( DIC_parFile .NE. ' ' ) THEN
0169 CALL READ_REC_XY_RL ( DIC_parFile , par ,
0170 & 1, nIter0 , myThid )
0171 _EXCH_XY_RL ( par , myThid )
0172 ENDIF
0173
0174
0175
0176 IF ( DIC_chlaFile .NE. ' ' ) THEN
0177 CALL READ_REC_XY_RL ( DIC_chlaFile , CHL ,
0178 & 1, nIter0 , myThid )
0179 _EXCH_XY_RL ( CHL , myThid )
0180 ENDIF
0181
0182
0183 IF ( DIC_ironFile .NE. ' ' ) THEN
0184 CALL READ_REC_XY_RL ( DIC_ironFile , InputFe ,
0185 & 1, nIter0 , myThid )
0186 _EXCH_XY_RL ( InputFe , myThid )
0187 ENDIF
0188
0189 #endif /* DIC_BIOTIC */
0190 #ifdef DIC_CALCITE_SAT
0191 IF ( useCalciteSaturation .AND.
0192 & DIC_deepSilicaFile .NE. ' ' ) THEN
0193 CALL READ_REC_XYZ_RL ( DIC_deepSilicaFile , silicaDeep ,
0194 & 1, nIter0 , myThid )
0195 _EXCH_XYZ_RL ( silicaDeep , myThid )
0196 ENDIF
0197 #endif
0198
0199
0200
0201
0202 IF ( DIC_forcingCycle .GT. zeroRL ) THEN
0203
0204
0205
0206
0207
0208
0209
0210 CALL GET_PERIODIC_INTERVAL (
0211 O intimeP , intime0 , intime1 , bWght , aWght ,
0212 I DIC_forcingCycle , DIC_forcingPeriod ,
0213 I deltaTClock , startTime , myThid )
0214
0215 _BARRIER
0216 _BEGIN_MASTER (myThid )
0217 WRITE (standardMessageUnit ,'(A,I10,A,2(2I5,A))' )
0218 & ' DIC_INI_FORCING, it=' , nIter0 ,
0219 & ' : Reading new data, i0,i1=' , intime0 , intime1
0220 _END_MASTER (myThid )
0221
0222 IF ( DIC_silicaFile .NE. ' ' ) THEN
0223
0224 CALL READ_REC_XY_RS ( DIC_silicaFile ,silicaSurf0 ,intime0 ,
0225 & nIter0 ,myThid )
0226 CALL READ_REC_XY_RS ( DIC_silicaFile ,silicaSurf1 ,intime1 ,
0227 & nIter0 ,myThid )
0228 DO bj = myByLo (myThid ), myByHi (myThid )
0229 DO bi = myBxLo (myThid ), myBxHi (myThid )
0230 DO j =1-OLy ,sNy +OLy
0231 DO i =1-OLx ,sNx +OLx
0232 silicaSurf (i ,j ,bi ,bj ) = bWght *silicaSurf0 (i ,j ,bi ,bj )
0233 & + aWght *silicaSurf1 (i ,j ,bi ,bj )
0234 ENDDO
0235 ENDDO
0236 ENDDO
0237 ENDDO
0238 #ifndef ALLOW_AUTODIFF
0239 #ifdef DIC_CALCITE_SAT
0240 ELSEIF ( DIC_deepSilicaFile .NE. ' ' ) THEN
0241
0242 k = 1
0243 CALL READ_REC_XYZ_RS ( DIC_deepSilicaFile , silicaDeep0 ,
0244 & intime0 , nIter0 , myThid )
0245 CALL READ_REC_XYZ_RS ( DIC_deepSilicaFile , silicaDeep1 ,
0246 & intime1 , nIter0 , myThid )
0247 DO bj = myByLo (myThid ), myByHi (myThid )
0248 DO bi = myBxLo (myThid ), myBxHi (myThid )
0249 DO j =1-OLy ,sNy +OLy
0250 DO i =1-OLx ,sNx +OLx
0251 silicaSurf (i ,j ,bi ,bj ) = bWght *silicaDeep0 (i ,j ,k ,bi ,bj )
0252 & + aWght *silicaDeep1 (i ,j ,k ,bi ,bj )
0253 ENDDO
0254 ENDDO
0255 ENDDO
0256 ENDDO
0257 #endif /* DIC_CALCITE_SAT */
0258 #endif /* ndef ALLOW_AUTODIFF */
0259 ENDIF
0260 _EXCH_XY_RL ( silicaSurf , myThid )
0261
0262
0263 ENDIF
441b6e8b14 Step* 0264
63d67d9eeb Jean* 0265 #endif /* ALLOW_DIC */
e547c854e1 Step* 0266 RETURN
0267 END