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 trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/SED – NEMO

source: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/seddsr.F90 @ 4528

Last change on this file since 4528 was 3443, checked in by cetlod, 12 years ago

branch:2012/dev_r3438_LOCEAN15_PISLOB : 1st step of the merge, see ticket #972

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