source: NEMO/trunk/src/TOP/PISCES/P4Z/p4zint.F90

Last change on this file was 14086, checked in by cetlod, 6 weeks ago

Adding AGRIF branches into the trunk

  • Property svn:keywords set to Id
File size: 2.9 KB
RevLine 
[3443]1MODULE p4zint
2   !!======================================================================
3   !!                         ***  MODULE p4zint  ***
4   !! TOP :   PISCES interpolation and computation of various accessory fields
5   !!======================================================================
6   !! History :   1.0  !  2004-03 (O. Aumont) Original code
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
8   !!----------------------------------------------------------------------
9   !!   p4z_int        :  interpolation and computation of various accessory fields
10   !!----------------------------------------------------------------------
11   USE oce_trc         !  shared variables between ocean and passive tracers
12   USE trc             !  passive tracers common variables
13   USE sms_pisces      !  PISCES Source Minus Sink variables
14
15   IMPLICIT NONE
16   PRIVATE
17
18   PUBLIC   p4z_int 
19   REAL(wp) ::   xksilim = 16.5e-6_wp   ! Half-saturation constant for the Si half-saturation constant computation
20
[14086]21#  include "do_loop_substitute.h90"
[3443]22   !!----------------------------------------------------------------------
[10067]23   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
[7753]24   !! $Id$
[10068]25   !! Software governed by the CeCILL license (see ./LICENSE)
[3443]26   !!----------------------------------------------------------------------
27CONTAINS
28
[12377]29   SUBROUTINE p4z_int( kt, Kbb, Kmm )
[3443]30      !!---------------------------------------------------------------------
31      !!                     ***  ROUTINE p4z_int  ***
32      !!
33      !! ** Purpose :   interpolation and computation of various accessory fields
34      !!
35      !!---------------------------------------------------------------------
[12377]36      INTEGER, INTENT( in ) ::   kt       ! ocean time-step index
37      INTEGER, INTENT( in ) ::   Kbb, Kmm ! time level indices
[3443]38      !
[7753]39      INTEGER  :: ji, jj                 ! dummy loop indices
[3443]40      REAL(wp) :: zvar                   ! local variable
41      !!---------------------------------------------------------------------
42      !
[9124]43      IF( ln_timing )   CALL timing_start('p4z_int')
[3443]44      !
45      ! Computation of phyto and zoo metabolic rate
46      ! -------------------------------------------
[12377]47      tgfunc (:,:,:) = EXP( 0.063913 * ts(:,:,:,jp_tem,Kmm) )
48      tgfunc2(:,:,:) = EXP( 0.07608  * ts(:,:,:,jp_tem,Kmm) )
[3443]49
[3446]50      ! Computation of the silicon dependant half saturation  constant for silica uptake
[3443]51      ! ---------------------------------------------------
[14086]52      DO_2D( 1, 1, 1, 1 )
53         zvar = tr(ji,jj,1,jpsil,Kbb) * tr(ji,jj,1,jpsil,Kbb)
54         xksimax(ji,jj) = MAX( xksimax(ji,jj), ( 1.+ 7.* zvar / ( xksilim * xksilim + zvar ) ) * 1e-6 )
55      END_2D
[3443]56      !
57      IF( nday_year == nyear_len(1) ) THEN
[7753]58         xksi   (:,:) = xksimax(:,:)
59         xksimax(:,:) = 0._wp
[3443]60      ENDIF
61      !
[9124]62      IF( ln_timing )   CALL timing_stop('p4z_int')
[3443]63      !
64   END SUBROUTINE p4z_int
65
66   !!======================================================================
[5656]67END MODULE p4zint
Note: See TracBrowser for help on using the repository browser.