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.
seddsr.F90 in branches/UKMO/restart_datestamp/NEMOGCM/NEMO/TOP_SRC/PISCES/SED – NEMO

source: branches/UKMO/restart_datestamp/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/seddsr.F90 @ 5462

Last change on this file since 5462 was 5462, checked in by davestorkey, 9 years ago

Update UKMO/restart_datestamp branch to revision 5442 of trunk. Also clear the SVN keywords again - necessary after the update step.

File size: 19.7 KB
Line 
1MODULE seddsr
2#if defined key_sed
3   !!======================================================================
4   !!              ***  MODULE  seddsr  ***
5   !!    Sediment : dissolution and reaction in pore water
6   !!=====================================================================
7   !! * Modules used
8   USE sed     ! sediment global variable
9   USE sedmat  ! linear system of equations
10   USE sedco3  ! carbonate ion and proton concentration
11
12   PUBLIC sed_dsr
13
14   !! * Module variables
15
16   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: cons_o2
17   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: cons_no3
18   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: sour_no3
19   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC :: sour_c13
20   REAL(wp), DIMENSION(:), ALLOCATABLE, PUBLIC ::  dens_mol_wgt  ! molecular density
21
22   !! $Id$
23CONTAINS
24   
25   SUBROUTINE sed_dsr( kt ) 
26      !!----------------------------------------------------------------------
27      !!                   ***  ROUTINE sed_dsr  ***
28      !!
29      !!  ** Purpose :  computes pore water dissolution and reaction
30      !!
31      !!  ** Methode :  implicit simultaneous computation of undersaturation
32      !!               resulting from diffusive pore water transport and chemical
33      !!               pore water reactions. Solid material is consumed according
34      !!               to redissolution and remineralisation
35      !!
36      !!  ** Remarks :
37      !!              - undersaturation : deviation from saturation concentration
38      !!              - reaction rate   : sink of undersaturation from dissolution
39      !!                                 of solid material
40      !!
41      !!   History :
42      !!        !  98-08 (E. Maier-Reimer, Christoph Heinze )  Original code
43      !!        !  04-10 (N. Emprin, M. Gehlen ) f90
44      !!        !  06-04 (C. Ethe)  Re-organization
45      !!----------------------------------------------------------------------
46      !! Arguments
47      INTEGER, INTENT(in) ::   kt       ! number of iteration
48      ! --- local variables
49      INTEGER :: ji, jk, js, jw   ! dummy looop indices
50      INTEGER :: nv               ! number of variables in linear tridiagonal eq
51
52      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zrearat    ! reaction rate in pore water
53      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zundsat    ! undersaturation ; indice jpwatp1 is for calcite   
54      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmo2_0, zmo2_1  ! temp. array for mass balance calculation
55      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmno3_0, zmno3_1, zmno3_2
56      REAL(wp), DIMENSION(:    ), ALLOCATABLE :: zmc13_0, zmc13_1, zmc13_2, zmc13_3
57      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zvolc    ! temp. variables
58      REAL(wp)  ::  zsolid1, zsolid2, zsolid3, zvolw, zreasat
59
60      !!
61      !!----------------------------------------------------------------------
62
63      IF( kt == nitsed000 ) THEN
64         WRITE(numsed,*) ' sed_dsr : Dissolution reaction '
65         WRITE(numsed,*) ' '
66         !
67         ALLOCATE( dens_mol_wgt((jpoce) ) 
68         dens_mol_wgt(1:jpsol) = dens / mol_wgt(1:jpsol)
69         !
70         ALLOCATE( cons_o2 (jpoce) ) ;   ALLOCATE( cons_no3(jpoce) ) 
71         ALLOCATE( sour_no3(jpoce) ) ;   ALLOCATE( sour_c13(jpoce) ) 
72      ENDIF
73
74      ! Initialization of data for mass balance calculation
75      !---------------------------------------------------
76
77      tokbot(:,:)  = 0.
78      cons_o2 (:)  = 0. 
79      cons_no3(:)  = 0. 
80      sour_no3(:)  = 0. 
81      sour_c13(:)  = 0.       
82   
83      ! Initializations
84      !----------------------
85      ALLOCATE( zmo2_0 (jpoce) ) ;  ALLOCATE( zmo2_1 (jpoce) ) 
86      ALLOCATE( zmno3_0(jpoce) ) ;  ALLOCATE( zmno3_1(jpoce) )  ;  ALLOCATE( zmno3_2(jpoce) ) 
87      ALLOCATE( zmc13_0(jpoce) ) ;  ALLOCATE( zmc13_1(jpoce) )  ;  ALLOCATE( zmc13_2(jpoce) ) ;  ALLOCATE( zmc13_3(jpoce) ) 
88
89      zmo2_0 (:) = 0.  ; zmo2_1 (:) = 0.
90      zmno3_0(:) = 0.  ; zmno3_1(:) = 0.  ;  zmno3_2(:) = 0.
91      zmc13_0(:) = 0.  ; zmc13_1(:) = 0.  ;  zmc13_2(:) = 0.  ; zmc13_3(:) = 0.
92     
93      ALLOCATE( zrearat(jpoce,jpksed,3) ) ;  ALLOCATE( zundsat(jpoce,jpksed,3) )     
94      zrearat(:,:,:)   = 0.    ;   zundsat(:,:,:) = 0. 
95
96
97      ALLOCATE( zvolc(jpoce,jpksed,jpsol) ) 
98      zvolc(:,:,:)   = 0.
99
100      !--------------------------------------------------------------------
101      ! Temporary accomodation to take account of  particule rain deposition
102      !---------------------------------------------------------------------
103     
104     
105      ! 1. Change of geometry
106      !    Increase of dz3d(2) thickness : dz3d(2) = dz3d(2)+dzdep
107      !    Warning : no change for dz(2)
108      !---------------------------------------------------------
109      dz3d(1:jpoce,2) = dz3d(1:jpoce,2) + dzdep(1:jpoce)
110
111     
112      ! New values for volw3d(:,2) and vols3d(:,2)
113      ! Warning : no change neither for volw(2) nor  vols(2)
114      !------------------------------------------------------
115      volw3d(1:jpoce,2) = dz3d(1:jpoce,2) * por(2)
116      vols3d(1:jpoce,2) = dz3d(1:jpoce,2) * por1(2)
117
118      ! Conversion of volume units
119      !----------------------------
120      DO js = 1, jpsol
121         DO jk = 1, jpksed
122            DO ji = 1, jpoce   
123               zvolc(ji,jk,js) = ( vols3d(ji,jk) * dens_mol_wgt(js) ) /  &
124                  &              ( volw3d(ji,jk) * 1.e-3 )     
125            ENDDO
126         ENDDO
127      ENDDO
128
129      ! 2. Change of previous solid fractions (due to volum changes) for k=2
130      !---------------------------------------------------------------------
131
132      DO js = 1, jpsol
133         DO ji = 1, jpoce
134            solcp(ji,2,js) = solcp(ji,2,js) * dz(2) / dz3d(ji,2)
135         ENDDO
136      END DO
137
138      ! 3. New solid fractions (including solid rain fractions) for k=2 
139      !------------------------------------------------------------------   
140      DO js = 1, jpsol
141         DO ji = 1, jpoce
142            solcp(ji,2,js) = solcp(ji,2,js) + &
143            &           ( rainrg(ji,js) / raintg(ji) ) * ( dzdep(ji) / dz3d(ji,2) )
144            ! rainrm are temporary cancel
145            rainrm(ji,js) = 0.
146         END DO
147      ENDDO
148
149      ! 4.  Adjustment of bottom water concen.(pwcp(1)):
150      !     We impose that pwcp(2) is constant. Including dzdep in dz3d(:,2) we assume
151      !     that dzdep has got a porosity of por(2). So pore water volum of jk=2 increase.
152      !     To keep pwcp(2) cste we must compensate this "increase" by a slight adjusment
153      !     of bottom water concentration.
154      !     This adjustment is compensate at the end of routine
155      !-------------------------------------------------------------
156      DO jw = 1, jpwat
157         DO ji = 1, jpoce
158            pwcp(ji,1,jw) = pwcp(ji,1,jw) - &
159               &            pwcp(ji,2,jw) * dzdep(ji) * por(2) / dzkbot(ji)
160         END DO
161      ENDDO
162
163 
164      !----------------------------------------------------------
165      ! 5.  Beginning of  Pore Water diffusion and solid reaction
166      !---------------------------------------------------------
167     
168      !-----------------------------------------------------------------------------
169      ! For jk=2,jpksed, and for couple
170      !  1 : jwsil/jsopal  ( SI/Opal )
171      !  2 : jsclay/jsclay ( clay/clay )
172      !  3 : jwoxy/jspoc   ( O2/POC )
173      !  reaction rate is a function of solid=concentration in solid reactif in [mol/l]
174      !  and undersaturation in [mol/l].
175      !  Solid weight fractions should be in ie [mol/l])
176      !  second member and solution are in zundsat variable
177      !-------------------------------------------------------------------------
178
179      !number of variables
180      nv  = 3
181     
182      DO jk = 1, jpksed
183         DO ji = 1, jpoce
184            ! For Silicic Acid and clay
185            zundsat(ji,jk,1) = sat_sil   - pwcp(ji,jk,jwsil)
186            zundsat(ji,jk,2) = sat_clay
187            ! For O2
188            zundsat(ji,jk,3) = pwcp(ji,jk,jwoxy) / so2ut 
189         ENDDO
190      ENDDO
191     
192     
193      ! Definition of reaction rates [rearat]=sans dim
194      ! For jk=1 no reaction (pure water without solid) for each solid compo
195      DO ji = 1, jpoce
196         zrearat(ji,1,:) = 0.
197      ENDDO
198
199
200      ! left hand side of coefficient matrix
201      DO jk = 2, jpksed
202         DO ji = 1, jpoce
203            zsolid1 = zvolc(ji,jk,jsopal) * solcp(ji,jk,jsopal)
204            zsolid2 = zvolc(ji,jk,jsclay) * solcp(ji,jk,jsclay)
205            zsolid3 = zvolc(ji,jk,jspoc)  * solcp(ji,jk,jspoc)
206
207            zrearat(ji,jk,1)  = ( reac_sil * dtsed * zsolid1 ) / &
208               &                ( 1. + reac_sil * dtsed * zundsat(ji,jk,1 ) )
209            zrearat(ji,jk,2)  = ( reac_clay * dtsed * zsolid2 ) / &
210               &                ( 1. + reac_clay * dtsed * zundsat(ji,jk,2 ) )
211            zrearat(ji,jk,3)  = ( reac_poc  * dtsed * zsolid3 ) / &
212               &                ( 1. + reac_poc  * dtsed * zundsat(ji,jk,3 ) )
213         ENDDO
214      ENDDO
215
216
217      CALL sed_mat( nv, jpoce, jpksed, zrearat, zundsat )
218
219
220      ! New solid concentration values (jk=2 to jksed) for each couple
221      DO js = 1, nv
222         DO jk = 2, jpksed
223            DO ji = 1, jpoce
224               zreasat = zrearat(ji,jk,js) * zundsat(ji,jk,js) / zvolc(ji,jk,js)
225               solcp(ji,jk,js) = solcp(ji,jk,js) - zreasat
226            ENDDO
227         ENDDO
228      ENDDO
229      ! mass of O2/NO3 before POC remin. for mass balance check
230      ! det. of o2 consomation/NO3 production Mc13
231      DO jk = 1, jpksed
232         DO ji = 1, jpoce
233            zvolw = volw3d(ji,jk) * 1.e-3
234            zmo2_0 (ji)  = zmo2_0 (ji) + pwcp(ji,jk,jwoxy) * zvolw
235            zmno3_0(ji)  = zmno3_0(ji) + pwcp(ji,jk,jwno3) * zvolw
236            zmc13_0(ji)  = zmc13_0(ji) + pwcp(ji,jk,jwc13) * zvolw
237         ENDDO
238      ENDDO
239
240      ! New pore water concentrations   
241      DO jk = 1, jpksed
242         DO ji = 1, jpoce
243            ! Acid Silicic
244            pwcp(ji,jk,jwsil)  = sat_sil - zundsat(ji,jk,1)           
245            ! For O2 (in mol/l)
246            pwcp(ji,jk,jwoxy)  = zundsat(ji,jk,3) * so2ut 
247            zreasat = zrearat(ji,jk,3) * zundsat(ji,jk,3)    ! oxygen         
248            ! For DIC
249            pwcp(ji,jk,jwdic)  = pwcp(ji,jk,jwdic) + zreasat
250            ! For nitrates
251            pwcp(ji,jk,jwno3)  = pwcp(ji,jk,jwno3) + zreasat * srno3           
252            ! For Phosphate (in mol/l)
253            pwcp(ji,jk,jwpo4)  = pwcp(ji,jk,jwpo4) + zreasat * spo4r           
254            ! For alkalinity
255            pwcp(ji,jk,jwalk)  = pwcp(ji,jk,jwalk) - zreasat * ( srno3 + 2.* spo4r )           
256            ! For DIC13
257            pwcp(ji,jk,jwc13)  = pwcp(ji,jk,jwc13) + zreasat * rc13P * pdb
258         ENDDO
259      ENDDO
260
261
262      ! Mass of O2 for mass balance check and det. of o2 consomation
263      DO jk = 1, jpksed
264         DO ji = 1, jpoce
265            zvolw = volw3d(ji,jk) * 1.e-3
266            zmo2_1 (ji) = zmo2_1 (ji) + pwcp(ji,jk,jwoxy) * zvolw
267            zmno3_1(ji) = zmno3_1(ji) + pwcp(ji,jk,jwno3) * zvolw
268            zmc13_1(ji) = zmc13_1(ji) + pwcp(ji,jk,jwc13) * zvolw
269         ENDDO
270      ENDDO
271
272      DO ji = 1, jpoce
273         cons_o2 (ji) = zmo2_0 (ji) - zmo2_1 (ji)
274         sour_no3(ji) = zmno3_1(ji) - zmno3_0(ji)     
275         sour_c13(ji) = zmc13_1(ji) - zmc13_0(ji) 
276      ENDDO
277 
278
279      !--------------------------------------------------------------------
280      ! Begining POC denitrification and NO3- diffusion
281      ! (indice n°5 for couple POC/NO3- ie solcp(:,:,jspoc)/pwcp(:,:,jwno3))
282      !--------------------------------------------------------------------
283
284      nv = 1
285      DO jk = 1, jpksed
286         DO ji = 1, jpoce
287            zundsat(ji,jk,1) = pwcp(ji,jk,jwno3) / srDnit
288         ENDDO
289      ENDDO
290      DO jk = 2, jpksed
291         DO ji = 1, jpoce
292            IF( pwcp(ji,jk,jwoxy) < sthrO2 ) THEN
293               zsolid1 = zvolc(ji,jk,jspoc) * solcp(ji,jk,jspoc)
294               zrearat(ji,jk,1) = ( reac_no3 * dtsed * zsolid1 ) / &
295                  &                    ( 1. + reac_no3 * dtsed * zundsat(ji,jk,1 ) )
296            ELSE
297               zrearat(ji,jk,1) = 0.
298            ENDIF
299         END DO
300      END DO
301
302
303      ! solves tridiagonal system
304      CALL sed_mat( nv, jpoce, jpksed, zrearat, zundsat )
305
306
307      ! New solid concentration values (jk=2 to jksed) for each couple
308      DO jk = 2, jpksed
309         DO ji = 1, jpoce
310            zreasat = zrearat(ji,jk,1) * zundsat(ji,jk,1) / zvolc(ji,jk,jspoc)
311            solcp(ji,jk,jspoc) = solcp(ji,jk,jspoc) - zreasat
312         ENDDO
313      ENDDO
314
315      ! New dissolved concentrations
316      DO jk = 1, jpksed
317         DO ji = 1, jpoce
318            zreasat = zrearat(ji,jk,1) * zundsat(ji,jk,1)   
319            ! For nitrates
320            pwcp(ji,jk,jwno3)  =  zundsat(ji,jk,1) * srDnit
321            ! For DIC
322            pwcp(ji,jk,jwdic)  = pwcp(ji,jk,jwdic) + zreasat
323            ! For Phosphate (in mol/l)
324            pwcp(ji,jk,jwpo4)  = pwcp(ji,jk,jwpo4) + zreasat * spo4r           
325            ! For alkalinity
326            pwcp(ji,jk,jwalk)  = pwcp(ji,jk,jwalk) + zreasat * ( srDnit - 2.* spo4r )           
327            ! For DIC13
328            pwcp(ji,jk,jwc13)  = pwcp(ji,jk,jwc13) + zreasat * rc13P * pdb
329         ENDDO
330      ENDDO
331
332
333      ! Mass of O2 for mass balance check and det. of o2 consomation
334      DO jk = 1, jpksed
335         DO ji = 1, jpoce
336            zvolw = volw3d(ji,jk) * 1.e-3
337            zmno3_2(ji) = zmno3_2(ji) + pwcp(ji,jk ,jwno3) * zvolw
338            zmc13_2(ji) = zmc13_2(ji) + pwcp(ji,jk ,jwc13) * zvolw   
339         ENDDO
340      ENDDO
341
342      DO ji = 1, jpoce
343         cons_no3(ji) = zmno3_1(ji) - zmno3_2(ji) 
344         sour_c13(ji) = sour_c13(ji) + zmc13_2(ji) - zmc13_1(ji)     
345      ENDDO
346
347
348      !---------------------------
349      ! Solves PO4 diffusion
350      !----------------------------
351
352      nv = 1
353      DO jk = 1, jpksed
354         DO ji = 1, jpoce
355            zundsat(ji,jk,1) = pwcp(ji,jk,jwpo4)
356            zrearat(ji,jk,1) = 0.
357         ENDDO
358      ENDDO
359
360
361      ! solves tridiagonal system
362      CALL sed_mat( nv, jpoce, jpksed, zrearat, zundsat )
363
364
365      ! New undsaturation values and dissolved concentrations
366      DO jk = 1, jpksed
367         DO ji = 1, jpoce
368            pwcp(ji,jk,jwpo4) = zundsat(ji,jk,1)
369         ENDDO
370      ENDDO
371
372
373      !---------------------------------------------------------------
374      ! Performs CaCO3 particle deposition and redissolution (indice 9)
375      !--------------------------------------------------------------
376
377      ! computes co3por from the updated pwcp concentrations (note [co3por] = mol/l)
378
379      CALL sed_co3( kt )
380
381
382      nv = 1
383      ! *densSW(l)**2 converts aksps [mol2/kg sol2] into [mol2/l2] to get [undsat] in [mol/l]
384      DO jk = 1, jpksed
385         DO ji = 1, jpoce
386            zundsat(ji,jk,1) = aksps(ji) * densSW(ji) * densSW(ji) / calcon2(ji) &
387               &                     - co3por(ji,jk)
388            ! positive values of undersaturation
389            zundsat(ji,jk,1) = MAX( 0., zundsat(ji,jk,1) )           
390         ENDDO
391      ENDDO
392
393      DO jk = 2, jpksed
394         DO ji = 1, jpoce
395            zsolid1 = zvolc(ji,jk,jscal) * solcp(ji,jk,jscal)
396            zrearat(ji,jk,1) = ( reac_cal * dtsed * zsolid1 ) / &
397                  &               ( 1. + reac_cal * dtsed * zundsat(ji,jk,1) )
398         END DO
399      END DO
400
401
402      ! solves tridiagonal system
403      CALL sed_mat( nv, jpoce, jpksed, zrearat, zundsat )
404
405
406      ! New solid concentration values (jk=2 to jksed) for cacO3
407      DO jk = 2, jpksed
408         DO ji = 1, jpoce
409            zreasat = zrearat(ji,jk,1) * zundsat(ji,jk,1) / zvolc(ji,jk,jscal)
410            solcp(ji,jk,jscal) = solcp(ji,jk,jscal) - zreasat
411         ENDDO
412      ENDDO
413
414      ! New dissolved concentrations
415      DO jk = 1, jpksed
416         DO ji = 1, jpoce
417            zreasat = zrearat(ji,jk,1) * zundsat(ji,jk,1)   
418            ! For DIC
419            pwcp(ji,jk,jwdic)  = pwcp(ji,jk,jwdic) + zreasat
420            ! For alkalinity
421            pwcp(ji,jk,jwalk)  = pwcp(ji,jk,jwalk) + 2.* zreasat 
422            ! For DIC13
423            pwcp(ji,jk,jwc13)  = pwcp(ji,jk,jwc13) + zreasat * rc13Ca * pdb
424         ENDDO
425      ENDDO
426
427      DO jk = 1, jpksed
428         DO ji = 1, jpoce
429            zmc13_3(ji) = zmc13_3(ji) + pwcp(ji,jk,jwc13) * volw3d(ji,jk) * 1.e-3                 
430         ENDDO
431      ENDDO
432
433      DO ji = 1, jpoce     
434         sour_c13(ji) = sour_c13(ji) + zmc13_3(ji) - zmc13_2(ji)   
435      ENDDO
436     
437      !-------------------------------------------------
438      ! Beginning DIC, Alkalinity and DIC13 diffusion
439      !-------------------------------------------------
440     
441      nv = 3
442      DO jk = 1, jpksed
443         DO ji = 1, jpoce     
444            zundsat(ji,jk,1) = pwcp(ji,jk,jwdic)
445            zundsat(ji,jk,2) = pwcp(ji,jk,jwalk)
446            zundsat(ji,jk,3) = pwcp(ji,jk,jwc13)
447     
448            zrearat(ji,jk,1) = 0.
449            zrearat(ji,jk,2) = 0.
450            zrearat(ji,jk,3) = 0.
451     
452         ENDDO
453      ENDDO
454
455
456      ! solves tridiagonal system
457      CALL sed_mat( nv, jpoce, jpksed, zrearat, zundsat )
458
459
460      ! New dissolved concentrations     
461      DO jk = 1, jpksed
462         DO ji = 1, jpoce                     
463            pwcp(ji,jk,jwdic) = zundsat(ji,jk,1)
464            pwcp(ji,jk,jwalk) = zundsat(ji,jk,2)
465            pwcp(ji,jk,jwc13) = zundsat(ji,jk,3)
466         ENDDO
467      ENDDO           
468     
469      !----------------------------------
470      !   Back to initial geometry
471      !-----------------------------
472     
473      !---------------------------------------------------------------------
474      !   1/ Compensation for ajustement of the bottom water concentrations
475      !      (see note n° 1 about *por(2))
476      !--------------------------------------------------------------------
477      DO jw = 1, jpwat
478         DO ji = 1, jpoce
479            pwcp(ji,1,jw) = pwcp(ji,1,jw) + &
480               &            pwcp(ji,2,jw) * dzdep(ji) * por(2) / dzkbot(ji)
481         END DO
482      ENDDO
483     
484      !-----------------------------------------------------------------------
485      !    2/ Det of new rainrg taking account of the new weight fraction obtained
486      !      in dz3d(2) after diffusion/reaction (react/diffu are also in dzdep!)
487      !      This new rain (rgntg rm) will be used in advection/burial routine
488      !------------------------------------------------------------------------
489      DO js = 1, jpsol
490         DO ji = 1, jpoce
491            rainrg(ji,js) = raintg(ji) * solcp(ji,2,js)
492            rainrm(ji,js) = rainrg(ji,js) / mol_wgt(js)
493         END DO
494      ENDDO
495     
496      !  New raintg
497      raintg(:) = 0.
498      DO js = 1, jpsol
499         DO ji = 1, jpoce
500            raintg(ji) = raintg(ji) + rainrg(ji,js)
501         END DO
502      ENDDO
503     
504      !--------------------------------
505      !    3/ back to initial geometry
506      !--------------------------------
507      DO ji = 1, jpoce
508         dz3d  (ji,2) = dz(2)
509         volw3d(ji,2) = dz3d(ji,2) * por(2)
510         vols3d(ji,2) = dz3d(ji,2) * por1(2)
511      ENDDO
512     
513      !----------------------------------------------------------------------
514      !    4/ Saving new amount of material in dzkbot for mass balance check
515      !       tokbot in [mol] (implicit *1cm*1cm for spacial dim)
516      !----------------------------------------------------------------------
517      DO jw = 1, jpwat 
518         DO ji = 1, jpoce
519            tokbot(ji,jw) = pwcp(ji,1,jw) * 1.e-3 * dzkbot(ji)
520         END DO
521      ENDDO
522
523      DEALLOCATE( zmo2_0  ) ;  DEALLOCATE( zmno3_1 )  ;  DEALLOCATE( zmno3_2 ) 
524      DEALLOCATE( zmc13_0 ) ;  DEALLOCATE( zmc13_1 )  ;  DEALLOCATE( zmc13_2 ) ;  DEALLOCATE( zmc13_3 ) 
525     
526      DEALLOCATE( zrearat ) ;  DEALLOCATE( zundsat )  ;  DEALLOCATE( zvolc )   
527     
528   END SUBROUTINE sed_dsr
529#else
530   !!======================================================================
531   !! MODULE seddsr  :   Dummy module
532   !!======================================================================
533   !! $Id$
534CONTAINS
535   SUBROUTINE sed_dsr ( kt )
536     INTEGER, INTENT(in) :: kt
537     WRITE(*,*) 'sed_dsr: You should not have seen this print! error?', kt
538  END SUBROUTINE sed_dsr
539#endif
540   
541END MODULE seddsr
Note: See TracBrowser for help on using the repository browser.