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.
sedco3.F90 in NEMO/branches/UKMO/dev_r10037_GPU/src/TOP/PISCES/SED – NEMO

source: NEMO/branches/UKMO/dev_r10037_GPU/src/TOP/PISCES/SED/sedco3.F90 @ 10843

Last change on this file since 10843 was 10843, checked in by andmirek, 5 years ago

ticket #2197 merge with dev_r9950_GO8_package at 10320

File size: 2.7 KB
Line 
1MODULE sedco3
2   !!======================================================================
3   !!              ***  MODULE  sedco3  ***
4   !!    Sediment : carbonate in sediment pore water
5   !!=====================================================================
6   !! * Modules used
7   USE sed     ! sediment global variable
8   USE sedchem
9   USE lib_mpp         ! distribued memory computing library
10
11
12   IMPLICIT NONE
13   PRIVATE
14
15   !! *  Routine accessibility
16   PUBLIC sed_co3     
17
18   !!----------------------------------------------------------------------
19   !!   OPA 9.0   !   LODYC-IPSL   (2003)
20   !!----------------------------------------------------------------------
21
22   !! $Id$
23CONTAINS
24
25
26   SUBROUTINE sed_co3( kt )
27      !!----------------------------------------------------------------------
28      !!                   ***  ROUTINE sed_co3  ***
29      !!
30      !! ** Purpose :  carbonate ion and proton concentration
31      !!               in sediment pore water
32      !!
33      !! ** Methode :  - solving nonlinear equation for [H+] with given alkalinity
34      !!               and total co2
35      !!               - one dimensional newton-raphson algorithm for [H+])
36      !!
37      !!   History :
38      !!        !  98-08 (E. Maier-Reimer, Christoph Heinze )  Original code
39      !!        !  04-10 (N. Emprin, M. Gehlen ) coupled with PISCES
40      !!        !  06-04 (C. Ethe)  Re-organization
41      !!----------------------------------------------------------------------
42      !! * Arguments
43      INTEGER, INTENT(in)  :: kt   ! time step
44      !
45      !---Local variables
46      INTEGER  :: ji, jk           ! dummy loop indices
47
48      REAL(wp), DIMENSION(jpoce,jpksed) :: zhinit, zhi
49     !!----------------------------------------------------------------------
50
51      IF( ln_timing )  CALL timing_start('sed_co3')
52
53      IF( kt == nitsed000 ) THEN
54         IF (lwp) WRITE(numsed,*) ' sed_co3 : carbonate ion and proton concentration calculation  '
55         IF (lwp) WRITE(numsed,*) ' '
56      ENDIF
57
58      DO jk = 1, jpksed
59         zhinit(:,jk)   = hipor(:,jk) / densSW(:)
60      END DO
61
62      !     -------------------------------------------
63      !     COMPUTE [CO3--] and [H+] CONCENTRATIONS
64      !     -------------------------------------------
65
66      CALL solve_at_general_sed(zhinit, zhi)
67
68      DO jk = 1, jpksed
69         DO ji = 1, jpoce
70            co3por(ji,jk) = pwcp(ji,jk,jwdic) * ak1s(ji) * ak2s(ji) / (zhi(ji,jk)**2   &
71            &               + ak1s(ji) * zhi(ji,jk) + ak1s(ji) * ak2s(ji) + rtrn )
72            hipor(ji,jk)  = zhi(ji,jk) * densSW(ji)
73         END DO
74      END DO
75
76     IF( ln_timing )  CALL timing_stop('sed_co3')
77
78   END SUBROUTINE sed_co3
79
80END MODULE sedco3
Note: See TracBrowser for help on using the repository browser.