Changeset 15352
- Timestamp:
- 2021-10-12T13:13:34+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedbtb.F90
r15297 r15352 62 62 ! right hand side of coefficient matrix 63 63 !-------------------------------------- 64 CALL sed_mat_btbi( jp sol, solcp, zrearat(:,:,:), dtsed )64 CALL sed_mat_btbi( jpksed, jpsol, solcp, zrearat(:,:,:), dtsed ) 65 65 66 66 DO ji = 1, jpoce -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedfunc.F90
r15297 r15352 78 78 DO jn = 1, jpvode 79 79 js = jsvode(jn) 80 IF (js <= jpwat) CALL sed_mat_dsr( j s, accmask )80 IF (js <= jpwat) CALL sed_mat_dsr( jpksed, js, accmask ) 81 81 END DO 82 call sed_mat_btb( j wnh4, accmask )83 call sed_mat_btb( j wfe2, accmask )82 call sed_mat_btb( jpksed, jwnh4, accmask ) 83 call sed_mat_btb( jpksed, jwfe2, accmask ) 84 84 85 85 do jn = 1, NEQ -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedinorg.F90
r15297 r15352 109 109 psms(:,:) = 0.0 110 110 ! solves tridiagonal system 111 CALL sed_mat_dsri( j wdic, -zrearat(:,:), psms(:,:), dtsed, zundsat )111 CALL sed_mat_dsri( jpksed, jwdic, -zrearat(:,:), psms(:,:), dtsed, zundsat ) 112 112 113 113 ! New solid concentration values (jk=2 to jksed) for cacO3 -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedjac.F90
r15297 r15352 78 78 DO jn = 1, jpvode 79 79 js = jsvode(jn) 80 IF (js <= jpwat) CALL sed_mat_dsrjac( j s, NEQ, NROWPD, jacvode, accmask )80 IF (js <= jpwat) CALL sed_mat_dsrjac( jpksed, js, NEQ, NROWPD, jacvode, accmask ) 81 81 END DO 82 CALL sed_mat_btbjac( j wnh4, NEQ, NROWPD, jacvode, accmask )83 CALL sed_mat_btbjac( j wfe2, NEQ, NROWPD, jacvode, accmask )82 CALL sed_mat_btbjac( jpksed, jwnh4, NEQ, NROWPD, jacvode, accmask ) 83 CALL sed_mat_btbjac( jpksed, jwfe2, NEQ, NROWPD, jacvode, accmask ) 84 84 85 85 IF( ln_timing ) CALL timing_stop('sed_jac') -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedmat.F90
r15297 r15352 25 25 CONTAINS 26 26 27 SUBROUTINE sed_mat_coef 27 SUBROUTINE sed_mat_coef( nksed ) 28 28 !!--------------------------------------------------------------------- 29 29 !! *** ROUTINE sed_mat_coef *** … … 48 48 !!---------------------------------------------------------------------- 49 49 !! * Arguments 50 INTEGER :: ji50 INTEGER, INTENT(in) :: nksed 51 51 52 52 !---Local declarations 53 INTEGER :: j k53 INTEGER :: ji, jk 54 54 REAL(wp) :: aplus, aminus, dxplus, dxminus 55 55 !---------------------------------------------------------------------- … … 66 66 apluss(ji,1) = ( 1.0 / ( volw3d(ji,1) ) ) * aplus / dxplus 67 67 68 DO jk = 2, jpksed - 168 DO jk = 2, nksed - 1 69 69 aminus = ( por(jk-1) + por(jk) ) * 0.5 70 70 dxminus = ( dz3d(ji,jk-1) + dz3d(ji,jk) ) / 2. … … 77 77 END DO 78 78 79 aminus = ( por( jpksed-1) + por(jpksed) ) * 0.580 dxminus = ( dz3d(ji, jpksed-1) + dz3d(ji,jpksed) ) / 2.81 aminuss(ji, jpksed) = ( 1.0 / volw3d(ji,jpksed) ) * aminus / dxminus79 aminus = ( por(nksed-1) + por(nksed) ) * 0.5 80 dxminus = ( dz3d(ji,nksed-1) + dz3d(ji,nksed) ) / 2. 81 aminuss(ji,nksed) = ( 1.0 / volw3d(ji,nksed) ) * aminus / dxminus 82 82 83 83 END DO … … 87 87 END SUBROUTINE sed_mat_coef 88 88 89 SUBROUTINE sed_mat_dsr( n var, accmask )89 SUBROUTINE sed_mat_dsr( nksed, nvar, accmask ) 90 90 !!--------------------------------------------------------------------- 91 91 !! *** ROUTINE sed_mat_dsr *** … … 110 110 !!---------------------------------------------------------------------- 111 111 !! * Arguments 112 INTEGER , INTENT(in) :: nvar ! number of variable112 INTEGER , INTENT(in) :: nvar, nksed ! number of variable 113 113 INTEGER, DIMENSION(jpoce) :: accmask 114 114 INTEGER :: ji … … 116 116 !---Local declarations 117 117 INTEGER :: jk, jn 118 REAL(wp), DIMENSION( jpksed) :: za, zb, zc118 REAL(wp), DIMENSION(nksed) :: za, zb, zc 119 119 120 120 REAL(wp) :: rplus,rminus … … 136 136 zc(1) = -rplus 137 137 138 DO jk = 2, jpksed - 1138 DO jk = 2, nksed - 1 139 139 rminus = aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) 140 140 rplus = apluss (ji,jk) * diff(ji,jk,jn) * radssol(jk,jn) … … 145 145 END DO 146 146 147 rminus = aminuss(ji, jpksed) * diff(ji,jpksed-1,jn) * radssol(jpksed,jn)147 rminus = aminuss(ji,nksed) * diff(ji,nksed-1,jn) * radssol(nksed,jn) 148 148 ! 149 za( jpksed) = -rminus150 zb( jpksed) = rminus151 zc( jpksed) = 0.149 za(nksed) = -rminus 150 zb(nksed) = rminus 151 zc(nksed) = 0. 152 152 153 153 ! solves tridiagonal system of linear equations … … 155 155 156 156 pwcpa(ji,1,jn) = pwcpa(ji,1,jn) - ( zc(1) * pwcp(ji,2,jn) + zb(1) * pwcp(ji,1,jn) ) 157 DO jk = 2, jpksed - 1157 DO jk = 2, nksed - 1 158 158 pwcpa(ji,jk,jn) = pwcpa(ji,jk,jn) - ( zc(jk) * pwcp(ji,jk+1,jn) + za(jk) * pwcp(ji,jk-1,jn) & 159 159 & + zb(jk) * pwcp(ji,jk,jn) ) 160 160 ENDDO 161 pwcpa(ji, jpksed,jn) = pwcpa(ji,jpksed,jn) - ( za(jpksed) * pwcp(ji,jpksed-1,jn) &162 & + zb( jpksed) * pwcp(ji,jpksed,jn) )161 pwcpa(ji,nksed,jn) = pwcpa(ji,nksed,jn) - ( za(nksed) * pwcp(ji,nksed-1,jn) & 162 & + zb(nksed) * pwcp(ji,nksed,jn) ) 163 163 164 164 ENDIF … … 169 169 END SUBROUTINE sed_mat_dsr 170 170 171 SUBROUTINE sed_mat_dsrjac( n var, NEQ, NROWPD, jacvode, accmask )171 SUBROUTINE sed_mat_dsrjac( nksed, nvar, NEQ, NROWPD, jacvode, accmask ) 172 172 !!--------------------------------------------------------------------- 173 173 !! *** ROUTINE sed_mat_dsrjac *** … … 193 193 !!---------------------------------------------------------------------- 194 194 !! * Arguments 195 INTEGER , INTENT(in) :: nvar, NEQ, NROWPD ! number of variable195 INTEGER , INTENT(in) :: nvar, nksed, NEQ, NROWPD ! number of variable 196 196 REAL, DIMENSION(jpoce,NROWPD,NEQ), INTENT(inout) :: jacvode 197 197 INTEGER, DIMENSION(jpoce), INTENT(in) :: accmask … … 199 199 !---Local declarations 200 200 INTEGER :: ji,jk, jn, jnn, jni, jnj ,jnij 201 REAL(wp), DIMENSION( jpksed) :: za, zb, zc201 REAL(wp), DIMENSION(nksed) :: za, zb, zc 202 202 203 203 REAL(wp) :: rplus,rminus … … 219 219 zc(1) = -rplus 220 220 221 DO jk = 2, jpksed - 1221 DO jk = 2, nksed - 1 222 222 rminus = aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) 223 223 rplus = apluss (ji,jk) * diff(ji,jk,jn) * radssol(jk,jn) … … 228 228 END DO 229 229 230 rminus = aminuss(ji, jpksed) * diff(ji,jpksed-1,jn) * radssol(jpksed,jn)230 rminus = aminuss(ji,nksed) * diff(ji,nksed-1,jn) * radssol(nksed,jn) 231 231 ! 232 za( jpksed) = -rminus233 zb( jpksed) = rminus234 zc( jpksed) = 0.232 za(nksed) = -rminus 233 zb(nksed) = rminus 234 zc(nksed) = 0. 235 235 236 236 ! solves tridiagonal system of linear equations … … 242 242 jnij = jnn - jnj + jpvode + 1 243 243 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) -zc(1) 244 DO jk = 2, jpksed - 1244 DO jk = 2, nksed - 1 245 245 jni = (jk-1) * jpvode + jnn 246 246 jnj = (jk-2) * jpvode + jnn … … 254 254 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - zc(jk) 255 255 END DO 256 jni = ( jpksed-1) * jpvode + jnn257 jnj = ( jpksed-2) * jpvode + jnn256 jni = (nksed-1) * jpvode + jnn 257 jnj = (nksed-2) * jpvode + jnn 258 258 jnij = jni - jnj + jpvode + 1 259 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - za( jpksed)259 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - za(nksed) 260 260 jnij = jpvode + 1 261 jacvode(ji, jnij, jni) = jacvode(ji, jnij, jni) - zb( jpksed)261 jacvode(ji, jnij, jni) = jacvode(ji, jnij, jni) - zb(nksed) 262 262 ENDIF 263 263 END DO … … 267 267 END SUBROUTINE sed_mat_dsrjac 268 268 269 SUBROUTINE sed_mat_btbi( n var, psol, preac, dtsed_in )269 SUBROUTINE sed_mat_btbi( nksed, nvar, psol, preac, dtsed_in ) 270 270 !!--------------------------------------------------------------------- 271 271 !! *** ROUTINE sed_mat_btb *** … … 285 285 !!---------------------------------------------------------------------- 286 286 !! * Arguments 287 INTEGER , INTENT(in) :: n var ! number of sediment levels288 289 REAL(wp), DIMENSION(jpoce, jpksed,nvar), INTENT(inout) :: &287 INTEGER , INTENT(in) :: nksed, nvar ! number of sediment levels 288 289 REAL(wp), DIMENSION(jpoce,nksed,nvar), INTENT(inout) :: & 290 290 psol, preac 291 291 … … 301 301 dxplus,dxminus 302 302 303 REAL(wp), DIMENSION( jpksed) :: za, zb, zc304 REAL(wp), DIMENSION( jpksed) :: zr, zgamm303 REAL(wp), DIMENSION(nksed) :: za, zb, zc 304 REAL(wp), DIMENSION(nksed) :: zr, zgamm 305 305 REAL(wp) :: zbet 306 306 … … 321 321 zc(2) = -rplus 322 322 323 DO jk = 3, jpksed - 1323 DO jk = 3, nksed - 1 324 324 aminus = ( por1(jk-1) + por1(jk) ) * 0.5 325 325 aminus = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. … … 337 337 ENDDO 338 338 339 aminus = ( por1( jpksed-1) + por1(jpksed) ) * 0.5340 dxminus = ( dz( jpksed-1) + dz(jpksed) ) / 2.341 rminus = ( dtsed_in / vols( jpksed) ) * db(ji,jpksed-1) * aminus / dxminus339 aminus = ( por1(nksed-1) + por1(nksed) ) * 0.5 340 dxminus = ( dz(nksed-1) + dz(nksed) ) / 2. 341 rminus = ( dtsed_in / vols(nksed) ) * db(ji,nksed-1) * aminus / dxminus 342 342 ! 343 za( jpksed) = -rminus344 zb( jpksed) = 1. + rminus345 zc( jpksed) = 0.343 za(nksed) = -rminus 344 zb(nksed) = 1. + rminus 345 zc(nksed) = 0. 346 346 347 347 ! solves tridiagonal system of linear equations … … 352 352 psol(ji,2,jn) = zr(2) / zbet 353 353 ! 354 DO jk = 3, jpksed354 DO jk = 3, nksed 355 355 zgamm(jk) = zc(jk-1) / zbet 356 356 zbet = zb(jk) - preac(ji,jk,jn) * dtsed_in - za(jk) * zgamm(jk) … … 358 358 ENDDO 359 359 ! 360 DO jk = jpksed - 1, 2, -1360 DO jk = nksed - 1, 2, -1 361 361 psol(ji,jk,jn) = psol(ji,jk,jn) - zgamm(jk+1) * psol(ji,jk+1,jn) 362 362 ENDDO … … 369 369 370 370 371 SUBROUTINE sed_mat_btb( n var, accmask )371 SUBROUTINE sed_mat_btb( nksed, nvar, accmask ) 372 372 !!--------------------------------------------------------------------- 373 373 !! *** ROUTINE sed_mat_btb *** … … 387 387 !! * Arguments 388 388 INTEGER , INTENT(in) :: & 389 nvar 389 nvar, nksed ! number of sediment levels 390 390 INTEGER, DIMENSION(jpoce) :: accmask 391 391 … … 398 398 dxplus,dxminus 399 399 400 REAL(wp), DIMENSION( jpksed) :: za, zb, zc400 REAL(wp), DIMENSION(nksed) :: za, zb, zc 401 401 402 402 !---------------------------------------------------------------------- … … 419 419 zc(2) = -rplus 420 420 421 DO jk = 3, jpksed - 1421 DO jk = 3, nksed - 1 422 422 aminus = ( por1(jk-1) + por1(jk) ) * 0.5 423 423 aminus = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. … … 435 435 ENDDO 436 436 437 aminus = ( por1( jpksed-1) + por1(jpksed) ) * 0.5438 dxminus = ( dz( jpksed-1) + dz(jpksed) ) / 2.439 rminus = ( 1.0 / vols( jpksed) ) * db(ji,jpksed-1) * aminus / dxminus * rads1sol(jpksed,jn)437 aminus = ( por1(nksed-1) + por1(nksed) ) * 0.5 438 dxminus = ( dz(nksed-1) + dz(nksed) ) / 2. 439 rminus = ( 1.0 / vols(nksed) ) * db(ji,nksed-1) * aminus / dxminus * rads1sol(nksed,jn) 440 440 ! 441 za( jpksed) = -rminus442 zb( jpksed) = rminus443 zc( jpksed) = 0.441 za(nksed) = -rminus 442 zb(nksed) = rminus 443 zc(nksed) = 0. 444 444 445 445 ! solves tridiagonal system of linear equations 446 446 ! ----------------------------------------------- 447 447 pwcpa(ji,2,jn) = pwcpa(ji,2,jn) - ( zc(2) * pwcp(ji,3,jn) + zb(2) * pwcp(ji,2,jn) ) 448 DO jk = 3, jpksed-1448 DO jk = 3, nksed-1 449 449 pwcpa(ji,jk,jn) = pwcpa(ji,jk,jn) - ( zc(jk) * pwcp(ji,jk+1,jn) + za(jk) * pwcp(ji,jk-1,jn) & 450 450 & + zb(jk) * pwcp(ji,jk,jn) ) 451 451 ENDDO 452 pwcpa(ji, jpksed,jn) = pwcpa(ji,jpksed,jn) - ( za(jpksed) * pwcp(ji,jpksed-1,jn) &453 & + zb( jpksed) * pwcp(ji,jpksed,jn) )452 pwcpa(ji,nksed,jn) = pwcpa(ji,nksed,jn) - ( za(nksed) * pwcp(ji,nksed-1,jn) & 453 & + zb(nksed) * pwcp(ji,nksed,jn) ) 454 454 ! 455 455 ENDIF … … 460 460 END SUBROUTINE sed_mat_btb 461 461 462 SUBROUTINE sed_mat_btbjac( n var, NEQ, NROWPD, jacvode, accmask )462 SUBROUTINE sed_mat_btbjac( nksed, nvar, NEQ, NROWPD, jacvode, accmask ) 463 463 !!--------------------------------------------------------------------- 464 464 !! *** ROUTINE sed_mat_btb *** … … 477 477 !!---------------------------------------------------------------------- 478 478 !! * Arguments 479 INTEGER , INTENT(in) :: nvar, NEQ, NROWPD ! number of variable479 INTEGER , INTENT(in) :: nvar, nksed, NEQ, NROWPD ! number of variable 480 480 REAL, DIMENSION(jpoce,NROWPD,NEQ), INTENT(inout) :: jacvode 481 481 INTEGER, DIMENSION(jpoce), INTENT(in) :: accmask … … 489 489 dxplus,dxminus 490 490 491 REAL(wp), DIMENSION( jpksed) :: za, zb, zc491 REAL(wp), DIMENSION(nksed) :: za, zb, zc 492 492 493 493 !---------------------------------------------------------------------- … … 510 510 zc(2) = -rplus 511 511 512 DO jk = 3, jpksed - 1512 DO jk = 3, nksed - 1 513 513 aminus = ( por1(jk-1) + por1(jk) ) * 0.5 514 514 aminus = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. … … 526 526 ENDDO 527 527 528 aminus = ( por1( jpksed-1) + por1(jpksed) ) * 0.5529 dxminus = ( dz( jpksed-1) + dz(jpksed) ) / 2.530 rminus = ( 1.0 / vols( jpksed) ) * db(ji,jpksed-1) * aminus / dxminus * rads1sol(jpksed,jn)528 aminus = ( por1(nksed-1) + por1(nksed) ) * 0.5 529 dxminus = ( dz(nksed-1) + dz(nksed) ) / 2. 530 rminus = ( 1.0 / vols(nksed) ) * db(ji,nksed-1) * aminus / dxminus * rads1sol(nksed,jn) 531 531 ! 532 za( jpksed) = -rminus533 zb( jpksed) = rminus534 zc( jpksed) = 0.532 za(nksed) = -rminus 533 zb(nksed) = rminus 534 zc(nksed) = 0. 535 535 536 536 ! solves tridiagonal system of linear equations … … 543 543 jnij = jni - jnj + jpvode + 1 544 544 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) -zc(2) 545 DO jk = 3, jpksed-1545 DO jk = 3, nksed-1 546 546 jni = (jk-1) * jpvode + jnn 547 547 jnj = (jk-2) * jpvode + jnn … … 555 555 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - zc(jk) 556 556 ENDDO 557 jni = ( jpksed-1) * jpvode + jnn558 jnj = ( jpksed-2) * jpvode + jnn557 jni = (nksed-1) * jpvode + jnn 558 jnj = (nksed-2) * jpvode + jnn 559 559 jnij = jni - jnj + jpvode + 1 560 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - za( jpksed)560 jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) - za(nksed) 561 561 jnij = jpvode + 1 562 jacvode(ji, jnij, jni) = jacvode(ji, jnij, jni) - zb( jpksed)562 jacvode(ji, jnij, jni) = jacvode(ji, jnij, jni) - zb(nksed) 563 563 ! 564 564 ENDIF … … 570 570 571 571 572 SUBROUTINE sed_mat_dsri( n var, preac, psms, dtsed_in, psol )572 SUBROUTINE sed_mat_dsri( nksed, nvar, preac, psms, dtsed_in, psol ) 573 573 !!--------------------------------------------------------------------- 574 574 !! *** ROUTINE sed_mat_dsr *** … … 594 594 !!---------------------------------------------------------------------- 595 595 !! * Arguments 596 INTEGER , INTENT(in) :: n var ! number of variable597 598 REAL(wp), DIMENSION(jpoce, jpksed), INTENT(in ) :: preac ! reaction rates599 REAL(wp), DIMENSION(jpoce, jpksed), INTENT(in ) :: psms ! reaction rates600 REAL(wp), DIMENSION(jpoce, jpksed), INTENT(inout) :: psol ! reaction rates596 INTEGER , INTENT(in) :: nksed, nvar ! number of variable 597 598 REAL(wp), DIMENSION(jpoce,nksed), INTENT(in ) :: preac ! reaction rates 599 REAL(wp), DIMENSION(jpoce,nksed), INTENT(in ) :: psms ! reaction rates 600 REAL(wp), DIMENSION(jpoce,nksed), INTENT(inout) :: psol ! reaction rates 601 601 REAL(wp), INTENT(in) :: dtsed_in 602 602 603 603 !---Local declarations 604 604 INTEGER :: ji, jk, jn 605 REAL(wp), DIMENSION(jpoce, jpksed) :: za, zb, zc, zr605 REAL(wp), DIMENSION(jpoce,nksed) :: za, zb, zc, zr 606 606 REAL(wp), DIMENSION(jpoce) :: zbet 607 REAL(wp), DIMENSION(jpoce, jpksed) :: zgamm607 REAL(wp), DIMENSION(jpoce,nksed) :: zgamm 608 608 609 609 REAL(wp) :: rplus,rminus … … 625 625 ENDDO 626 626 627 DO jk = 2, jpksed - 1627 DO jk = 2, nksed - 1 628 628 DO ji = 1, jpoce 629 629 rminus = dtsed_in * aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) … … 637 637 638 638 DO ji = 1, jpoce 639 rminus = dtsed_in * aminuss(ji, jpksed) * diff(ji,jpksed-1,jn) * radssol(jpksed,jn)639 rminus = dtsed_in * aminuss(ji,nksed) * diff(ji,nksed-1,jn) * radssol(nksed,jn) 640 640 ! 641 za(ji, jpksed) = -rminus642 zb(ji, jpksed) = 1. + rminus643 zc(ji, jpksed) = 0.641 za(ji,nksed) = -rminus 642 zb(ji,nksed) = 1. + rminus 643 zc(ji,nksed) = 0. 644 644 END DO 645 645 … … 654 654 655 655 ! 656 DO jk = 2, jpksed656 DO jk = 2, nksed 657 657 DO ji = 1, jpoce 658 658 zgamm(ji,jk) = zc(ji,jk-1) / zbet(ji) … … 662 662 ENDDO 663 663 ! 664 DO jk = jpksed - 1, 1, -1664 DO jk = nksed - 1, 1, -1 665 665 DO ji = 1, jpoce 666 666 psol(ji,jk) = psol(ji,jk) - zgamm(ji,jk+1) * psol(ji,jk+1) -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedorg.F90
r15297 r15352 60 60 preac(:,:) = 0.0_wp 61 61 psms (:,:) = rearatpom(:,:) 62 CALL sed_mat_dsri( j wdic, preac, psms, dtsed, pwcp(:,:,jwdic) )62 CALL sed_mat_dsri( jpksed, jwdic, preac, psms, dtsed, pwcp(:,:,jwdic) ) 63 63 64 64 ! Silicate in pore water 65 65 psms (:,:) = 0.0_wp 66 CALL sed_mat_dsri( j wsil, preac, psms, dtsed, pwcp(:,:,jwsil) )66 CALL sed_mat_dsri( jpksed, jwsil, preac, psms, dtsed, pwcp(:,:,jwsil) ) 67 67 68 68 ! Iron ligands in pore water 69 69 psms (:,:) = ratligc * rearatpom(:,:) 70 70 preac(:,:) = -reac_ligc 71 CALL sed_mat_dsri( j wlgw, preac, psms, dtsed, pwcp(:,:,jwlgw) )71 CALL sed_mat_dsri( jpksed, jwlgw, preac, psms, dtsed, pwcp(:,:,jwlgw) ) 72 72 73 73 IF( ln_timing ) CALL timing_stop('sed_org') -
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedsol.F90
r15351 r15352 60 60 INTEGER :: ji, jk, js, jw, jn, neq ! dummy looop indices 61 61 REAL(wp), DIMENSION( jpoce, jpvode * jpksed ) :: ZXIN, FVAL 62 REAL(wp), DIMENSION(jpoce,jpksed) :: preac 62 63 # if ! defined key_agrif 63 REAL(wp), DIMENSION(jpoce,jpksed) :: preac64 64 INTEGER :: JINDEX, ITOL, IJAC, MLJAC, IMAX 65 65 INTEGER :: MUJAC,LE1, LJAC, LWORK … … 159 159 160 160 ! Compute coefficients commonly used in diffusion 161 CALL sed_mat_coef 161 CALL sed_mat_coef( jpksed ) 162 162 ! Apply bioturbation and compute the impact of the slow SMS on species 163 163 CALL sed_btb( kt ) … … 235 235 236 236 preac(:,:) = 0. 237 CALL sed_mat_dsri( j wpo4, preac, pwcpa(:,:,jwpo4), dtsed, pwcp(:,:,jwpo4) )238 CALL sed_mat_dsri( j walk, preac, pwcpa(:,:,jwalk), dtsed, pwcp(:,:,jwalk) )237 CALL sed_mat_dsri( jpksed, jwpo4, preac, pwcpa(:,:,jwpo4), dtsed, pwcp(:,:,jwpo4) ) 238 CALL sed_mat_dsri( jpksed, jwalk, preac, pwcpa(:,:,jwalk), dtsed, pwcp(:,:,jwalk) ) 239 239 240 240 CALL sed_org( kt )
Note: See TracChangeset
for help on using the changeset viewer.