File indexing completed on 2023-11-08 06:10:16 UTC
view on githubraw 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