New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 15352 – NEMO

Changeset 15352


Ignore:
Timestamp:
2021-10-12T13:13:34+02:00 (2 years ago)
Author:
cetlod
Message:

dev_PISCO : minor corrections

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  
    6262      ! right hand side of coefficient matrix 
    6363      !-------------------------------------- 
    64       CALL sed_mat_btbi( jpsol, solcp, zrearat(:,:,:), dtsed ) 
     64      CALL sed_mat_btbi( jpksed, jpsol, solcp, zrearat(:,:,:), dtsed ) 
    6565 
    6666      DO ji = 1, jpoce 
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedfunc.F90

    r15297 r15352  
    7878      DO jn = 1, jpvode 
    7979         js = jsvode(jn) 
    80          IF (js <= jpwat) CALL sed_mat_dsr( js, accmask ) 
     80         IF (js <= jpwat) CALL sed_mat_dsr( jpksed, js, accmask ) 
    8181      END DO 
    82       call sed_mat_btb( jwnh4, accmask ) 
    83       call sed_mat_btb( jwfe2, accmask ) 
     82      call sed_mat_btb( jpksed, jwnh4, accmask ) 
     83      call sed_mat_btb( jpksed, jwfe2, accmask ) 
    8484 
    8585      do jn = 1, NEQ 
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedinorg.F90

    r15297 r15352  
    109109      psms(:,:) = 0.0 
    110110      ! solves tridiagonal system 
    111       CALL sed_mat_dsri( jwdic, -zrearat(:,:), psms(:,:), dtsed, zundsat ) 
     111      CALL sed_mat_dsri( jpksed, jwdic, -zrearat(:,:), psms(:,:), dtsed, zundsat ) 
    112112 
    113113      ! 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  
    7878      DO jn = 1, jpvode 
    7979         js = jsvode(jn) 
    80          IF (js <= jpwat) CALL sed_mat_dsrjac( js, NEQ, NROWPD, jacvode, accmask ) 
     80         IF (js <= jpwat) CALL sed_mat_dsrjac( jpksed, js, NEQ, NROWPD, jacvode, accmask ) 
    8181      END DO 
    82       CALL sed_mat_btbjac( jwnh4, NEQ, NROWPD, jacvode, accmask ) 
    83       CALL sed_mat_btbjac( jwfe2, 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 ) 
    8484 
    8585      IF( ln_timing )  CALL timing_stop('sed_jac') 
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedmat.F90

    r15297 r15352  
    2525 CONTAINS 
    2626 
    27     SUBROUTINE sed_mat_coef 
     27    SUBROUTINE sed_mat_coef( nksed ) 
    2828       !!--------------------------------------------------------------------- 
    2929       !!                  ***  ROUTINE sed_mat_coef  *** 
     
    4848       !!---------------------------------------------------------------------- 
    4949       !! * Arguments 
    50        INTEGER :: ji 
     50       INTEGER, INTENT(in) :: nksed 
    5151 
    5252       !---Local declarations 
    53        INTEGER  ::  jk 
     53       INTEGER  ::  ji, jk 
    5454       REAL(wp) ::  aplus, aminus, dxplus, dxminus 
    5555       !---------------------------------------------------------------------- 
     
    6666          apluss(ji,1) = ( 1.0 / ( volw3d(ji,1) ) ) * aplus / dxplus 
    6767 
    68           DO jk = 2, jpksed - 1 
     68          DO jk = 2, nksed - 1 
    6969             aminus  = ( por(jk-1) + por(jk) ) * 0.5 
    7070             dxminus = ( dz3d(ji,jk-1) + dz3d(ji,jk) ) / 2. 
     
    7777          END DO 
    7878 
    79           aminus  = ( por(jpksed-1) + por(jpksed) ) * 0.5 
    80           dxminus = ( dz3d(ji,jpksed-1) + dz3d(ji,jpksed) ) / 2. 
    81           aminuss(ji,jpksed)  = ( 1.0 / volw3d(ji,jpksed) ) * aminus / dxminus 
     79          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 
    8282 
    8383       END DO 
     
    8787    END SUBROUTINE sed_mat_coef 
    8888 
    89     SUBROUTINE sed_mat_dsr( nvar, accmask ) 
     89    SUBROUTINE sed_mat_dsr( nksed, nvar, accmask ) 
    9090       !!--------------------------------------------------------------------- 
    9191       !!                  ***  ROUTINE sed_mat_dsr  *** 
     
    110110       !!---------------------------------------------------------------------- 
    111111       !! * Arguments 
    112        INTEGER , INTENT(in) ::  nvar  ! number of variable 
     112       INTEGER , INTENT(in) ::  nvar, nksed  ! number of variable 
    113113       INTEGER, DIMENSION(jpoce) :: accmask 
    114114       INTEGER :: ji 
     
    116116       !---Local declarations 
    117117       INTEGER  ::  jk, jn 
    118        REAL(wp), DIMENSION(jpksed) :: za, zb, zc 
     118       REAL(wp), DIMENSION(nksed) :: za, zb, zc 
    119119 
    120120       REAL(wp) ::  rplus,rminus    
     
    136136             zc(1) = -rplus 
    137137  
    138              DO jk = 2, jpksed - 1 
     138             DO jk = 2, nksed - 1 
    139139                rminus  = aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) 
    140140                rplus   = apluss (ji,jk) * diff(ji,jk,jn) * radssol(jk,jn) 
     
    145145             END DO 
    146146 
    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) 
    148148             ! 
    149              za(jpksed) = -rminus 
    150              zb(jpksed) = rminus 
    151              zc(jpksed) = 0. 
     149             za(nksed) = -rminus 
     150             zb(nksed) = rminus 
     151             zc(nksed) = 0. 
    152152 
    153153             ! solves tridiagonal system of linear equations  
     
    155155 
    156156             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 - 1 
     157             DO jk = 2, nksed - 1 
    158158                pwcpa(ji,jk,jn) =  pwcpa(ji,jk,jn) - ( zc(jk) * pwcp(ji,jk+1,jn) + za(jk) * pwcp(ji,jk-1,jn)    & 
    159159                &                  + zb(jk) * pwcp(ji,jk,jn) ) 
    160160             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) ) 
    163163 
    164164          ENDIF 
     
    169169    END SUBROUTINE sed_mat_dsr 
    170170 
    171     SUBROUTINE sed_mat_dsrjac( nvar, NEQ, NROWPD, jacvode, accmask ) 
     171    SUBROUTINE sed_mat_dsrjac( nksed, nvar, NEQ, NROWPD, jacvode, accmask ) 
    172172       !!--------------------------------------------------------------------- 
    173173       !!                  ***  ROUTINE sed_mat_dsrjac  *** 
     
    193193       !!---------------------------------------------------------------------- 
    194194       !! * Arguments 
    195        INTEGER , INTENT(in) ::  nvar, NEQ, NROWPD  ! number of variable 
     195       INTEGER , INTENT(in) ::  nvar, nksed, NEQ, NROWPD  ! number of variable 
    196196       REAL, DIMENSION(jpoce,NROWPD,NEQ), INTENT(inout) :: jacvode 
    197197       INTEGER, DIMENSION(jpoce), INTENT(in) :: accmask 
     
    199199       !---Local declarations 
    200200       INTEGER  ::  ji,jk, jn, jnn, jni, jnj ,jnij 
    201        REAL(wp), DIMENSION(jpksed) :: za, zb, zc 
     201       REAL(wp), DIMENSION(nksed) :: za, zb, zc 
    202202 
    203203       REAL(wp) ::  rplus,rminus 
     
    219219             zc(1) = -rplus 
    220220 
    221              DO jk = 2, jpksed - 1 
     221             DO jk = 2, nksed - 1 
    222222                rminus  = aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) 
    223223                rplus   = apluss (ji,jk) * diff(ji,jk,jn) * radssol(jk,jn) 
     
    228228             END DO 
    229229 
    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) 
    231231             ! 
    232              za(jpksed) = -rminus 
    233              zb(jpksed) = rminus 
    234              zc(jpksed) = 0. 
     232             za(nksed) = -rminus 
     233             zb(nksed) = rminus 
     234             zc(nksed) = 0. 
    235235 
    236236             ! solves tridiagonal system of linear equations  
     
    242242             jnij = jnn - jnj + jpvode + 1 
    243243             jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) -zc(1) 
    244              DO jk = 2, jpksed - 1 
     244             DO jk = 2, nksed - 1 
    245245                jni = (jk-1) * jpvode + jnn 
    246246                jnj = (jk-2) * jpvode + jnn 
     
    254254                jacvode(ji, jnij, jnj)   = jacvode(ji, jnij, jnj) - zc(jk) 
    255255             END DO 
    256              jni = (jpksed-1) * jpvode + jnn 
    257              jnj = (jpksed-2) * jpvode + jnn 
     256             jni = (nksed-1) * jpvode + jnn 
     257             jnj = (nksed-2) * jpvode + jnn 
    258258             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) 
    260260             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) 
    262262          ENDIF 
    263263       END DO 
     
    267267    END SUBROUTINE sed_mat_dsrjac 
    268268 
    269     SUBROUTINE sed_mat_btbi( nvar, psol, preac, dtsed_in ) 
     269    SUBROUTINE sed_mat_btbi( nksed, nvar, psol, preac, dtsed_in ) 
    270270       !!--------------------------------------------------------------------- 
    271271       !!                  ***  ROUTINE sed_mat_btb  *** 
     
    285285       !!---------------------------------------------------------------------- 
    286286       !! * Arguments 
    287        INTEGER , INTENT(in) :: nvar      ! number of sediment levels 
    288  
    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) :: & 
    290290          psol, preac 
    291291 
     
    301301          dxplus,dxminus 
    302302 
    303        REAL(wp), DIMENSION(jpksed)    :: za, zb, zc 
    304        REAL(wp), DIMENSION(jpksed)    :: zr, zgamm 
     303       REAL(wp), DIMENSION(nksed)    :: za, zb, zc 
     304       REAL(wp), DIMENSION(nksed)    :: zr, zgamm 
    305305       REAL(wp) ::  zbet 
    306306 
     
    321321         zc(2) = -rplus 
    322322 
    323          DO jk = 3, jpksed - 1 
     323         DO jk = 3, nksed - 1 
    324324            aminus  = ( por1(jk-1) + por1(jk) ) * 0.5 
    325325            aminus  = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. 
     
    337337         ENDDO 
    338338 
    339          aminus = ( por1(jpksed-1) + por1(jpksed) ) * 0.5 
    340          dxminus = ( dz(jpksed-1) + dz(jpksed) ) / 2. 
    341          rminus  = ( dtsed_in / vols(jpksed) ) * db(ji,jpksed-1) * aminus / dxminus 
     339         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 
    342342         ! 
    343          za(jpksed) = -rminus 
    344          zb(jpksed) = 1. + rminus 
    345          zc(jpksed) = 0. 
     343         za(nksed) = -rminus 
     344         zb(nksed) = 1. + rminus 
     345         zc(nksed) = 0. 
    346346 
    347347         ! solves tridiagonal system of linear equations  
     
    352352            psol(ji,2,jn) = zr(2) / zbet 
    353353            !  
    354             DO jk = 3, jpksed 
     354            DO jk = 3, nksed 
    355355               zgamm(jk) =  zc(jk-1) / zbet 
    356356               zbet      =  zb(jk) - preac(ji,jk,jn) * dtsed_in - za(jk) * zgamm(jk) 
     
    358358            ENDDO 
    359359            !  
    360             DO jk = jpksed - 1, 2, -1 
     360            DO jk = nksed - 1, 2, -1 
    361361               psol(ji,jk,jn) = psol(ji,jk,jn) - zgamm(jk+1) * psol(ji,jk+1,jn) 
    362362            ENDDO 
     
    369369 
    370370 
    371     SUBROUTINE sed_mat_btb( nvar, accmask ) 
     371    SUBROUTINE sed_mat_btb( nksed, nvar, accmask ) 
    372372       !!--------------------------------------------------------------------- 
    373373       !!                  ***  ROUTINE sed_mat_btb  *** 
     
    387387       !! * Arguments 
    388388       INTEGER , INTENT(in) :: & 
    389           nvar      ! number of sediment levels 
     389          nvar, nksed     ! number of sediment levels 
    390390       INTEGER, DIMENSION(jpoce) :: accmask 
    391391 
     
    398398          dxplus,dxminus 
    399399 
    400        REAL(wp), DIMENSION(jpksed)      :: za, zb, zc 
     400       REAL(wp), DIMENSION(nksed)      :: za, zb, zc 
    401401 
    402402       !---------------------------------------------------------------------- 
     
    419419         zc(2) = -rplus 
    420420 
    421          DO jk = 3, jpksed - 1 
     421         DO jk = 3, nksed - 1 
    422422            aminus  = ( por1(jk-1) + por1(jk) ) * 0.5 
    423423            aminus  = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. 
     
    435435         ENDDO 
    436436 
    437          aminus = ( por1(jpksed-1) + por1(jpksed) ) * 0.5 
    438          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) 
    440440         ! 
    441          za(jpksed) = -rminus 
    442          zb(jpksed) = rminus 
    443          zc(jpksed) = 0. 
     441         za(nksed) = -rminus 
     442         zb(nksed) = rminus 
     443         zc(nksed) = 0. 
    444444 
    445445         ! solves tridiagonal system of linear equations  
    446446         ! -----------------------------------------------     
    447447         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-1 
     448         DO jk = 3, nksed-1 
    449449            pwcpa(ji,jk,jn) =  pwcpa(ji,jk,jn) - ( zc(jk) * pwcp(ji,jk+1,jn) + za(jk) * pwcp(ji,jk-1,jn)    & 
    450450            &                  + zb(jk) * pwcp(ji,jk,jn) ) 
    451451         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) ) 
    454454         !  
    455455         ENDIF 
     
    460460    END SUBROUTINE sed_mat_btb 
    461461 
    462     SUBROUTINE sed_mat_btbjac( nvar, NEQ, NROWPD, jacvode, accmask ) 
     462    SUBROUTINE sed_mat_btbjac( nksed, nvar, NEQ, NROWPD, jacvode, accmask ) 
    463463       !!--------------------------------------------------------------------- 
    464464       !!                  ***  ROUTINE sed_mat_btb  *** 
     
    477477       !!---------------------------------------------------------------------- 
    478478       !! * Arguments 
    479        INTEGER , INTENT(in) ::  nvar, NEQ, NROWPD  ! number of variable 
     479       INTEGER , INTENT(in) ::  nvar, nksed, NEQ, NROWPD  ! number of variable 
    480480       REAL, DIMENSION(jpoce,NROWPD,NEQ), INTENT(inout) :: jacvode 
    481481       INTEGER, DIMENSION(jpoce), INTENT(in) :: accmask 
     
    489489          dxplus,dxminus 
    490490 
    491        REAL(wp), DIMENSION(jpksed)      :: za, zb, zc 
     491       REAL(wp), DIMENSION(nksed)      :: za, zb, zc 
    492492 
    493493       !---------------------------------------------------------------------- 
     
    510510         zc(2) = -rplus 
    511511 
    512          DO jk = 3, jpksed - 1 
     512         DO jk = 3, nksed - 1 
    513513            aminus  = ( por1(jk-1) + por1(jk) ) * 0.5 
    514514            aminus  = ( ( vols(jk-1) / dz(jk-1) ) + ( vols(jk) / dz(jk) ) ) / 2. 
     
    526526         ENDDO 
    527527 
    528          aminus = ( por1(jpksed-1) + por1(jpksed) ) * 0.5 
    529          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) 
    531531         ! 
    532          za(jpksed) = -rminus 
    533          zb(jpksed) = rminus 
    534          zc(jpksed) = 0. 
     532         za(nksed) = -rminus 
     533         zb(nksed) = rminus 
     534         zc(nksed) = 0. 
    535535 
    536536         ! solves tridiagonal system of linear equations  
     
    543543         jnij = jni - jnj + jpvode + 1 
    544544         jacvode(ji, jnij, jnj) = jacvode(ji, jnij, jnj) -zc(2) 
    545          DO jk = 3, jpksed-1 
     545         DO jk = 3, nksed-1 
    546546            jni = (jk-1) * jpvode + jnn 
    547547            jnj = (jk-2) * jpvode + jnn 
     
    555555            jacvode(ji, jnij, jnj)   = jacvode(ji, jnij, jnj) - zc(jk) 
    556556         ENDDO 
    557          jni = (jpksed-1) * jpvode + jnn 
    558          jnj = (jpksed-2) * jpvode + jnn 
     557         jni = (nksed-1) * jpvode + jnn 
     558         jnj = (nksed-2) * jpvode + jnn 
    559559         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) 
    561561         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) 
    563563         !  
    564564         ENDIF 
     
    570570 
    571571 
    572     SUBROUTINE sed_mat_dsri( nvar, preac, psms, dtsed_in, psol ) 
     572    SUBROUTINE sed_mat_dsri( nksed, nvar, preac, psms, dtsed_in, psol ) 
    573573       !!--------------------------------------------------------------------- 
    574574       !!                  ***  ROUTINE sed_mat_dsr  *** 
     
    594594       !!---------------------------------------------------------------------- 
    595595       !! * Arguments 
    596        INTEGER , INTENT(in) ::  nvar  ! number of variable 
    597  
    598        REAL(wp), DIMENSION(jpoce,jpksed), INTENT(in   ) :: preac  ! reaction rates 
    599        REAL(wp), DIMENSION(jpoce,jpksed), INTENT(in   ) :: psms  ! reaction rates 
    600        REAL(wp), DIMENSION(jpoce,jpksed), INTENT(inout) :: psol  ! reaction rates 
     596       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 
    601601       REAL(wp), INTENT(in) ::  dtsed_in 
    602602 
    603603       !---Local declarations 
    604604       INTEGER  ::  ji, jk, jn 
    605        REAL(wp), DIMENSION(jpoce,jpksed) :: za, zb, zc, zr 
     605       REAL(wp), DIMENSION(jpoce,nksed) :: za, zb, zc, zr 
    606606       REAL(wp), DIMENSION(jpoce)        :: zbet 
    607        REAL(wp), DIMENSION(jpoce,jpksed) :: zgamm 
     607       REAL(wp), DIMENSION(jpoce,nksed) :: zgamm 
    608608 
    609609       REAL(wp) ::  rplus,rminus 
     
    625625       ENDDO 
    626626 
    627        DO jk = 2, jpksed - 1 
     627       DO jk = 2, nksed - 1 
    628628          DO ji = 1, jpoce 
    629629             rminus  = dtsed_in * aminuss(ji,jk) * diff(ji,jk-1,jn) * radssol(jk,jn) 
     
    637637 
    638638       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) 
    640640          ! 
    641           za(ji,jpksed) = -rminus 
    642           zb(ji,jpksed) = 1. + rminus 
    643           zc(ji,jpksed) = 0. 
     641          za(ji,nksed) = -rminus 
     642          zb(ji,nksed) = 1. + rminus 
     643          zc(ji,nksed) = 0. 
    644644       END DO 
    645645 
     
    654654 
    655655          !  
    656        DO jk = 2, jpksed 
     656       DO jk = 2, nksed 
    657657          DO ji = 1, jpoce 
    658658             zgamm(ji,jk) =  zc(ji,jk-1) / zbet(ji) 
     
    662662       ENDDO 
    663663          !  
    664        DO jk = jpksed - 1, 1, -1 
     664       DO jk = nksed - 1, 1, -1 
    665665          DO ji = 1, jpoce 
    666666             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  
    6060      preac(:,:) = 0.0_wp 
    6161      psms (:,:) = rearatpom(:,:) 
    62       CALL sed_mat_dsri( jwdic, preac, psms, dtsed, pwcp(:,:,jwdic) ) 
     62      CALL sed_mat_dsri( jpksed, jwdic, preac, psms, dtsed, pwcp(:,:,jwdic) ) 
    6363       
    6464      ! Silicate in pore water 
    6565      psms (:,:) = 0.0_wp 
    66       CALL sed_mat_dsri( jwsil, preac, psms, dtsed, pwcp(:,:,jwsil) ) 
     66      CALL sed_mat_dsri( jpksed, jwsil, preac, psms, dtsed, pwcp(:,:,jwsil) ) 
    6767 
    6868      ! Iron ligands in pore water 
    6969      psms (:,:) = ratligc * rearatpom(:,:) 
    7070      preac(:,:) = -reac_ligc 
    71       CALL sed_mat_dsri( jwlgw, preac, psms, dtsed, pwcp(:,:,jwlgw) ) 
     71      CALL sed_mat_dsri( jpksed, jwlgw, preac, psms, dtsed, pwcp(:,:,jwlgw) ) 
    7272 
    7373      IF( ln_timing )  CALL timing_stop('sed_org') 
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/SED/sedsol.F90

    r15351 r15352  
    6060      INTEGER  :: ji, jk, js, jw, jn, neq   ! dummy looop indices 
    6161      REAL(wp), DIMENSION( jpoce, jpvode * jpksed ) :: ZXIN, FVAL 
     62      REAL(wp), DIMENSION(jpoce,jpksed) :: preac 
    6263# if ! defined key_agrif       
    63       REAL(wp), DIMENSION(jpoce,jpksed) :: preac 
    6464      INTEGER :: JINDEX, ITOL, IJAC, MLJAC, IMAX 
    6565      INTEGER :: MUJAC,LE1, LJAC, LWORK 
     
    159159 
    160160      ! Compute coefficients commonly used in diffusion 
    161       CALL sed_mat_coef 
     161      CALL sed_mat_coef( jpksed ) 
    162162      ! Apply bioturbation and compute the impact of the slow SMS on species 
    163163      CALL sed_btb( kt ) 
     
    235235 
    236236      preac(:,:) = 0. 
    237       CALL sed_mat_dsri( jwpo4, preac, pwcpa(:,:,jwpo4), dtsed, pwcp(:,:,jwpo4) ) 
    238       CALL sed_mat_dsri( jwalk, 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) ) 
    239239 
    240240      CALL sed_org( kt ) 
Note: See TracChangeset for help on using the changeset viewer.