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.
p4zint.F90 in branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zint.F90 @ 775

Last change on this file since 775 was 775, checked in by gm, 16 years ago

dev_001_GM - PISCES in F90 : encapsulation of all p4z...F files in module F90 + doctor norme for local variables - compilation OK

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.9 KB
Line 
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#if defined key_pisces
10   !!----------------------------------------------------------------------
11   !!   'key_pisces'                                       PISCES bio-model
12   !!----------------------------------------------------------------------
13   !!   p4z_int        :  interpolation and computation of various accessory fields
14   !!----------------------------------------------------------------------
15   USE oce_trc         !
16   USE trp_trc
17   USE sms
18
19   IMPLICIT NONE
20   PRIVATE
21
22   PUBLIC   p4z_int    ! called in p4zprg.F90
23
24   !!----------------------------------------------------------------------
25   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
26   !! $Header:$
27   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
28   !!----------------------------------------------------------------------
29
30CONTAINS
31
32   SUBROUTINE p4z_int( kt )
33      !!---------------------------------------------------------------------
34      !!                     ***  ROUTINE p4z_int  ***
35      !!
36      !! ** Purpose :   interpolation and computation of various accessory fields
37      !!
38      !! ** Method  : - ???
39      !!---------------------------------------------------------------------
40      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
41      !!
42      INTEGER  ::   ji, jj
43      INTEGER  ::   iman, ivit1t, ivit2t
44      REAL(wp) ::   zpdtan, zman, zpdtmo, zdemi
45      REAL(wp) ::   zt, zdum
46      !!---------------------------------------------------------------------
47
48      zpdtan = raass / rdt
49      zman   = 12.
50      iman   = 12
51      zpdtmo = zpdtan / zman
52      zdemi  = zpdtmo / 2.
53      zt     = ( float ( kt) + zdemi) / zpdtmo
54     
55      !  recherche de l indice des enregistrements
56      !  du modele dynamique encadrant le pas de temps kt.
57      !  --------------------------------------------------
58
59      xtvit = zt - FLOAT( INT( zt ) )
60      ivit1t = INT( zt )
61      ivit2t = ivit1t + 1
62      ivit1t = MOD ( ivit1t, iman )
63      IF( ivit1t == 0 )   ivit1t = iman
64      ivit2t = MOD ( ivit2t, iman )
65      IF( ivit2t == 0 )   ivit2t = iman
66
67      ! Interpolation of dust deposition
68      ! --------------------------------
69
70      dust(:,:) = ( 1.- xtvit ) * dustmo(:,:,ivit1t) + xtvit * dustmo(:,:,ivit2t)
71
72      ! Computation of phyto and zoo metabolic rate
73      ! -------------------------------------------
74
75      Tgfunc (:,:,:) = EXP( 0.063913 * tn(:,:,:) )
76      Tgfunc2(:,:,:) = EXP( 0.07608  * tn(:,:,:) )
77
78      ! Computation of the silicon dependant half saturation
79      ! constant for silica uptake
80      ! ---------------------------------------------------
81
82      DO ji = 1, jpi
83         DO jj = 1, jpj
84            zdum = trn(ji,jj,1,jpsil) * trn(ji,jj,1,jpsil)
85            xksimax(ji,jj) = MAX( xksimax(ji,jj), ( 1.+ 7.* zdum / ( xksi2 * xksi2 * 25. + zdum ) ) * 1e-6 )
86         END DO
87      END DO
88
89      IF( nday_year == 365 ) THEN
90         xksi    = xksimax
91         xksimax = 0.e0
92      ENDIF
93      !
94   END SUBROUTINE p4z_int
95
96#else
97   !!======================================================================
98   !!  Dummy module :                                   No PISCES bio-model
99   !!======================================================================
100CONTAINS
101   SUBROUTINE p4z_int( kt )                   ! Empty routine
102      INTEGER, INTENT( in ) ::   kt
103      WRITE(*,*) 'p4z_int: You should not have seen this print! error?', kt
104   END SUBROUTINE p4z_int
105#endif 
106
107   !!======================================================================
108END MODULE  p4zint
Note: See TracBrowser for help on using the repository browser.