Changeset 617 for trunk/NEMO/TOP_SRC
- Timestamp:
- 2007-02-21T14:03:10+01:00 (17 years ago)
- Location:
- trunk/NEMO/TOP_SRC
- Files:
-
- 1 deleted
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/SMS/p4zbio.F
r341 r617 42 42 INTEGER ji, jj, jk, jn 43 43 44 REAL zdenom,zdenom1(jpi,jpj,jpk) ,zdenom2(jpi,jpj,jpk)44 REAL zdenom,zdenom1(jpi,jpj,jpk) 45 45 REAL prodca,ztemp 46 47 #if ! defined key_trc_kriest 48 REAL zdenom2(jpi,jpj,jpk) 49 #else 50 REAL znumpoc, znumdoc 51 #endif 46 52 C 47 53 REAL prodt … … 51 57 C OF PHYTOPLANKTON AND DETRITUS 52 58 C 53 zdiss=0.0159 zdiss(:,:,:) = 0.01 54 60 C 55 61 DO jk=1,jpkm1 … … 67 73 DO jj=1,jpj 68 74 DO ji=1,jpi 75 #if ! defined key_trc_kriest 69 76 zdenom=1./(trn(ji,jj,jk,jppoc)+trn(ji,jj,jk,jpgoc) 70 77 $ +trn(ji,jj,jk,jpdsi)+trn(ji,jj,jk,jpcal)+rtrn) … … 72 79 zdenom1(ji,jj,jk)=trn(ji,jj,jk,jppoc)*zdenom 73 80 zdenom2(ji,jj,jk)=trn(ji,jj,jk,jpgoc)*zdenom 81 82 #else 83 zdenom=1./(trn(ji,jj,jk,jppoc) 84 $ +trn(ji,jj,jk,jpdsi)+trn(ji,jj,jk,jpcal)+rtrn) 85 zdenom1(ji,jj,jk)=trn(ji,jj,jk,jppoc)*zdenom 86 87 #endif 74 88 END DO 75 89 END DO … … 93 107 94 108 C 109 C Call subroutine for computation of the vertical flux 110 C of particulate organic matter 111 C ---------------------------------------------------- 112 C 113 CALL p4zsink 114 115 C 95 116 C Call optical routine to compute the PAR in the water column 96 117 C ----------------------------------------------------------- … … 124 145 CALL p4zmicro 125 146 CALL p4zmeso 126 C 127 C Call subroutine for computation of the vertical flux 128 C of particulate organic matter 129 C ---------------------------------------------------- 130 C 131 CALL p4zsink 132 C 147 148 C 133 149 C Call subroutine for computation of remineralization 134 150 C terms of organic matter+scavenging of Fe … … 220 236 END DO 221 237 222 DO jk = 1,jpkm1223 DO jj = 1,jpj224 DO ji = 1,jpi225 C226 C Evolution of DOC227 C ----------------228 C229 trn(ji,jj,jk,jpdoc) = trn(ji,jj,jk,jpdoc)230 & +orem(ji,jj,jk)+excret2*prorca2(ji,jj,jk)231 & +excret*prorca(ji,jj,jk)-olimi(ji,jj,jk)-denitr(ji,jj,jk)232 & +grarem(ji,jj,jk)*(1.-sigma1)+grarem2(ji,jj,jk)233 & *(1.-sigma2)-xaggdoc(ji,jj,jk)-xaggdoc2(ji,jj,jk)234 END DO235 END DO236 END DO237 238 DO jk = 1,jpkm1239 DO jj = 1,jpj240 DO ji = 1,jpi241 C242 C Evolution of Detritus243 C ---------------------244 C245 trn(ji,jj,jk,jppoc) = trn(ji,jj,jk,jppoc)246 & -grazpoc(ji,jj,jk)+grapoc(ji,jj,jk)-grazm(ji,jj,jk)247 & +respz(ji,jj,jk)-xagg(ji,jj,jk)+xaggdoc(ji,jj,jk)248 & +(1.-0.5*zfracal(ji,jj,jk))*(tortp(ji,jj,jk)249 & +respp(ji,jj,jk))+0.5*tortp2(ji,jj,jk)250 & +orem2(ji,jj,jk)+tortz(ji,jj,jk)-orem(ji,jj,jk)251 C252 C Evolution of rapid Detritus253 C ---------------------254 C255 trn(ji,jj,jk,jpgoc) = trn(ji,jj,jk,jpgoc)256 & +grapoc2(ji,jj,jk)+respp2(ji,jj,jk)+xagg(ji,jj,jk)257 & +tortz2(ji,jj,jk)+respz2(ji,jj,jk)-orem2(ji,jj,jk)258 & +0.5*zfracal(ji,jj,jk)*(respp(ji,jj,jk)+tortp(ji,jj,jk))259 & +0.5*tortp2(ji,jj,jk)+xaggdoc2(ji,jj,jk)-grazffe(ji,jj,jk)260 C261 END DO262 END DO263 END DO264 238 265 239 DO jk = 1,jpkm1 … … 279 253 END DO 280 254 END DO 281 255 282 256 283 257 DO jk = 1,jpkm1 … … 298 272 END DO 299 273 300 DO jk = 1,jpkm1 301 DO jj = 1,jpj 302 DO ji = 1,jpi 303 C 304 C Evolution of small biogenic Iron 305 C -------------------------- 306 C 307 trn(ji,jj,jk,jpsfe) = trn(ji,jj,jk,jpsfe) 308 & +unass*(grazpf(ji,jj,jk)+grazsf(ji,jj,jk)) 309 & -grazpof(ji,jj,jk)-(1.-unass)*grazmf(ji,jj,jk) 310 & +(1.-0.5*zfracal(ji,jj,jk))*(tortnf(ji,jj,jk) 311 & +respnf(ji,jj,jk))+0.5*tortdf(ji,jj,jk)+ferat3* 312 & (tortz(ji,jj,jk)+respz(ji,jj,jk))-ofer(ji,jj,jk) 313 & +ofer2(ji,jj,jk)-xaggfe(ji,jj,jk) 314 & +xscave(ji,jj,jk)*zdenom1(ji,jj,jk) 315 C 316 C Evolution of big biogenic Iron 317 C -------------------------- 318 C 319 trn(ji,jj,jk,jpbfe) = trn(ji,jj,jk,jpbfe) 320 & +unass2*(graznf(ji,jj,jk)+grazf(ji,jj,jk)+grazfff(ji,jj,jk) 321 & +grazpof(ji,jj,jk)+ferat3*grazz(ji,jj,jk))+ferat3* 322 & (tortz2(ji,jj,jk)+respz2(ji,jj,jk))-ofer2(ji,jj,jk) 323 & +0.5*zfracal(ji,jj,jk)*(respnf(ji,jj,jk)+tortnf(ji,jj,jk)) 324 & +0.5*tortdf(ji,jj,jk)+respdf(ji,jj,jk)+xaggfe(ji,jj,jk) 325 & +xbactfer(ji,jj,jk)-grazfff(ji,jj,jk)+xscave(ji,jj,jk) 326 & *zdenom2(ji,jj,jk) 327 END DO 328 END DO 329 END DO 274 275 #if defined key_trc_kriest 276 277 #include "p4zbio.kriest.h" 278 279 #else 280 281 #include "p4zbio.std.h" 282 283 #endif 284 285 330 286 331 287 DO jk = 1,jpkm1 … … 405 361 C 406 362 prcaca(ji,jj,jk)= 407 & zfracal(ji,jj,jk)*( 0.5*(unass*grazp(ji,jj,jk)+363 & zfracal(ji,jj,jk)*(part*(unass*grazp(ji,jj,jk)+ 408 364 & unass2*grazn(ji,jj,jk))+tortp(ji,jj,jk)+respp(ji,jj,jk)) 409 365 C … … 470 426 trc3d(:,:,:,9)=prorca3(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 471 427 trc3d(:,:,:,10)=prorca4(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 428 #if ! defined key_trc_kriest 472 429 trc3d(:,:,:,11)=prorca5(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 430 #else 431 trc3d(:,:,:,11)=prcaca(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 432 #endif 473 433 # endif 474 434 C -
trunk/NEMO/TOP_SRC/SMS/p4zche.F
r341 r617 14 14 CCC PURPOSE. 15 15 CCC -------- 16 CCC *P4ZCHE* SETS CHEMICAL CONSTANTS16 CCC *P4ZCHE* : Sea water chemistry computed following OCMIP protocol 17 17 CCC 18 18 CCC … … 27 27 CC modifications : 1999 C. Le Quere 28 28 CC modifications : 2004 O. Aumont 29 CC modifications : 2006 R. Gangsto 29 30 CC---------------------------------------------------------------------- 30 31 CC parameters and commons … … 45 46 REAL pres, tc, cl, cpexp, cek0, oxy, cpexp2 46 47 REAL zsqrt, ztr, zlogt, cek1 47 REAL zqtt, qtt2, sal15, zis, zis2 48 REAL zqtt, qtt2, sal15, zis, zis2, zisqrt 48 49 REAL ckb, ck1, ck2, ckw, ak1, ak2, akb, aksp0, akw 50 REAL ckp1, ckp2, ckp3, cksi, akp1, akp2, akp3, aksi 51 REAL st, ft, cks, ckf, aks, akf, aksp1 52 49 53 C 50 54 C* 1. CHEMICAL CONSTANTS - SURFACE LAYER … … 110 114 zis = 19.924*sal/(1000.-1.005*sal) 111 115 zis2 = zis*zis 116 zisqrt = sqrt(zis) 112 117 tc = tn(ji,jj,jk) + (1.-tmask(ji,jj,jk))*20. 113 118 C … … 116 121 C 117 122 cl = sal*salchl 123 C 124 C* 2.4 TOTAL SULFATE CONCENTR. [MOLES/kg soln] 125 C -------------------------------------------- 126 C 127 st = st1*cl*st2 128 C 129 C* 2.5 TOTAL FLUORIDE CONCENTR. [MOLES/kg soln] 130 C --------------------------------------------- 131 C 132 ft = ft1*cl*ft2 133 C 134 C* 2.6 DISSOCIATION CONSTANT FOR SULFATES 135 C on free H scale (Dickson 1990) 136 C ------------------------------------------------------- 137 C 138 cks=exp(ks1*ztr+ks0+ks2*zlogt+(ks3*ztr+ks4+ks5*zlogt) 139 & *zisqrt+(ks6*ztr+ks7+ks8*zlogt)*zis+ks9*ztr*zis 140 & *zisqrt+ks10*ztr*zis2+log(ks11+ks12*sal)) 141 C 142 C* 2.7 DISSOCIATION CONSTANT FOR FLUORIDES 143 C on free H scale (Dickson and Riley 79) 144 C ------------------------------------------------------- 145 C 146 ckf=exp(kf1*ztr+kf0+kf2*zisqrt+log(kf3+kf4*sal)) 147 118 148 C 119 149 C* 2.4 DISSOCIATION CONSTANT FOR CARBONATE AND BORATE … … 123 153 & +(cb5+cb6*zsqrt+cb7*sal)+ 124 154 & (cb8+cb9*zsqrt+cb10*sal)*zlogt+cb11*zsqrt*tkel 155 & +log((1.+st/cks+ft/ckf)/(1.+st/cks)) 125 156 ck1 = c10*ztr+c11+c12*zlogt+c13*sal+c14*sal**2 126 157 ck2 = c20*ztr+c21+c22*sal+c23*sal**2 … … 131 162 ckw = cw0*ztr+cw1+cw2*zlogt+(cw3*ztr+cw4+cw5*zlogt)* 132 163 & zsqrt+cw6*sal 164 165 C 166 C 167 C* 2.10 DISSOCIATION CONSTANT FOR PHOSPHATE AND SILICATE (seawater scale) 168 C --------------------------------------------------------------------- 169 C 170 ckp1 = cp10+cp11*ztr+cp12*zlogt+zsqrt*(cp13*ztr 171 & +cp14)+sal*(cp15*ztr+cp16) 172 ckp2 = cp20+cp21*ztr+cp22*zlogt+zsqrt*(cp23*ztr 173 & +cp24)+sal*(cp25*ztr+cp26) 174 ckp3 = cp30+cp31*ztr+zsqrt*(cp32*ztr 175 & +cp33)+sal*(cp34*ztr+cp35) 176 cksi = cs10+cs11*ztr+cs12*zlogt+zisqrt*(cs13*ztr 177 & +cs14)+zis*(cs15*ztr+cs16)+zis2*(cs17*ztr 178 & +cs18)+log(1.+cs19*sal) 179 & +log(cs20+cs21*sal) 180 133 181 C 134 182 C* 2.6 K1, K2 OF CARBONIC ACID, KB OF BORIC ACID, KW (H2O) (LIT.?) 135 183 C ----------------------------------------------------------------- 136 184 C 137 ak1 = 10**(ck1) 138 ak2 = 10**(ck2) 139 akb = exp(ckb) 140 akw = exp(ckw) 185 ak1 = 10**(ck1) 186 ak2 = 10**(ck2) 187 akb = exp(ckb) 188 akp1 = exp(ckp1) 189 akp2 = exp(ckp2) 190 akp3 = exp(ckp3) 191 aksi = exp(cksi) 192 akw = exp(ckw) 193 aksp1 = 10**(aksp0) 194 aks = exp(cks) 195 akf = exp(ckf) 196 197 141 198 C 142 199 C*2.7 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE IN SEAWATER 143 200 C (S=27-43, T=2-25 DEG C) AT pres =0 (ATMOSPH. PRESSURE) 144 C ( INGLE, 1800, EQ. 6)201 C (MUCCI 1983) 145 202 C ------------------------------------------------------------- 146 203 C 147 aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log10(sal) 148 & +akcc4*tkel*tkel) 204 aksp0 = akcc1+akcc2*tkel+akcc3*ztr+akcc4*log10(tkel)+ 205 & (akcc5+akcc6*tkel+ 206 & akcc7*ztr)*zsqrt+akcc8*sal+akcc9*sal15 207 149 208 C 150 209 C* 2.8 FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) … … 183 242 zbuf1 = -(devk1(4)+devk2(4)*tc+devk3(4)*tc*tc) 184 243 zbuf2 = 0.5*(devk4(4)+devk5(4)*tc) 244 akp13(ji,jj,jk) = akp1*exp(zbuf1*cpexp+zbuf2*cpexp2) 245 246 zbuf1 = -(devk1(5)+devk2(5)*tc+devk3(5)*tc*tc) 247 zbuf2 = 0.5*(devk4(5)+devk5(5)*tc) 248 akp23(ji,jj,jk) = akp2*exp(zbuf1*cpexp+zbuf2*cpexp2) 249 250 zbuf1 = -(devk1(6)+devk2(6)*tc+devk3(6)*tc*tc) 251 zbuf2 = 0.5*(devk4(6)+devk5(6)*tc) 252 akp33(ji,jj,jk) = akp3*exp(zbuf1*cpexp+zbuf2*cpexp2) 253 254 zbuf1 = -(devk1(7)+devk2(7)*tc+devk3(7)*tc*tc) 255 zbuf2 = 0.5*(devk4(7)+devk5(7)*tc) 185 256 akw3(ji,jj,jk) = akw*exp(zbuf1*cpexp+zbuf2*cpexp2) 186 C 187 C 2.10 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE (OR ARAGONITE) 188 C AS FUNCTION OF PRESSURE FOLLWING EDMOND AND GIESKES (1970) 257 258 C Ksi 259 C aksi3(ji,jj,jk) = aksi 260 C 261 C Or using coefficient of borates (cf millero 95+ corrected version html doc co2sys) 262 C "deltaVsi and deltaKsi have been estimated from the value of boric acid" 263 C 264 zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc) 265 zbuf2 = 0.5*(devk4(3)+devk5(3)*tc) 266 aksi3(ji,jj,jk) = aksi*exp(zbuf1*cpexp+zbuf2*cpexp2) 267 268 C 269 C 270 C* 2.15 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE 271 C AS FUNCTION OF PRESSURE FOLLOWING MILLERO 189 272 C (P. 1285) AND BERNER (1976) 190 C ----------------------------------------------------------------- 191 C 192 aksp(ji,jj,jk) = aksp0*exp(cpexp*(devks-devkst*tc)) 273 C ------------------------------------------------- 274 275 zbuf1 = -(devk1(8)+devk2(8)*tc+devk3(8)*tc*tc) 276 zbuf2 = 0.5*(devk4(8)+devk5(8)*tc) 277 aksp(ji,jj,jk) = aksp1*exp(zbuf1*cpexp+zbuf2*cpexp2) 278 279 C Pressure correction for sulfate and fluoride 280 C 281 zbuf1 = -(devk1(9)+devk2(9)*tc+devk3(9)*tc*tc) 282 zbuf2 = 0.5*(devk4(9)+devk5(9)*tc) 283 aks3(ji,jj,jk) = aks*exp(zbuf1*cpexp+zbuf2*cpexp2) 284 285 zbuf1 = -(devk1(10)+devk2(10)*tc+devk3(10)*tc*tc) 286 zbuf2 = 0.5*(devk4(10)+devk5(10)*tc) 287 akf3(ji,jj,jk) = akf*exp(zbuf1*cpexp+zbuf2*cpexp2) 288 289 193 290 C 194 291 C* 2.11 TOTAL BORATE CONCENTR. [MOLES/L] -
trunk/NEMO/TOP_SRC/SMS/p4zflx.F
r502 r617 43 43 INTEGER nspyr, ji, jj, krorr 44 44 REAL zpdtan 45 REAL kgco2(jpi,jpj),kgo2(jpi,jpj) 45 REAL kgco2(jpi,jpj),kgo2(jpi,jpj),h2co3(jpi,jpj) 46 46 REAL ttc, ws 47 47 REAL fld, flu, oxy16, flu16, zfact … … 56 56 zpdtan = raass / rdt 57 57 nspyr = nint(zpdtan) 58 58 59 C 59 60 C* 1.1 SURFACE CHEMISTRY (PCO2 AND [H+] IN -
trunk/NEMO/TOP_SRC/SMS/p4zlim.F
r341 r617 126 126 & +concdfe(ji,jj,jk)) 127 127 xlimdia(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4) 128 xlim4=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)+conc3)129 xlimdia2(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4)130 128 C 131 129 END DO -
trunk/NEMO/TOP_SRC/SMS/p4zlys.F
r341 r617 44 44 INTEGER ji, jj, jk, jn 45 45 REAL zbot, zalk, zdic, zph, remco3, ah2 46 REAL delco3, excess, dispot, zfact, zalka 46 REAL dispot, zfact, zalka 47 REAL omegaca, excess, excess0 48 REAL co3(jpi,jpj,jpk) 47 49 C 48 50 C … … 114 116 C ------------------------------------------------ 115 117 C 116 delco3 = co3(ji,jj,jk)-aksp(ji,jj,jk)/calcon 118 omegaca = ( calcon * co3(ji,jj,jk) )/aksp(ji,jj,jk) 119 117 120 C 118 121 C* 2.2 SET DEGREE OF UNDER-/SUPERSATURATION 119 122 C ------------------------------------------ 120 123 C 121 excess = max(0.,-delco3) 124 excess0 = max(0.,(1.-omegaca)) 125 excess = excess0**nca 126 122 127 C 123 128 C* 2.3 AMOUNT CACO3 (12C) THAT RE-ENTERS SOLUTION … … 126 131 C -------------------------------------------------------------- 127 132 C 128 dispot = trn(ji,jj,jk,jpcal)* 129 & excess/(dispo0+excess) 133 dispot = kdca * excess * trn(ji,jj,jk,jpcal) 130 134 # if defined key_off_degrad 131 135 & *facvol(ji,jj,jk) 132 136 # endif 137 133 138 C 134 139 C* 2.4 CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3], -
trunk/NEMO/TOP_SRC/SMS/p4zmeso.F
r341 r617 146 146 C ---------------------------------- 147 147 C 148 #if ! defined key_trc_kriest 148 149 grazffe(ji,jj,jk) = 5E3*zstep*wsbio4(ji,jj,jk) 149 150 & *tgfunc2(ji,jj,jk)*trn(ji,jj,jk,jpgoc)*trn(ji,jj,jk,jpmes) … … 154 155 grazfff(ji,jj,jk) = grazffe(ji,jj,jk) 155 156 & *trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn) 157 #else 158 C KRIEST3 159 grazffe(ji,jj,jk) = 0.5*1.3E-2/5.5E-7*0.3*zstep*wsbio3(ji,jj,jk) 160 & *tgfunc(ji,jj,jk)*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpmes) 161 & /(trn(ji,jj,jk,jppoc)*1E7+0.1) 162 # if defined key_off_degrad 163 & *facvol(ji,jj,jk) 164 # endif 165 166 167 C grazffe(ji,jj,jk) = 5E3*zstep*wsbio3(ji,jj,jk) 168 C & *tgfunc2(ji,jj,jk)*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpmes) 169 C# if defined key_off_degrad 170 C & *facvol(ji,jj,jk) 171 C# endif 172 grazfff(ji,jj,jk) = grazffe(ji,jj,jk) 173 & *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 174 #endif 175 176 156 177 C 157 178 END DO … … 169 190 & +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk)) 170 191 & *(1.-epsher2-unass2) 171 192 #if ! defined key_trc_kriest 172 193 grafer2(ji,jj,jk)=(grazf(ji,jj,jk)+graznf(ji,jj,jk) 173 194 & +grazz(ji,jj,jk)*ferat3+grazpof(ji,jj,jk) … … 182 203 & (trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn) 183 204 & -ferat3),0.)) 184 205 #else 206 grafer2(ji,jj,jk)=(grazf(ji,jj,jk)+graznf(ji,jj,jk) 207 & +grazz(ji,jj,jk)*ferat3+grazpof(ji,jj,jk) 208 & +grazfff(ji,jj,jk))*(1.-epsher2-unass2) 209 & +epsher2*(grazd(ji,jj,jk)*max( 210 & (trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn) 211 & -ferat3),0.)+grazn(ji,jj,jk)*max( 212 & (trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn) 213 & -ferat3),0.)+grazpoc(ji,jj,jk)*max( 214 & (trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 215 & -ferat3),0.)+grazffe(ji,jj,jk)*max( 216 & (trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 217 & -ferat3),0.)) 218 #endif 185 219 grapoc2(ji,jj,jk)=(grazd(ji,jj,jk)+grazz(ji,jj,jk) 186 220 & +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk))*unass2 -
trunk/NEMO/TOP_SRC/SMS/p4zprod.F
r341 r617 55 55 REAL prdia(jpi,jpj,jpk),prbio(jpi,jpj,jpk) 56 56 REAL etot2(jpi,jpj,jpk),pislopead2(jpi,jpj,jpk) 57 REAL xlim,silfac2,siborn,zprod ,zprod258 REAL zmxltst,zmxlday 57 REAL xlim,silfac2,siborn,zprod 58 REAL zmxltst,zmxlday,xlim1 59 59 C 60 60 C Computation of the optimal production … … 128 128 C 129 129 C 130 xlim1=trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)+xksi1) 130 131 xlim=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk) 131 132 C … … 134 135 & trn(ji,jj,jk,jppo4)/(concdnh4+trn(ji,jj,jk,jppo4)), 135 136 & xlim) 136 silfac=5.4*exp(-4.23*silim) +1.13137 silfac=5.4*exp(-4.23*silim)*max(0.,min(1.,2.2*(xlim1-0.5)))+1. 137 138 siborn=max(0.,(trn(ji,jj,jk,jpsil)-15.E-6)) 138 139 silfac2=1.+3.*siborn/(siborn+xksi2) 139 silfac=min( 7.6,silfac*silfac2)140 silfac=min(6.4,silfac*silfac2) 140 141 C 141 142 ysopt(ji,jj,jk)=grosip*trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil) … … 195 196 C ---------------------------------------------------------- 196 197 C 198 pislopen(ji,jj,jk)=pislopead(ji,jj,jk) 199 & *trn(ji,jj,jk,jpnch)/(rtrn+trn(ji,jj,jk,jpphy)*12.) 200 & /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimphy(ji,jj,jk))+rtrn) 201 197 202 prbiochl = prmax(ji,jj,jk) 198 203 & *(1.-exp(-pislopen(ji,jj,jk)*etot2(ji,jj,jk))) … … 206 211 C 207 212 zprod=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy) 208 & *xlimphy(ji,jj,jk)209 210 zprod2=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy)211 213 & *max(0.1,xlimphy(ji,jj,jk)) 212 214 … … 215 217 & +rtrn) 216 218 217 prorca6(ji,jj,jk) = chlcnm*144.*zprod 2/(pislopead(ji,jj,jk)218 & *etot2(ji,jj,jk)* max(trn(ji,jj,jk,jpnch),1.E-10)+rtrn)219 prorca6(ji,jj,jk) = chlcnm*144.*zprod/(pislopead(ji,jj,jk) 220 & *etot2(ji,jj,jk)*trn(ji,jj,jk,jpnch)+rtrn) 219 221 220 222 END DO … … 229 231 C ------------------------------------------------------- 230 232 C 233 pislope2n(ji,jj,jk)=pislopead2(ji,jj,jk) 234 & *trn(ji,jj,jk,jpdch)/(rtrn+trn(ji,jj,jk,jpdia)*12.) 235 & /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimdia(ji,jj,jk))+rtrn) 236 231 237 prdiachl = prmax(ji,jj,jk) 232 238 & *(1.-exp(-etot2(ji,jj,jk)*pislope2n(ji,jj,jk))) … … 243 249 & *max(0.1,xlimdia(ji,jj,jk)) 244 250 245 zprod2=rjjss*prorca2(ji,jj,jk)*prdiachl*xlimdia2(ji,jj,jk) 246 & *trn(ji,jj,jk,jpdia) 247 248 C 249 prorca4(ji,jj,jk) = (fecdm)**2*zprod2/chlcdm 251 C 252 prorca4(ji,jj,jk) = (fecdm)**2*zprod/chlcdm 250 253 & /(pislopead2(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpdfe) 251 254 & +rtrn) 252 255 C 253 256 prorca7(ji,jj,jk) = chlcdm*144.*zprod/(pislopead2(ji,jj,jk) 254 & *etot2(ji,jj,jk)* max(trn(ji,jj,jk,jpdch),1.E-10)+rtrn)257 & *etot2(ji,jj,jk)*trn(ji,jj,jk,jpdch)+rtrn) 255 258 C 256 259 END DO … … 261 264 RETURN 262 265 END 263 -
trunk/NEMO/TOP_SRC/SMS/p4zrem.F
r341 r617 181 181 C 182 182 orem(ji,jj,jk)=remip*trn(ji,jj,jk,jppoc) 183 ofer(ji,jj,jk)=remip*trn(ji,jj,jk,jpsfe) 184 #if ! defined key_trc_kriest 183 185 orem2(ji,jj,jk)=remip*trn(ji,jj,jk,jpgoc) 184 ofer(ji,jj,jk)=remip*trn(ji,jj,jk,jpsfe)185 186 ofer2(ji,jj,jk)=remip*trn(ji,jj,jk,jpbfe) 187 #else 188 orem2(ji,jj,jk)=remip*trn(ji,jj,jk,jpnum) 189 #endif 186 190 C 187 191 END DO … … 228 232 & +4.*trn(ji,jj,jk,jpfer)*xkeq))/(2.*xkeq) 229 233 234 #if ! defined key_trc_kriest 230 235 xlam1b=3E-5+xlam1*(trn(ji,jj,jk,jppoc) 231 236 & +trn(ji,jj,jk,jpgoc)+trn(ji,jj,jk,jpcal)+ 232 237 & trn(ji,jj,jk,jpdsi))*1E6 233 238 #else 239 xlam1b=3E-5+xlam1*(trn(ji,jj,jk,jppoc) 240 & +trn(ji,jj,jk,jpcal)+trn(ji,jj,jk,jpdsi))*1E6 241 #endif 234 242 xscave(ji,jj,jk)=xfeequi*xlam1b*zstep 235 243 # if defined key_off_degrad … … 244 252 zlamfac=max(0.,(gphit(ji,jj)+55.)/30.) 245 253 zlamfac=min(1.,zlamfac) 254 #if ! defined key_trc_kriest 246 255 xlam1b=(80.*(trn(ji,jj,jk,jpdoc)+40E-6)+698. 247 256 & *trn(ji,jj,jk,jppoc)+1.05E4*trn(ji,jj,jk,jpgoc)) 248 257 & *zdiss(ji,jj,jk)+1E-5*(1.-zlamfac)+xlam1*max(0., 249 258 & (trn(ji,jj,jk,jpfer)*1E9-1.)) 259 #else 260 xlam1b=(80.*(trn(ji,jj,jk,jpdoc)+40E-6)+698. 261 & *trn(ji,jj,jk,jppoc)) 262 & *zdiss(ji,jj,jk)+1E-5*(1.-zlamfac)+xlam1*max(0., 263 & (trn(ji,jj,jk,jpfer)*1E9-1.)) 264 #endif 265 250 266 251 267 xaggdfe(ji,jj,jk)=xlam1b*zstep*0.76*(trn(ji,jj,jk,jpfer) -
trunk/NEMO/TOP_SRC/SMS/p4zsed.F
r502 r617 142 142 DO jj=2,jpjm1 143 143 DO ji=2,jpim1 144 ikt=max(mbathy(ji,jj)-1,1) 145 zfact=e1t(ji,jj)*e2t(ji,jj)/rjjss 146 sumsedsi=sumsedsi+trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt) 147 & *zfact 148 sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt) 149 & *2.*zfact 150 sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt) 151 & +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))*zfact 144 ikt=max(mbathy(ji,jj)-1,1) 145 zfact=e1t(ji,jj)*e2t(ji,jj)/rjjss 146 sumsedsi=sumsedsi+zfact*trn(ji,jj,ikt,jpdsi) 147 #if ! defined key_trc_kriest 148 & *wsbio4(ji,jj,ikt) 149 #else 150 & *wscal(ji,jj,ikt) 151 #endif 152 sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt) 153 & *2.*zfact 154 sumsedpo4=sumsedpo4+ 155 & (trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))*zfact 152 156 END DO 153 157 END DO … … 167 171 DO jj=1,jpj 168 172 DO ji=1,jpi 169 ikt=max(mbathy(ji,jj)-1,1) 170 xconctmp=trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt)*zstep 171 & /fse3t(ji,jj,ikt) 172 trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)-xconctmp 173 trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)+xconctmp 174 & *(1.-(sumdepsi+rivalkinput/raass/6.)/sumsedsi) 175 END DO 176 END DO 177 178 DO jj=1,jpj 179 DO ji=1,jpi 180 ikt=max(mbathy(ji,jj)-1,1) 181 xconctmp=trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)*zstep 182 & /fse3t(ji,jj,ikt) 183 trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)-xconctmp 184 trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)+xconctmp 185 & *(1.-(rivalkinput/raass)/sumsedcal)*2. 186 trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)+xconctmp 187 & *(1.-(rivalkinput/raass)/sumsedcal) 188 END DO 189 END DO 190 191 DO jj=1,jpj 192 DO ji=1,jpi 193 ikt=max(mbathy(ji,jj)-1,1) 194 xconctmp=trn(ji,jj,ikt,jpgoc) 195 xconctmp2=trn(ji,jj,ikt,jppoc) 196 trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc) 197 & -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 198 trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 199 & -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 200 trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 201 & +(xconctmp*wsbio4(ji,jj,ikt)+xconctmp2*wsbio3(ji,jj,ikt)) 202 & *zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input 203 & /(raass*sumsedpo4)) 204 trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe) 205 & -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*zstep 206 & /fse3t(ji,jj,ikt) 207 trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 208 & -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 209 & /fse3t(ji,jj,ikt) 173 ikt=max(mbathy(ji,jj)-1,1) 174 xconctmp=trn(ji,jj,ikt,jpdsi)*zstep/fse3t(ji,jj,ikt) 175 #if ! defined key_trc_kriest 176 & *wsbio4(ji,jj,ikt) 177 #else 178 & *wscal(ji,jj,ikt) 179 #endif 180 trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)-xconctmp 181 trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)+xconctmp 182 & *(1.-(sumdepsi+rivalkinput/raass/6.)/sumsedsi) 183 END DO 184 END DO 185 186 DO jj=1,jpj 187 DO ji=1,jpi 188 ikt=max(mbathy(ji,jj)-1,1) 189 xconctmp=trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)*zstep 190 & /fse3t(ji,jj,ikt) 191 trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)-xconctmp 192 trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)+xconctmp 193 & *(1.-(rivalkinput/raass)/sumsedcal)*2. 194 trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)+xconctmp 195 & *(1.-(rivalkinput/raass)/sumsedcal) 196 END DO 197 END DO 198 199 DO jj=1,jpj 200 DO ji=1,jpi 201 ikt=max(mbathy(ji,jj)-1,1) 202 #if ! defined key_trc_kriest 203 xconctmp=trn(ji,jj,ikt,jpgoc) 204 xconctmp2=trn(ji,jj,ikt,jppoc) 205 trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc) 206 & -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 207 trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 208 & -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 209 trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 210 & +(xconctmp*wsbio4(ji,jj,ikt)+xconctmp2*wsbio3(ji,jj,ikt) 211 $ )*zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input/(raass 212 $ *sumsedpo4)) 213 trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe) 214 & -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*zstep 215 & /fse3t(ji,jj,ikt) 216 trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 217 & -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 218 & /fse3t(ji,jj,ikt) 219 #else 220 xconctmp=trn(ji,jj,ikt,jpnum) 221 xconctmp2=trn(ji,jj,ikt,jppoc) 222 trn(ji,jj,ikt,jpnum)=trn(ji,jj,ikt,jpnum) 223 & -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 224 trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 225 & -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 226 trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 227 & +(xconctmp2*wsbio3(ji,jj,ikt)) 228 $ *zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input/(raass 229 $ *sumsedpo4)) 230 trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 231 & -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 232 & /fse3t(ji,jj,ikt) 233 234 #endif 210 235 END DO 211 236 END DO -
trunk/NEMO/TOP_SRC/SMS/p4zsink.F
r341 r617 1 2 CCC $Header$3 CCC TOP 1.0 , LOCEAN-IPSL (2005)4 C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt5 C ---------------------------------------------------------------------------6 CDIR$ LIST7 1 SUBROUTINE p4zsink 8 2 #if defined key_passivetrc && defined key_trc_pisces … … 42 36 IMPLICIT NONE 43 37 #include "domzgr_substitute.h90" 44 CDIR$ LIST45 CC----------------------------------------------------------------------46 CC local declarations47 CC ==================48 INTEGER jksed, ji, jj, jk49 REAL xagg1,xagg2,xagg3,xagg450 REAL zfact,zstep,wsmax51 C52 C Time step duration for biology53 C ------------------------------54 C55 zstep=rfact2/rjjss56 C57 C Sinking speeds of detritus is increased with depth as shown58 C by data and from the coagulation theory59 C -----------------------------------------------------------60 C61 jksed=1062 C63 DO jk=1,jpk-164 DO jj=1,jpj65 DO ji=1,jpi66 zfact=max(0.,fsdepw(ji,jj,jk+1)-hmld(ji,jj))/2000.67 wsbio4(ji,jj,jk)=wsbio2+(200.-wsbio2)*zfact68 END DO69 END DO70 END DO71 C72 C LIMIT THE VALUES OF THE SINKING SPEEDS73 C TO AVOID NUMERICAL INSTABILITIES74 C75 wsbio3(:,:,:)=wsbio76 38 77 Do jk=1,jpk-1 78 DO jj=1,jpj 79 DO ji=1,jpi 80 wsmax=0.8*fse3t(ji,jj,jk)/zstep 81 wsbio4(ji,jj,jk)=min(wsbio4(ji,jj,jk),wsmax) 82 wsbio3(ji,jj,jk)=min(wsbio3(ji,jj,jk),wsmax) 83 END DO 84 END DO 85 END DO 39 #if defined key_trc_kriest 86 40 87 wscal(:,:,:)=wsbio4(:,:,:) 88 C 89 C 90 C INITIALIZE TO ZERO ALL THE SINKING ARRAYS 91 C ----------------------------------------- 92 C 93 sinking=0. 94 sinking2=0. 95 sinkcal=0. 96 sinkfer=0. 97 sinksil=0. 98 sinkfer2=0. 99 C 100 C Compute the sedimentation term using p4zsink2 for all 101 C the sinking particles 102 C ----------------------------------------------------- 103 C 104 CALL p4zsink2(wsbio3,sinking,jppoc) 105 CALL p4zsink2(wsbio3,sinkfer,jpsfe) 106 CALL p4zsink2(wsbio4,sinking2,jpgoc) 107 CALL p4zsink2(wsbio4,sinkfer2,jpbfe) 108 CALL p4zsink2(wsbio4,sinksil,jpdsi) 109 CALL p4zsink2(wscal,sinkcal,jpcal) 110 C 111 C Exchange between organic matter compartments due to 112 C coagulation/disaggregation 113 C --------------------------------------------------- 114 C 115 DO jk = 1,jpkm1 116 DO jj = 1,jpj 117 DO ji = 1,jpi 118 C 119 zfact=zstep*zdiss(ji,jj,jk) 120 C 121 C Part I : Coagulation dependent on turbulence 122 C ---------------------------------------------- 123 C 124 xagg1=940.*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc) 125 # if defined key_off_degrad 126 & *facvol(ji,jj,jk) 127 # endif 41 # include "p4zsink.kriest.h" 128 42 129 xagg2=1.054E4*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc) 130 # if defined key_off_degrad 131 & *facvol(ji,jj,jk) 132 # endif 133 C 134 C Aggregation of small into large particles 135 C Part II : Differential settling 136 C ---------------------------------------------- 137 C 138 xagg3=0.66*zstep*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc) 139 # if defined key_off_degrad 140 & *facvol(ji,jj,jk) 141 # endif 43 #else 142 44 143 xagg4=0.*zstep*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc) 144 # if defined key_off_degrad 145 & *facvol(ji,jj,jk) 146 # endif 147 C 148 xagg(ji,jj,jk)=xagg1+xagg2+xagg3+xagg4 149 xaggfe(ji,jj,jk)=xagg(ji,jj,jk)*trn(ji,jj,jk,jpsfe)/ 150 & (trn(ji,jj,jk,jppoc)+rtrn) 151 C 152 C Aggregation of DOC to small particles 153 C -------------------------------------- 154 C 155 xaggdoc(ji,jj,jk)=(80*trn(ji,jj,jk,jpdoc)+698. 156 & *trn(ji,jj,jk,jppoc))*zfact*trn(ji,jj,jk,jpdoc) 157 # if defined key_off_degrad 158 & *facvol(ji,jj,jk) 159 # endif 45 # include "p4zsink.std.h" 160 46 161 xaggdoc2(ji,jj,jk)=1.05E4*zfact*trn(ji,jj,jk,jpgoc) 162 & *trn(ji,jj,jk,jpdoc) 163 # if defined key_off_degrad 164 & *facvol(ji,jj,jk) 165 # endif 166 C 167 END DO 168 END DO 169 END DO 47 #endif 170 48 171 # if defined key_trc_dia3d172 trc2d(:,:,5) = sinking(:,:,jksed+1)*1.e3*rfact2r173 trc2d(:,:,6) = sinking2(:,:,jksed+1)*1.e3*rfact2r174 trc2d(:,:,7) = sinkfer(:,:,jksed+1)*1.e3*rfact2r175 trc2d(:,:,8) = sinkfer2(:,:,jksed+1)*1.e3*rfact2r176 trc2d(:,:,9) = sinksil(:,:,jksed+1)*1.e3*rfact2r177 trc2d(:,:,10) = sinkcal(:,:,jksed+1)*1.e3*rfact2r178 # endif179 C180 49 #endif 181 50 RETURN -
trunk/NEMO/TOP_SRC/SMS/p4zsink2.F
r341 r617 65 65 ! -------------- 66 66 67 zstep = r dt*ndttrc67 zstep = rfact2 68 68 69 69 ztraz = 0 … … 122 122 zew = wstmp2(ji,jj,jk+1) 123 123 sinktemp(ji,jj,jk+1) = -zew*(trn(ji,jj,jk,jn) 124 $ -0.5*(1+zigma)*zakz(ji,jj,jk))* rfact2124 $ -0.5*(1+zigma)*zakz(ji,jj,jk))*zstep 125 125 ENDDO 126 126 ENDDO -
trunk/NEMO/TOP_SRC/SMS/par_sms_pisces.h90
r274 r617 1 !!--------------------------------------------------------------------- 2 !! 3 !! PARAMETER passivetrc.PISCES 4 !! ******************************* 5 !! 6 !! purpose : 7 !! --------- 8 !! INCLUDE PARAMETER FILE for passive tracer PISCES model 9 !! 10 !! 11 !! number of biological trends 12 !! --------------------------- 13 !! 14 !!---------------------------------------------------------------------- 15 !! TOP 1.0, LOCEAN-IPSL (2005) 16 !! $Header$ 17 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 18 !!---------------------------------------------------------------------- 1 !!====================================================================== 2 !! *** par_sms_pisces.h90 *** 3 !! pisces model : assign a parameter to name individual tracers 4 !!====================================================================== 19 5 20 INTEGER jpdiabio 21 PARAMETER (jpdiabio = 1) 22 !! 23 !! NOW ASSIGN A PARAMETER TO NAME INDIVIDUAL TRACERS 24 !! WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 25 !! 26 !! JPDIC : dissolved inoganic carbon concentration (mol/L) 27 !! JPTAL : total alkalinity (ueq/L) 28 !! JPOXY : oxygen carbon concentration (mol/L) 29 !! JP13C : isotope 13 of DIC (mol/L) 30 !! JPCAL : calcite concentration (mol/L) 31 !! JPPO4 : phosphate concentration (mol C/L) 32 !! JPPOC : particulate organic phosphate concentration (mol C/L) 33 !! JPSIL : silicate concentration (mol/L) 34 !! JPPHY : phytoplancton concentration (mol/L) 35 !! JPZOO : zooplancton concentration (mol/L) 36 !! JPDOC : dissolved organic carbon concentration (mol/L) 37 !! 6 INTEGER, PARAMETER :: jpdiabio = 1 38 7 39 INTEGER jpdic,jptal,jpoxy,jpcal,jppo4,jppoc 40 INTEGER jpsil,jpphy,jpzoo,jpdoc,jpgoc,jpnfe,jpnch 41 INTEGER jpdia,jpmes,jpbsi,jpfer,jpbfe,jpsfe,jpdfe,jpdsi 42 INTEGER jpdch,jpno3,jpnh4 43 PARAMETER(jpdic=1,jptal=2,jpoxy=3,jpcal=4,jppo4=5,jppoc=6) 44 PARAMETER(jpsil=7,jpphy=8,jpzoo=9,jpdoc=10) 45 PARAMETER(jpdia=11,jpmes=12,jpbsi=13,jpfer=14,jpbfe=15) 46 PARAMETER(jpgoc=16, jpsfe=17, jpdfe=18, jpdsi=19) 47 PARAMETER(jpnfe=20, jpnch=21, jpdch=22, jpno3=23, jpnh4=24) 8 !! WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 9 !! 10 INTEGER, PARAMETER :: & 11 jpdic = 1 , & ! dissolved inoganic carbon concentration 12 jptal = 2 , & ! total alkalinity 13 jpoxy = 3 , & ! oxygen carbon concentration 14 jpcal = 4 , & ! calcite concentration 15 jppo4 = 5 , & ! phosphate concentration 16 jppoc = 6 , & ! small particulate organic phosphate concentration 17 jpsil = 7 , & ! silicate concentration 18 jpphy = 8 , & ! phytoplancton concentration 19 jpzoo = 9 , & ! zooplancton concentration 20 jpdoc = 10 , & ! dissolved organic carbon concentration 21 jpdia = 11 , & ! Diatoms Concentration 22 jpmes = 12 , & ! Mesozooplankton Concentration 23 jpbsi = 13 , & ! (big) Silicate Concentration 24 jpfer = 14 , & ! Iron Concentration 25 #if ! defined key_trc_kriest 26 jpbfe = 15 , & ! Big iron particles Concentration 27 jpgoc = 16 , & ! big particulate organic phosphate concentration 28 jpsfe = 17 , & ! Small iron particles Concentration 29 jpdfe = 18 , & ! Diatoms iron Concentration 30 jpdsi = 19 , & ! Diatoms Silicate Concentration 31 jpnfe = 20 , & ! Nano iron Concentration 32 jpnch = 21 , & ! Nano Chlorophyll Concentration 33 jpdch = 22 , & ! Diatoms Chlorophyll Concentration 34 jpno3 = 23 , & ! Nitrates Concentration 35 jpnh4 = 24 ! Ammonium Concentration 36 #else 37 jpnum = 15 , & ! Big iron particles Concentration 38 jpsfe = 16 , & ! number of particulate organic phosphate concentration 39 jpdfe = 17 , & ! Diatoms iron Concentration 40 jpdsi = 18 , & ! Diatoms Silicate Concentration 41 jpnfe = 19 , & ! Nano iron Concentration 42 jpnch = 20 , & ! Nano Chlorophyll Concentration 43 jpdch = 21 , & ! Diatoms Chlorophyll Concentration 44 jpno3 = 22 , & ! Nitrates Concentration 45 jpnh4 = 23 ! Ammonium Concentration 46 #endif 47 -
trunk/NEMO/TOP_SRC/SMS/sms.F90
r341 r617 17 17 USE par_trc 18 18 USE par_sms 19 19 20 IMPLICIT NONE 21 22 PUBLIC 20 23 21 24 #if defined key_trc_lobster1 -
trunk/NEMO/TOP_SRC/SMS/sms_lobster1.h90
r341 r617 23 23 !!---------------------------------------------------------------------- 24 24 !! 25 !! COMMON/cotbio/ :biological parameters25 !! biological parameters 26 26 !! -------------------------------------------- 27 27 !! … … 87 87 REAL remdmp(jpk,jptra) 88 88 89 COMMON/cotbio/ apmin,azmin,anmin,admin, &90 redf,reddom,slopet,toptp,aknut,psinut,akno3,aknh4,rcchl, &91 rgamma,toptgz,tmaxgz,rgz, &92 rppz,taus,aks,filmax,rpnaz,rdnaz,eggzoo,tauzn, &93 tmmaxp,tmminp,tmmaxz,tmminz,anumin,afdmin,taudn, &94 vsed,tmumax,aki, &95 tmaxr,tminr,remdmp,fdoml,taunn,taudomn,xhr, &96 fphylab,fzoolab,fdetlab,fdbod97 89 !! 98 90 !! … … 101 93 !!---------------------------------------------------------------------- 102 94 !! 103 !! COMMON/cottbd/ :biological trends95 !! biological trends 104 96 !! ------------------------------------------------------------------ 105 97 !! … … 114 106 REAL trbio(jpi,jpj,jpk,jpdiabio) 115 107 116 COMMON/cittbd/ctrbio, ctrbil, ctrbiu117 118 COMMON/cottbd/trbio119 108 !! 120 109 !! netcdf files and index COMMON biological trends files … … 127 116 !! 128 117 INTEGER nwritebio,nitb,ndepitb,nhoritb 129 COMMON/cibcdf/nwritebio,nitb,ndepitb,nhoritb130 118 131 119 # endif 120 132 121 !!---------------------------------------------------------------------- 133 122 !! 134 !! COMMON/cotopt/ :optical parameters123 !! optical parameters 135 124 !! ----------------------------------- 136 125 !! … … 149 138 REAL xze(jpi,jpj) 150 139 REAL xpar(jpi,jpj,jpk) 151 COMMON/cotopt/xze,xpar,xkr0,xkg0, & 152 xkgp,xkrp,xlg,xlr,rpig 140 153 141 !!---------------------------------------------------------------------- 154 142 !! 155 !! COMMON/cotsedim/ :sediment parameters143 !! sediment parameters 156 144 !! -------------------------------------- 157 145 !! … … 171 159 REAL fbod(jpi,jpj),cmask(jpi,jpj),areacot 172 160 173 COMMON/cotsedim/sedlam,dmin3,dminl,fbod,sedlostpoc, &174 & sedpoca, sedpocb, sedpocn, &175 & cmask, areacot -
trunk/NEMO/TOP_SRC/SMS/sms_pisces.h90
r341 r617 12 12 !! original : 00-02 (O. Aumont) 13 13 !! 14 !!---------------------------------------------------------------------15 !! TOP 1.0 , LOCEAN-IPSL (2005)16 !! $Header$17 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt18 !!---------------------------------------------------------------------19 14 !! 20 15 #if defined key_trc_pisces … … 22 17 !!---------------------------------------------------------------------- 23 18 !! 24 !! COMMON/cchem1/ : Variable for chemistry of the CO2 cycle 25 !! 26 !! --------------------------------------------------------------------- 27 !! 28 REAL akb3(jpi,jpj,jpk), ak13(jpi,jpj,jpk), ak23(jpi,jpj,jpk) 29 REAL aksp(jpi,jpj,jpk), co3(jpi,jpj,jpk), hi(jpi,jpj,jpk) 30 REAL borat(jpi,jpj,jpk), akw3(jpi,jpj,jpk), h2co3(jpi,jpj) 31 REAL fugaci(jpi,jpj), atcco2, atcox 32 33 COMMON/cchem1/ akb3,ak13,ak23,aksp,co3,hi,borat,akw3,h2co3, & 34 fugaci, atcco2, atcox 35 !! 36 !!---------------------------------------------------------------------- 37 !! 38 !! COMMON/cchem2/ : Variable for chemistry of the CO2 cycle 39 !! 40 !! --------------------------------------------------------------------- 41 !! 42 REAL akcc1, akcc2, akcc3, akcc4, devk1(4), devk2(4) 43 REAL devk3(4), devk4(4), devk5(4), devkst, devks 44 REAL bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11 45 REAL c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3 46 REAL cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14 47 REAL cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1 48 REAL ox2, ox3, ox4, salchl, rgas, oxyco, ox5 49 REAL ca0, ca1, ca2, ca3, ca4, ca5, ca6, chemc(jpi,jpj,3) 50 REAL cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21 51 REAL cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33 52 REAL cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16 53 REAL cs17, cs18, cs19 54 55 COMMON/cchem2/ akcc1, akcc2, akcc3, akcc4, devk1, devk2, & 56 devk3, devk4, devk5, devkst, devks, & 57 bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11, & 58 c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3, & 59 c14, cb4, cb5, ca0, ca1, ca2, ca3, ca4, ca5, ca6, & 60 cb6, cb7, cb8, cb9, cb10, cb11, cw3, cw4, cw5, cw6, & 61 cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4, ox5, salchl, & 62 cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21, & 63 cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33, & 64 cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16, & 65 cs17, cs18, cs19, rgas, oxyco, chemc 66 !! 67 !! COMMON/cchem3/ : Variable for chemistry of Fe and SIO3 68 !! 69 !! --------------------------------------------------------------------- 70 !! 71 REAL sio3eq(jpi,jpj,jpk),fekeq(jpi,jpj,jpk) 72 73 COMMON/cchem3/ sio3eq, fekeq 74 !! 75 !!---------------------------------------------------------------------- 76 !! 77 !! COMMON/cotsedim/ : Variable for simplified sediments 78 !! 79 !! --------------------------------------------------------------------- 80 !! 81 REAL sedpoc(jpi,jpj),sedcal(jpi,jpj),sedsil(jpi,jpj) 82 REAL sedlam,sedlostpoc, sedlostsil,sedlostcal 83 84 COMMON/cotsedim/sedpoc,sedcal,sedsil,sedlam, & 85 sedlostpoc, sedlostsil,sedlostcal 86 !! 87 !!---------------------------------------------------------------------- 88 !! 89 !! COMMON/cotcon/ : Time variables 90 !! 91 !! --------------------------------------------------------------------- 92 !! 93 94 INTEGER iabsyr, nrdttrc, ndayflxtr 95 REAL tspyr, absyr, xtvit 96 REAL rfact, rfactr, rfact2, rfact2r 97 98 COMMON/cottim/iabsyr,nrdttrc,tspyr, absyr,xtvit, ndayflxtr, & 99 rfact, rfactr, rfact2, rfact2r 100 101 !! 102 !!---------------------------------------------------------------------- 103 !! 104 !! COMMON/cotgas/ : Gas exchange 105 !! 106 !! --------------------------------------------------------------------- 107 !! 108 INTEGER igaswind,icice 109 REAL gasfac, strn(jpi,jpj) 110 REAL wind(jpi,jpj), kgwanin(jpi,jpj) 111 REAL wsmo(jpi,jpj,12), kgwanmo(jpi,jpj,12) 112 REAL cicemo(jpi,jpj,12) 113 REAL patm(jpi,jpj),ppres(jpi,jpj,12) 114 115 COMMON/cotgas/ gasfac, igaswind, icice, & 116 wind, kgwanin, wsmo, kgwanmo, cicemo, & 117 patm,ppres,strn 118 19 !! Variable for chemistry of the CO2 cycle 20 !! 21 !! --------------------------------------------------------------------- 22 !! 23 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 24 akb3, ak13, ak23, aksp, akw3, & 25 akp13, akp23, akp33, aksi3, aks3, akf3, & 26 hi, borat 27 28 REAL :: & 29 atcco2, atcox 30 31 !! 32 !!---------------------------------------------------------------------- 33 !! 34 !! Variable for chemistry of the CO2 cycle 35 !! 36 !! --------------------------------------------------------------------- 37 !! 38 REAL(wp), DIMENSION(10) :: & 39 devk1, devk2, devk3, devk4, devk5 40 41 REAL(wp) :: & 42 akcc1, akcc2, akcc3, akcc4,akcc5, akcc6, akcc7, akcc8, akcc9 , & 43 bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11, & 44 c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3, & 45 cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14, & 46 cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4,ox5, & 47 salchl, rgas, oxyco, ca0, ca1, ca2, ca3, ca4, ca5, ca6, & 48 cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21, & 49 cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33, & 50 cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16, & 51 cs17, cs18, cs19, cs20, cs21, & 52 st1, st2, ft1, ft2, ks0, ks1, ks2, ks3, ks4, ks5, & 53 ks6, ks7, ks8, ks9, ks10, ks11, ks12, kf0, kf1, & 54 kf2, kf3, kf4 55 56 REAL(wp), DIMENSION(jpi,jpj,3) :: & 57 chemc 58 59 !! 60 !!---------------------------------------------------------------------- 61 !! 62 !! Variable for chemistry of Fe and SIO3 63 !! 64 !! --------------------------------------------------------------------- 65 !! 66 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 67 sio3eq, fekeq 68 !! 69 !!---------------------------------------------------------------------- 70 !! 71 !! Variable for simplified sediments 72 !! 73 !! --------------------------------------------------------------------- 74 !! 75 REAL(wp), DIMENSION(jpi,jpj) :: & 76 sedpoc, sedcal, sedsil 77 78 REAL(wp) :: & 79 sedlam,sedlostpoc, sedlostsil,sedlostcal 80 81 82 !! 83 !!---------------------------------------------------------------------- 84 !! 85 !! Time variables 86 !! 87 !! --------------------------------------------------------------------- 88 !! 89 90 INTEGER :: & 91 iabsyr, nrdttrc, ndayflxtr 92 93 REAL(wp) :: & 94 tspyr, absyr, xtvit , & 95 rfact, rfactr, rfact2, rfact2r 96 97 98 !! 99 !!---------------------------------------------------------------------- 100 !! 101 !! Gas exchange 102 !! 103 !! --------------------------------------------------------------------- 104 !! 105 REAL(wp), DIMENSION(jpi,jpj) :: & 106 strn 119 107 !!--------------------------------------- 120 108 !! 121 !! COMMON/cotham/ : biological parameters109 !! Biological parameters 122 110 !! 123 111 !! -------------------------------------- 124 112 !! 125 INTEGER jkopt 126 REAL caco3r, rno3, o2ut, po4r 127 REAL sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput 128 REAL calcon, rivpo4input,nitdepinput,oxymin,spocri 129 REAL nitrif,rdenit,o2nit,concnnh4,concdnh4 130 REAL pislope,excret,wsbio,wchl,resrat,mprat,wchld 131 REAL mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort 132 REAL xksi1,xksi2,sicmax,xremik,xremip,xkdoc1 133 REAL xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz 134 REAL xkgraz2,grazrat2,xlam1,conc1,conc2,conc3 135 REAL unass2,xprefpoc,epsher,epsher2,pislope2,mpratm 136 REAL sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3 137 REAL xsirem, fecnm, fecdm, chlcnm, chlcdm 138 139 140 COMMON/cotham/jkopt,caco3r, rno3, o2ut, po4r, & 141 sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput, & 142 calcon, rivpo4input,nitdepinput,oxymin,spocri, & 143 nitrif,rdenit,o2nit,concnnh4,concdnh4, & 144 pislope,excret,wsbio,wchl,resrat,mprat,wchld, & 145 mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort, & 146 xksi1,xksi2,sicmax,xremik,xremip,xkdoc1, & 147 xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz, & 148 xkgraz2,grazrat2,xlam1,conc1,conc2,conc3, & 149 unass2,xprefpoc,epsher,epsher2,pislope2,mpratm, & 150 sigma1,sigma2, zprefc, zprefp, zprefd, wchl2, ferat3, & 151 xsirem, fecnm, fecdm, chlcnm, chlcdm 152 153 !! 154 !!--------------------------------------------- 155 !! 156 !! COMMON/cotpar/ : Biological fluxes for light 157 !! 158 !!--------------------------------------------- 159 !! 160 REAL etot(jpi,jpj,jpk),etot3(jpi,jpj,jpk),emoy(jpi,jpj,jpk) 161 REAL xkrgb(3,61),zmeu(jpi,jpj) 162 163 COMMON/cotpar/etot,etot3,emoy,xkrgb,zmeu 113 INTEGER :: & 114 jkopt 115 116 REAL(wp) :: & 117 caco3r, kdca, nca, part, rno3, o2ut, po4r, & 118 sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput, & 119 calcon, rivpo4input,nitdepinput,oxymin,spocri, & 120 nitrif,rdenit,o2nit,concnnh4,concdnh4, & 121 pislope,excret,wsbio,resrat,mprat,wchl,wchld, & 122 mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort, & 123 xksi1,xksi2,sicmax,xremik,xremip,xkdoc1, & 124 xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz, & 125 xkgraz2,grazrat2,xlam1,conc1,conc2,conc3, & 126 unass2,xprefpoc,epsher,epsher2,pislope2,mpratm, & 127 sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3, & 128 xsirem, fecnm, fecdm, chlcnm, chlcdm 129 130 131 132 !! 133 !!--------------------------------------------- 134 !! 135 !! Biological fluxes for light 136 !! 137 !!--------------------------------------------- 138 !! 139 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 140 etot, etot3, emoy 141 142 REAL(wp), DIMENSION(jpi,jpj) :: & 143 zmeu 144 145 REAL(wp), DIMENSION(3,61) :: & 146 xkrgb 147 148 164 149 !! 165 150 !!---------------------------------------------------------- 166 151 !! 167 !! COMMON/cotppp/ :Biological fluxes for primary production152 !! Biological fluxes for primary production 168 153 !! 169 154 !!---------------------------------------------------------- 170 155 !! 171 REAL prmax(jpi,jpj,jpk),tgfunc(jpi,jpj,jpk), tgfunc2(jpi,jpj,jpk) 172 REAL prcaca(jpi,jpj,jpk), silpro(jpi,jpj,jpk), prorca(jpi,jpj,jpk) 173 REAL prorca2(jpi,jpj,jpk),prorca3(jpi,jpj,jpk) 174 REAL prorca4(jpi,jpj,jpk),prorca5(jpi,jpj,jpk) 175 REAL prorca6(jpi,jpj,jpk),prorca7(jpi,jpj,jpk) 176 REAL pronew(jpi,jpj,jpk),pronew2(jpi,jpj,jpk) 177 REAL proreg(jpi,jpj,jpk),proreg2(jpi,jpj,jpk) 178 REAL xnanono3(jpi,jpj,jpk),xdiatno3(jpi,jpj,jpk) 179 REAL xnanonh4(jpi,jpj,jpk),xdiatnh4(jpi,jpj,jpk) 180 REAL xlimphy(jpi,jpj,jpk),xlimdia(jpi,jpj,jpk) 181 REAL xksimax(jpi,jpj), xksi(jpi,jpj) 182 REAL concdfe(jpi,jpj,jpk),xlimdia2(jpi,jpj,jpk) 183 REAL concnfe(jpi,jpj,jpk),znegtr(jpi,jpj,jpk) 184 185 186 187 COMMON/cotppp/prmax,tgfunc,prcaca,silpro,prorca,prorca2, & 188 prorca3,prorca4,prorca5,prorca6,prorca7,pronew, & 189 pronew2,proreg,proreg2,xnanono3,xdiatno3,tgfunc2, & 190 xnanonh4,xdiatnh4,xlimphy,xlimdia,xksimax,xksi, & 191 concdfe, xlimdia2, concnfe, znegtr 156 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 157 prmax, tgfunc, tgfunc2, & 158 prcaca, prorca, prorca2, prorca3, & 159 prorca4, prorca5, prorca6, prorca7, & 160 pronew, pronew2, proreg, proreg2, & 161 xnanono3, xdiatno3, xnanonh4, xdiatnh4, & 162 xlimphy, xlimdia, concdfe, concnfe, znegtr 163 164 REAL(wp), DIMENSION(jpi,jpj) :: & 165 xksimax, xksi 166 167 168 192 169 !! 193 170 !!------------------------------------------ 194 171 !! 195 !! COMMON/cotmorp/ : sinks for phytoplankton172 !! Sinks for phytoplankton 196 173 !! 197 174 !!------------------------------------------ 198 175 !! 199 REAL tortp(jpi,jpj,jpk),tortnf(jpi,jpj,jpk) 200 REAL tortnch(jpi,jpj,jpk),respp(jpi,jpj,jpk) 201 REAL respnch(jpi,jpj,jpk),respdch(jpi,jpj,jpk) 202 REAL tortp2(jpi,jpj,jpk),tortdf(jpi,jpj,jpk) 203 REAL tortdch(jpi,jpj,jpk),respp2(jpi,jpj,jpk) 204 REAL tortds(jpi,jpj,jpk),respds(jpi,jpj,jpk) 205 REAL respdf(jpi,jpj,jpk),respnf(jpi,jpj,jpk) 206 207 COMMON/cotmorp/tortp,tortnf,tortnch,respp,respnch, & 208 respdch,tortp2,tortdf,tortdch,respp2,tortds, & 209 respds,respdf,respnf 176 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 177 tortp, tortnf, tortnch, & 178 respp, respp2, respnch, respdch, & 179 tortp2, tortdf, tortdch, tortds, & 180 respds, respdf, respnf 181 182 210 183 !! 211 184 !!------------------------------------ 212 185 !! 213 !! COMMON/cotzoo/ :SMS for zooplankton186 !! SMS for zooplankton 214 187 !! 215 188 !!------------------------------------- 216 189 !! 217 REAL respz(jpi,jpj,jpk),tortz(jpi,jpj,jpk) 218 REAL grazp(jpi,jpj,jpk),grazpf(jpi,jpj,jpk) 219 REAL grazpch(jpi,jpj,jpk),grazm(jpi,jpj,jpk) 220 REAL grazmf(jpi,jpj,jpk),grazsd(jpi,jpj,jpk) 221 REAL grazsf(jpi,jpj,jpk),grazss(jpi,jpj,jpk) 222 REAL grazsch(jpi,jpj,jpk),grarem(jpi,jpj,jpk) 223 REAL grafer(jpi,jpj,jpk),respz2(jpi,jpj,jpk) 224 REAL tortz2(jpi,jpj,jpk),grazd(jpi,jpj,jpk) 225 REAL grazz(jpi,jpj,jpk),grazn(jpi,jpj,jpk) 226 REAL grazpoc(jpi,jpj,jpk),graznf(jpi,jpj,jpk) 227 REAL graznch(jpi,jpj,jpk),grazs(jpi,jpj,jpk) 228 REAL grazf(jpi,jpj,jpk),grazdch(jpi,jpj,jpk) 229 REAL grazpof(jpi,jpj,jpk),grarem2(jpi,jpj,jpk) 230 REAL grafer2(jpi,jpj,jpk),grapoc2(jpi,jpj,jpk) 231 REAL grapoc(jpi,jpj,jpk) 232 REAL grazffe(jpi,jpj,jpk),grazfff(jpi,jpj,jpk) 233 234 COMMON/cotzoo/respz,tortz,grazp,grazpf,grazpch,grazm, & 235 grazmf,grazsd,grazsf,grazss,grazsch,grarem,grafer, & 236 respz2,tortz2,grazd,grazz,grazn,grazpoc,graznf, & 237 graznch,grazs,grazf,grazdch,grazpof,grarem2, & 238 grafer2,grapoc2,grapoc,grazffe,grazfff 239 !! 240 !!--------------------------------------------- 241 !! 242 !! COMMON/cotpdom/ : SMS for the organic matter 243 !! 244 !!--------------------------------------------- 245 !! 246 REAL sinking2(jpi,jpj,jpk),phymoy(jpi,jpj) 247 REAL sinking(jpi,jpj,jpk),sinkfer(jpi,jpj,jpk) 248 REAL sinkfer2(jpi,jpj,jpk),zdiss(jpi,jpj,jpk) 249 REAL xagg(jpi,jpj,jpk),xaggfe(jpi,jpj,jpk) 250 REAL xbact(jpi,jpj,jpk),xaggdoc(jpi,jpj,jpk) 251 REAL xaggdfe(jpi,jpj,jpk),xbactfer(jpi,jpj,jpk) 252 REAL xscave(jpi,jpj,jpk),olimi(jpi,jpj,jpk) 253 REAL orem(jpi,jpj,jpk),orem2(jpi,jpj,jpk) 254 REAL ofer(jpi,jpj,jpk),ofer2(jpi,jpj,jpk) 255 REAL osil(jpi,jpj,jpk),xaggdoc2(jpi,jpj,jpk) 256 REAL wsbio4(jpi,jpj,jpk),wsbio3(jpi,jpj,jpk),wsbio2 257 REAL sinksil(jpi,jpj,jpk),sinkcal(jpi,jpj,jpk) 258 REAL nitrfac(jpi,jpj,jpk),xlimbac(jpi,jpj,jpk) 259 REAL wscal(jpi,jpj,jpk) 260 261 COMMON/cotpdom/sinking2,phymoy,sinking,sinkfer,sinkfer2, & 262 xagg,xaggfe,xbact,xaggdoc,xaggdfe,xbactfer,xscave, & 263 olimi,orem,orem2,ofer,ofer2,osil,xaggdoc2,wsbio4, & 264 wsbio3,wsbio2,sinksil,sinkcal,nitrfac,xlimbac,zdiss, & 265 wscal 266 !! 267 !!--------------------------------------------------------- 268 !! 269 !! COMMON/cotesms/ : external sources of nutrients in ocean 270 !! 271 !!--------------------------------------------------------- 272 !! 273 REAL onitr(jpi,jpj,jpk),denitr(jpi,jpj,jpk) 274 REAL dust(jpi,jpj),dustmo(jpi,jpj,12) 275 REAL cmask(jpi,jpj,jpk),areacot,cotdep(jpi,jpj) 276 REAL nitdep(jpi,jpj) 277 REAL ironsed(jpi,jpj,jpk),rivinp(jpi,jpj) 278 LOGICAL bdustfer, briver, bndepo, bsedinput 279 280 COMMON/cotesms/onitr,denitr,dust,dustmo,cmask,areacot, & 281 cotdep,nitdep,ironsed,rivinp,bdustfer,briver, & 282 bndepo,bsedinput 283 190 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 191 respz, tortz, grazp, grazpf, & 192 grazpch, grazm, grazmf, grazsd, & 193 grazsf, grazss, grazsch, grarem, & 194 grafer,respz2,tortz2,grazd, grazz,grazn, & 195 grazpoc,graznf, graznch, grazs, grazf, & 196 grazdch, grazpof, grarem2, grafer2, grapoc2, & 197 grapoc, grazffe, grazfff 198 199 200 !! 201 !!--------------------------------------------- 202 !! 203 !! SMS for the organic matter 204 !! 205 !!--------------------------------------------- 206 !! 207 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 208 xagg, xaggfe, zdiss, xaggdoc, xaggdfe, xbactfer, & 209 xscave, olimi, orem, orem2, ofer, ofer2, & 210 osil, xaggdoc2, nitrfac, xlimbac, & 211 wsbio4, wsbio3, wscal 212 213 REAL(wp) :: & 214 wsbio2 215 216 217 218 !! 219 !!--------------------------------------------------------- 220 !! 221 !! External sources of nutrients in ocean 222 !! 223 !!--------------------------------------------------------- 224 !! 225 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 226 onitr, denitr, ironsed 227 228 REAL(wp), DIMENSION(jpi,jpj) :: & 229 dust, cotdep, nitdep, rivinp 230 231 REAL(wp), DIMENSION(jpi,jpj,12) :: & 232 dustmo 233 234 REAL(wp) :: & 235 areacot 236 237 LOGICAL :: & 238 bdustfer, briver, bndepo, bsedinput 239 240 241 242 #if defined key_trc_kriest 243 !! 244 !!--------------------------------------------------------- 245 !! 246 !! Kriest parameter for aggregation 247 !! 248 !!--------------------------------------------------------- 249 !! 250 REAL(wp) :: & 251 xkr_eta, xkr_zeta, xkr_sfact, xkr_stick, & 252 xkr_mass_min, xkr_mass_max, xkr_massp, xkr_frac, & 253 xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr, & 254 xkr_nnano, xkr_ndiat, xkr_nmeso, xkr_naggr, & 255 xkr_wsbio_min, xkr_wsbio_max 256 257 REAL(wp), DIMENSION(jpk) :: & 258 xnumm 284 259 #endif 285 260 261 #endif 262 -
trunk/NEMO/TOP_SRC/SMS/trcctl.pisces.h90
r341 r617 12 12 ! ----------------------- 13 13 14 IF (jptra /= 24) THEN 14 #if defined key_trc_kriest 15 IF (jptra /= 23) THEN 16 #else 17 IF (jptra /= 24) THEN 18 #endif 15 19 IF (lwp) THEN 16 20 WRITE (numout,*) ' ===>>>> : w a r n i n g ' 17 21 WRITE (numout,*) ' ======= ============= ' 18 22 WRITE (numout,*) & 19 & ' STOP, change jptra to 24', &23 & ' STOP, change jptra', & 20 24 & ' in parameter.passivetrc.pisces.h ' 21 25 END IF -
trunk/NEMO/TOP_SRC/SMS/trcini.pisces.h90
r564 r617 51 51 REAL(wp) :: ztoto,expide,denitide,ztra,zmaskt 52 52 REAL(wp) , DIMENSION (jpi,jpj) :: riverdoc,river,ndepo 53 REAL(wp) , DIMENSION (jpi,jpj,jpk) :: cmask 53 54 54 55 INTEGER :: numriv,numdust,numbath,numdep 55 56 INTEGER :: numlight = 49 56 57 58 #if defined key_trc_kriest 59 REAL(wp) :: & 60 znum, zdiv, & 61 zws,zwr, zwl,wmax, xnummax, & 62 zmin, zmax, zl, zr, xacc 63 64 INTEGER :: jn, kiter 65 #endif 57 66 58 67 !! 1. initialization … … 83 92 dustmo(:,:,:) = 0. 84 93 ENDIF 94 85 95 86 96 … … 215 225 ! Lateral boundary conditions on ( ironsed ) (sign unchanged) 216 226 CALL lbc_lnk( ironsed , 'T', 1. ) 227 228 229 #if defined key_trc_kriest 230 !---------------------------------------------------------------------- 231 ! COMPUTATION OF THE VERTICAL PROFILE OF MAXIMUM SINKING SPEED 232 ! Search of the maximum number of particles in aggregates for each k-level. 233 ! Bissection Method 234 !-------------------------------------------------------------------- 235 WRITE(numout,*)' ' 236 WRITE(numout,*)'Compute maximum number of particles in aggregates' 237 WRITE(numout,*)' ' 238 239 xacc = 0.001 240 kiter = 50 241 zmin = 1.10 242 zmax = xkr_mass_max/xkr_mass_min 243 xkr_frac = zmax 244 245 DO jk =1,jpk 246 zl = zmin 247 zr = zmax 248 wmax = 0.5 * fse3t(1,1,jk) * rjjss / rfact2 249 zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 250 znum = zl - 1. 251 zwl = xkr_wsbio_min * xkr_zeta / zdiv & 252 & - ( xkr_wsbio_max * xkr_eta * znum * & 253 & xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 254 & - wmax 255 256 zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 257 znum = zr - 1. 258 zwr = xkr_wsbio_min * xkr_zeta / zdiv & 259 & - ( xkr_wsbio_max * xkr_eta * znum * & 260 & xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 261 & - wmax 262 263 iflag: DO jn = 1, kiter 264 IF( zwl == 0. ) THEN 265 xnummax = zl 266 ELSE IF ( zwr == 0. ) THEN 267 xnummax = zr 268 ELSE 269 xnummax = ( zr + zl ) / 2. 270 zdiv = xkr_zeta + xkr_eta - xkr_eta * xnummax 271 znum = xnummax - 1. 272 zws = xkr_wsbio_min * xkr_zeta / zdiv & 273 & - ( xkr_wsbio_max * xkr_eta * znum * & 274 & xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 275 & - wmax 276 IF( zws * zwl < 0. ) THEN 277 zr = xnummax 278 ELSE 279 zl = xnummax 280 ENDIF 281 zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 282 znum = zl - 1. 283 zwl = xkr_wsbio_min * xkr_zeta / zdiv & 284 & - ( xkr_wsbio_max * xkr_eta * znum * & 285 & xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 286 & - wmax 287 288 zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 289 znum = zr - 1. 290 zwr = xkr_wsbio_min * xkr_zeta / zdiv & 291 & - ( xkr_wsbio_max * xkr_eta * znum * & 292 & xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 293 & - wmax 294 295 IF ( ABS ( zws ) <= xacc ) EXIT iflag 296 297 ENDIF 298 299 ENDDO iflag 300 301 xnumm(jk) = xnummax 302 WRITE(numout,*) 'jk = ',jk,' wmax = ',wmax,' xnum max = ',xnumm(jk) 303 304 END DO 305 306 WRITE(numout,*) '------------------------------------' 307 #endif 308 217 309 !!---------------------------------------------------------------------- 218 310 !! … … 246 338 calcon = 1.03E-2 247 339 248 !! Set coefficients for apparent solubility equilibrium 249 !! of calcite (Ingle, 1800, eq. 6) 250 !! ---------------------------------------------------- 251 252 akcc1 = -34.452 253 akcc2 = -39.866 254 akcc3 = 110.21 255 akcc4 = -7.5752E-6 340 341 342 !! Set coefficients for apparent solubility equilibrium of calcite 343 !! Millero et al. 1995 from Mucci 1983 344 !! -------------------------------------------------------------- 345 akcc1 = -171.9065 346 akcc2 = -0.077993 347 akcc3 = 2839.319 348 akcc4 = 71.595 349 akcc5 = -0.77712 350 akcc6 = 0.0028426 351 akcc7 = 178.34 352 akcc8 = -0.07711 353 akcc9 = 0.0041249 354 256 355 257 356 258 357 !! Set coefficients for seawater pressure correction 259 358 !! ------------------------------------------------- 260 261 359 devk1(1) = -25.5 262 360 devk2(1) = 0.1271 … … 264 362 devk4(1) = -3.08E-3 265 363 devk5(1) = 0.0877E-3 266 364 !! 267 365 devk1(2) = -15.82 268 366 devk2(2) = -0.0219 … … 270 368 devk4(2) = 1.13E-3 271 369 devk5(2) = -0.1475E-3 272 370 !! 273 371 devk1(3) = -29.48 274 372 devk2(3) = 0.1622 … … 276 374 devk4(3) = -2.84E-3 277 375 devk5(3) = 0. 278 279 devk1(4) = -25.60 280 devk2(4) = 0.2324 281 devk3(4) = -3.6246E-3 282 devk4(4) = -5.13E-3 283 devk5(4) = 0.0794E-3 284 285 devkst = 0.23 286 devks = 35.4 376 !! 377 devk1(4) = -14.51 378 devk2(4) = 0.1211 379 devk3(4) = -0.321E-3 380 devk4(4) = -2.67E-3 381 devk5(4) = 0.0427E-3 382 !! 383 devk1(5) = -23.12 384 devk2(5) = 0.1758 385 devk3(5) = -2.647E-3 386 devk4(5) = -5.15E-3 387 devk5(5) = 0.09E-3 388 !! 389 devk1(6) = -26.57 390 devk2(6) = 0.2020 391 devk3(6) = -3.042E-3 392 devk4(6) = -4.08E-3 393 devk5(6) = 0.0714E-3 394 !! 395 devk1(7) = -25.60 396 devk2(7) = 0.2324 397 devk3(7) = -3.6246E-3 398 devk4(7) = -5.13E-3 399 devk5(7) = 0.0794E-3 400 !! 401 !! For calcite with Edmond and Gieske 1970 402 !! devkst = 0.23 403 !! devks = 35.4 404 !! Millero 95 takes this depth dependance for calcite 405 devk1(8) = -48.76 406 devk2(8) = 0.5304 407 devk3(8) = 0. 408 devk4(8) = -11.76E-3 409 devk5(8) = 0.3692E-3 410 !! 411 !! Coefficients for sulfate and fluoride 412 devk1(9) = -18.03 413 devk2(9) = 0.0466 414 devk3(9) = 0.316E-3 415 devk4(9) = -4.53E-3 416 devk5(9) = 0.09E-3 417 418 devk1(10) = -9.78 419 devk2(10) = -0.0090 420 devk3(10) = -0.942E-3 421 devk4(10) = -3.91E-3 422 devk5(10) = 0.054E-3 423 287 424 288 425 !! Set universal gas constants … … 333 470 c23 = -0.000118 334 471 472 !! Set constants for calculate concentrations for sulfate and fluoride 473 !! sulfates (Morris & Riley 1966) 474 !!---------------------------------------------------------------------- 475 476 st1 = 0.14 477 st2 = 1./96.062 478 479 !! fluoride 480 !!------------ 481 482 ft1 = 0.000067 483 ft2 = 1./18.9984 484 485 !! sulfates (Dickson 1990 change to mol:kg soln, idem OCMIP) 486 !!---------------------------------------------------------- 487 488 ks0 = 141.328 489 ks1 = -4276.1 490 ks2 = -23.093 491 ks3 = -13856 492 ks4 = 324.57 493 ks5 = -47.986 494 ks6 = 35474 495 ks7 = -771.54 496 ks8 = 114.723 497 ks9 = -2698 498 ks10 = 1776 499 ks11 = 1. 500 ks12 = -0.001005 501 502 !! fluorides (Dickson & Riley 1979 change to mol/kg soln) 503 !!------------------------------------------------------- 504 kf0 = -12.641 505 kf1 = 1590.2 506 kf2 = 1.525 507 kf3 = 1.0 508 kf4 = -0.001005 509 510 !! 335 511 !! Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970) 336 512 !! ------------------------------------------------------------------ … … 349 525 cb11 = 0.053105 350 526 527 351 528 !! Set coeff. for dissoc. of water (Dickson and Riley, 1979, 352 529 !! eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415 … … 362 539 cw6 = -0.01615 363 540 364 ! 365 ! Set coeff. for dissoc. of phosphate (Millero (1974)366 ! ---------------------------------------------------367 !368 cp10 = 115.5 25541 542 !! Set coeff. for dissoc. of phosphate (Millero (1974) 543 !! --------------------------------------------------- 544 545 cp10 = 115.54 369 546 cp11 = -4576.752 370 547 cp12 = -18.453 … … 374 551 cp16 = -0.01844 375 552 376 cp20 = 172. 0883553 cp20 = 172.1033 377 554 cp21 = -8814.715 378 555 cp22 = -27.927 … … 383 560 384 561 385 cp30 = -18.1 41562 cp30 = -18.126 386 563 cp31 = -3070.75 387 564 cp32 = 17.27039 … … 389 566 cp34 = -44.99486 390 567 cp35 = -0.09984 391 ! 392 ! Set coeff. for dissoc. of phosphate (Millero (1974) 393 ! --------------------------------------------------- 394 ! 568 569 570 !! Set coeff. for dissoc. of phosphate (Millero (1974) 571 !! --------------------------------------------------- 572 395 573 cs10 = 117.385 396 574 cs11 = -8904.2 … … 402 580 cs17 = -12.1652 403 581 cs18 = 0.07871 404 cs19 = -0.001005 582 cs19 = 0. 583 cs20 = 1. 584 cs21 = -0.001005 585 405 586 406 587 !! Set volumetric solubility constants for o2 in ml/l (Weiss, 1970) -
trunk/NEMO/TOP_SRC/SMS/trclsm.pisces.h90
r341 r617 34 34 ! ------------------ 35 35 ! 36 NAMELIST/natgas/ gasfac, igaswind, icice37 36 NAMELIST/natext/ atcco2 38 NAMELIST/natbio/caco3r, 37 NAMELIST/natbio/caco3r, kdca, nca, part, & 39 38 & dispo0,conc0,oxymin,grosip, sedlam, & 40 39 & sedlostpoc,sedlostcal,sedlostsil,nrdttrc, & … … 49 48 & chlcnm,chlcdm, sedfeinput 50 49 NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput 50 #if defined key_trc_kriest 51 NAMELIST/natkriest/xkr_eta,xkr_zeta,xkr_sfact,xkr_mass_min,xkr_mass_max,& 52 & xkr_dnano,xkr_ddiat,xkr_dmeso,xkr_daggr,xkr_stick 53 #endif 51 54 52 55 ! initialize the number of LOGICAL UNIT used … … 68 71 69 72 70 ! 1 Namelist natgas : 71 ! ------------------- 72 73 READ(numnat,natgas) 74 75 IF(lwp) THEN 76 WRITE(numout,*) ' ' 77 WRITE(numout,*) 'natgas' 78 write(numout,*) 'gasfac = ',gasfac 79 WRITE(numout,*) ' ' 80 write(numout,*) 'igaswind = ',igaswind 81 WRITE(numout,*) ' ' 82 write(numout,*) 'icice = ',icice 83 WRITE(numout,*) ' ' 84 ENDIF 85 86 ! 2 Namelist natext : 73 ! 1 Namelist natext : 87 74 ! ------------------- 88 75 READ(numnat,natext) … … 104 91 & ' mean rainratio =', caco3r 105 92 WRITE(numout,*) & 93 & ' diss. rate constant calcite (per month) =', kdca 94 WRITE(numout,*) & 95 & ' order of reaction for calcite dissolution =', nca 96 WRITE(numout,*) & 97 & ' part of calcite not dissolved in guts =', part 98 WRITE(numout,*) & 106 99 & ' mean Si/C ratio =', grosip 107 100 WRITE(numout,*) & … … 112 105 & ' Sediment bioturbation factor =', sedlam 113 106 WRITE(numout,*) & 114 & ' Sediment burying ratio for POC =', sedlostpoc115 WRITE(numout,*) & 116 & ' Sediment burying ratio for CACO3 =', sedlostcal117 WRITE(numout,*) & 118 & ' Sediment burying ratio for SI =', sedlostsil107 & ' Sediment burying ratio for POC =', sedlostpoc 108 WRITE(numout,*) & 109 & ' Sediment burying ratio for CACO3 =', sedlostcal 110 WRITE(numout,*) & 111 & ' Sediment burying ratio for SI =', sedlostsil 119 112 WRITE(numout,*) & 120 113 & ' frequence pour la biologie =', nrdttrc … … 125 118 WRITE(numout,*) & 126 119 & ' POC sinking speed =', wsbio 120 WRITE(numout,*) & 121 & ' quadratic mortality of phytoplankton =', wchl 122 WRITE(numout,*) & 123 & ' maximum quadratic mortality of diatoms =', wchld 127 124 WRITE(numout,*) & 128 125 & ' exsudation rate of zooplankton =', resrat … … 240 237 ENDIF 241 238 239 #if defined key_trc_kriest 240 241 READ(numnat,natkriest) 242 IF(lwp) THEN 243 WRITE(numout,*) ' ' 244 WRITE(numout,*) 'natkriest' 245 WRITE(numout,*) ' ' 246 WRITE(numout,*) 'Sinking exponent xkr_eta = ', xkr_eta 247 WRITE(numout,*) 'N content exponent xkr_zeta = ', xkr_zeta 248 WRITE(numout,*) 'Sinking factor xkr_sfact = ', xkr_sfact 249 WRITE(numout,*) 'Stickiness xkr_stick = ', xkr_stick 250 WRITE(numout,*) 'Minimum mass for Aggregates xkr_mass_min = ', xkr_mass_min 251 WRITE(numout,*) 'Maximum mass for Aggregates xkr_mass_max = ', xkr_mass_max 252 WRITE(numout,*) 'Size of particles in nano pool xkr_dnano = ', xkr_dnano 253 WRITE(numout,*) 'Size of particles in diatoms pool xkr_ddiat = ', xkr_ddiat 254 WRITE(numout,*) 'Size of particles in mesozoo pool xkr_dmeso = ', xkr_dmeso 255 WRITE(numout,*) 'Size of particles in aggregates pool xkr_daggr = ', xkr_daggr 256 ENDIF 257 258 259 ! Computation of some variables 260 xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta 261 ! max and min vertical particle speed 262 xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta 263 xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta 264 WRITE(numout,*) ' max and min vertical particle speed ',xkr_wsbio_min,xkr_wsbio_max 265 ! 266 ! effect of the sizes of the different living pools on particle numbers 267 ! nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337 268 ! diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718 269 ! mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147 270 ! aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877 271 ! doc aggregates = 1um 272 ! ---------------------------------------------------------- 273 274 xkr_nnano = 1. / ( xkr_massp * xkr_dnano ) 275 xkr_ndiat = 1. / ( xkr_massp * xkr_ddiat ) 276 xkr_nmeso = 1. / ( xkr_massp * xkr_dmeso ) 277 xkr_naggr = 1. / ( xkr_massp * xkr_daggr ) 278 279 280 #endif 281 242 282 END SUBROUTINE trc_lsm -
trunk/NEMO/TOP_SRC/initrc.F90
r345 r617 32 32 !! * Accessibility 33 33 PUBLIC ini_trc 34 34 35 !! * Substitutions 36 # include "domzgr_substitute.h90" 37 35 38 CONTAINS 36 39 … … 60 63 !! OPA.9, 03-2005 61 64 !!--------------------------------------------------------------------- 65 INTEGER :: ji, jj, jk, jn !: dummy loop indices 62 66 63 67 !! 0.b PRINT the number of tracer … … 83 87 CALL trc_ini 84 88 85 ! 4. restart from a FILE (nutrst) 86 ! ---------------------- 89 90 ! 4. total volume of the ocean 91 !----------------------------- 92 93 areatot = 0. 94 DO jk = 1, jpk 95 DO jj = 1, jpj 96 DO ji = 1, jpi 97 areatot = areatot + tmask(ji,jj,jk) * tmask_i(ji,jj) & 98 #if defined key_off_degrad 99 & * facvol(ji,jj,jk) & 100 #endif 101 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 102 END DO 103 END DO 104 END DO 105 IF( lk_mpp ) THEN 106 CALL mpp_sum(areatot) ! sum over the global domain 107 END IF 108 109 IF(lwp) WRITE(numout,*) ' ' 110 IF (lwp) WRITE(numout,*) 'Total volume of ocean =',areatot 111 IF(lwp) WRITE(numout,*) ' ' 112 113 ! 5. Initialization of tracers 114 ! ----------------------------- 87 115 88 116 IF( lrsttr ) THEN 89 117 90 91 CALL trc_rst 118 ! 5.1 restart from a file 119 !------------------------ 120 CALL trc_rst_read 92 121 93 122 ELSE 94 123 95 ! start from anything ELSE96 124 ! 5.2 analytical formulation or global data 125 !------------------------------------- 97 126 CALL trc_dtr 98 127 99 128 ENDIF 100 129 101 ! 5. Print control 130 131 ! 6. Computation integral of all tracers 132 !------------------ 133 134 trai = 0. 135 DO jn = 1, jptra 136 DO jk = 1, jpk 137 DO jj = 1, jpj 138 DO ji = 1, jpi 139 trai = trai + trn(ji,jj,jk,jn) * tmask(ji,jj,jk) * tmask_i(ji,jj) & 140 #if defined key_off_degrad 141 & * facvol(ji,jj,jk) & 142 #endif 143 144 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 145 END DO 146 END DO 147 END DO 148 ENDDO 149 150 IF( lk_mpp ) THEN 151 CALL mpp_sum(trai) ! sum over the global domain 152 END IF 153 154 IF(lwp) WRITE(numout,*) ' ' 155 IF(lwp) WRITE(numout,*) 'Integral of all tracers over the full domain at initial time =',trai 156 IF(lwp) WRITE(numout,*) ' ' 157 158 ! 6. Print control 102 159 !------------------ 103 160 … … 106 163 END SUBROUTINE ini_trc 107 164 165 108 166 #else 109 167 !!====================================================================== … … 111 169 !!====================================================================== 112 170 CONTAINS 113 SUBROUTINE ini_trc 114 171 SUBROUTINE ini_trc 115 172 END SUBROUTINE ini_trc 116 173 #endif -
trunk/NEMO/TOP_SRC/par_trc_trp.F90
r433 r617 45 45 !! 'key_trc_pisces' : PISCES Source Minus Sink model 46 46 !!--------------------------------------------------------------------- 47 #if ! defined key_trc_kriest 47 48 INTEGER, PUBLIC, PARAMETER :: jptra = 24 48 49 #if defined key_trc_diaadd 49 50 INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 50 51 INTEGER, PUBLIC, PARAMETER :: jpdia3d = 11 52 # endif 53 #else 54 INTEGER, PUBLIC, PARAMETER :: jptra = 23 55 #if defined key_trc_diaadd 56 INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 57 INTEGER, PUBLIC, PARAMETER :: jpdia3d = 18 58 # endif 51 59 #endif 52 60 #else -
trunk/NEMO/TOP_SRC/trcdtr.F90
r493 r617 63 63 #if defined key_trc_pisces 64 64 REAL(wp) :: alka0,oxyg0,calc0,bioma0, & 65 silic1,po4,no3,caralk,bicarb 65 silic1,po4,no3,caralk,bicarb,co3 66 66 #endif 67 67 !!--------------------------------------------------------------------- … … 91 91 92 92 trn(:,:,:,jpdic) = sco2 93 trn(:,:,:,jpdoc) = bioma0 93 94 trn(:,:,:,jptal) = alka0 94 95 trn(:,:,:,jpoxy) = oxyg0 96 trn(:,:,:,jpcal) = calc0 95 97 trn(:,:,:,jppo4) = po4 96 98 trn(:,:,:,jppoc) = bioma0 99 #if ! defined key_trc_kriest 100 trn(:,:,:,jpgoc) = bioma0 101 trn(:,:,:,jpbfe) = bioma0*5E-6 102 #else 103 trn(:,:,:,jpnum) = bioma0/(6.*xkr_massp) 104 #endif 97 105 trn(:,:,:,jpsil) = silic1 98 trn(:,:,:,jpcal) = calc0 106 trn(:,:,:,jpbsi) = bioma0*0.15 107 trn(:,:,:,jpdsi) = bioma0*5.E-6 99 108 trn(:,:,:,jpphy) = bioma0 109 trn(:,:,:,jpdia) = bioma0 100 110 trn(:,:,:,jpzoo) = bioma0 101 trn(:,:,:,jpdoc) = bioma0102 trn(:,:,:,jpdia) = bioma0103 111 trn(:,:,:,jpmes) = bioma0 104 trn(:,:,:,jpbsi) = bioma0*0.15105 112 trn(:,:,:,jpfer) = 0.6E-9 106 trn(:,:,:,jpbfe) = bioma0*5E-6107 trn(:,:,:,jpgoc) = bioma0108 113 trn(:,:,:,jpsfe) = bioma0*5.E-6 109 114 trn(:,:,:,jpdfe) = bioma0*5.E-6 110 115 trn(:,:,:,jpnfe) = bioma0*5.E-6 111 trn(:,:,:,jpdsi) = bioma0*5.E-6112 116 trn(:,:,:,jpnch) = bioma0*12./55. 113 117 trn(:,:,:,jpdch) = bioma0*12./55. 114 trn(:,:,:,jpno3) = no3 118 trn(:,:,:,jpno3) = no3 115 119 trn(:,:,:,jpnh4) = bioma0 120 116 121 117 122 !! Initialization of chemical variables of the carbon cycle … … 123 128 caralk = trn(ji,jj,jk,jptal)- & 124 129 borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) 125 co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk) &126 +(1.-tmask(ji,jj,jk))*.5e-3130 co3 = (caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk) & 131 & +(1.-tmask(ji,jj,jk))*.5e-3 127 132 bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) 128 hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3 (ji,jj,jk)) &133 hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3) & 129 134 *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 130 135 ENDDO … … 132 137 ENDDO 133 138 134 h2co3(:,:) = 1.e-5135 139 136 140 !! initialize the half saturation constant for silicate
Note: See TracChangeset
for help on using the changeset viewer.