[3443] | 1 | MODULE sedbtb |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE sedbtb *** |
---|
| 4 | !! Sediment : bioturbation of the solid components |
---|
| 5 | !!===================================================================== |
---|
| 6 | !! * Modules used |
---|
| 7 | USE sed ! sediment global variable |
---|
| 8 | USE sedmat ! linear system of equations |
---|
[10222] | 9 | USE lib_mpp ! distribued memory computing library |
---|
[3443] | 10 | |
---|
[10222] | 11 | IMPLICIT NONE |
---|
| 12 | PRIVATE |
---|
| 13 | |
---|
[3443] | 14 | PUBLIC sed_btb |
---|
| 15 | |
---|
| 16 | |
---|
[5215] | 17 | !! $Id$ |
---|
[3443] | 18 | CONTAINS |
---|
| 19 | |
---|
| 20 | SUBROUTINE sed_btb( kt ) |
---|
| 21 | !!--------------------------------------------------------------------- |
---|
| 22 | !! *** ROUTINE sed_btb *** |
---|
| 23 | !! |
---|
| 24 | !! ** Purpose : performs bioturbation of the solid sediment components |
---|
| 25 | !! |
---|
| 26 | !! ** Method : ``diffusion'' of solid sediment components. |
---|
| 27 | !! |
---|
| 28 | !! History : |
---|
| 29 | !! ! 98-08 (E. Maier-Reimer, Christoph Heinze ) Original code |
---|
| 30 | !! ! 04-10 (N. Emprin, M. Gehlen ) F90 |
---|
| 31 | !! ! 06-04 (C. Ethe) Re-organization |
---|
| 32 | !!---------------------------------------------------------------------- |
---|
| 33 | !!* Arguments |
---|
| 34 | INTEGER, INTENT(in) :: kt ! time step |
---|
| 35 | |
---|
| 36 | ! * local variables |
---|
| 37 | INTEGER :: ji, jk, js |
---|
[10222] | 38 | REAL(wp), DIMENSION(jpoce,jpksedm1,jpsol) :: zsol ! solution |
---|
[3443] | 39 | !------------------------------------------------------------------------ |
---|
| 40 | |
---|
[10222] | 41 | IF( ln_timing ) CALL timing_start('sed_btb') |
---|
| 42 | |
---|
[3443] | 43 | IF( kt == nitsed000 ) THEN |
---|
[10222] | 44 | IF (lwp) WRITE(numsed,*) ' sed_btb : Bioturbation ' |
---|
| 45 | IF (lwp) WRITE(numsed,*) ' ' |
---|
[3443] | 46 | ENDIF |
---|
| 47 | |
---|
| 48 | ! Initializations |
---|
| 49 | !---------------- |
---|
| 50 | zsol(:,:,:) = 0. |
---|
| 51 | |
---|
| 52 | ! right hand side of coefficient matrix |
---|
| 53 | !-------------------------------------- |
---|
| 54 | DO js = 1, jpsol |
---|
| 55 | DO jk = 1, jpksedm1 |
---|
| 56 | DO ji = 1, jpoce |
---|
| 57 | zsol(ji,jk,js) = solcp(ji,jk+1,js) |
---|
| 58 | ENDDO |
---|
| 59 | ENDDO |
---|
| 60 | ENDDO |
---|
| 61 | |
---|
[10222] | 62 | CALL sed_mat( jpsol, jpoce, jpksedm1, zsol, dtsed / 2.0 ) |
---|
[3443] | 63 | |
---|
| 64 | |
---|
| 65 | ! store solution of the tridiagonal system |
---|
| 66 | !------------------------ |
---|
| 67 | DO js = 1, jpsol |
---|
| 68 | DO jk = 1, jpksedm1 |
---|
| 69 | DO ji = 1, jpoce |
---|
| 70 | solcp(ji,jk+1,js) = zsol(ji,jk,js) |
---|
| 71 | ENDDO |
---|
| 72 | ENDDO |
---|
| 73 | ENDDO |
---|
| 74 | |
---|
[10222] | 75 | IF( ln_timing ) CALL timing_stop('sed_btb') |
---|
| 76 | |
---|
[3443] | 77 | END SUBROUTINE sed_btb |
---|
| 78 | |
---|
| 79 | END MODULE sedbtb |
---|