source: NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/SED/sedbtb.F90 @ 10345

Last change on this file since 10345 was 10345, checked in by smasson, 2 years ago

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10344, see #2133

  • Property svn:keywords set to Id
File size: 2.3 KB
Line 
1MODULE 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
9   USE lib_mpp         ! distribued memory computing library
10
11   IMPLICIT NONE
12   PRIVATE
13
14   PUBLIC sed_btb
15
16
17   !! $Id$
18CONTAINS
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
38      REAL(wp), DIMENSION(jpoce,jpksedm1,jpsol) ::  zsol  !   solution
39      !------------------------------------------------------------------------
40
41      IF( ln_timing )  CALL timing_start('sed_btb')
42
43      IF( kt == nitsed000 ) THEN
44         IF (lwp) WRITE(numsed,*) ' sed_btb : Bioturbation  '
45         IF (lwp) WRITE(numsed,*) ' '
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
62      CALL sed_mat( jpsol, jpoce, jpksedm1, zsol, dtsed / 2.0 )
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
75      IF( ln_timing )  CALL timing_stop('sed_btb')
76
77   END SUBROUTINE sed_btb
78
79END MODULE sedbtb
Note: See TracBrowser for help on using the repository browser.