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

Last change on this file since 775 was 775, checked in by gm, 13 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.6 KB
Line 
1MODULE p4zprg
2   !!======================================================================
3   !!                         ***  MODULE p4zprg  ***
4   !! TOP :   PISCES Source Minus Sink manager
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_prg        :  Time loop of passive tracers sms
14   !!----------------------------------------------------------------------
15   USE oce_trc         !
16   USE trp_trc
17   USE sms
18   USE lbclnk
19   USE lib_mpp
20   
21   USE p4zint          !
22   USE p4zche          !
23   USE p4zbio          !
24   USE p4zsed          !
25   USE p4zlys          !
26   USE p4zflx          !
27   
28   IMPLICIT NONE
29   PRIVATE
30
31   PUBLIC   p4z_prg    ! called in trcsms.F90
32
33   !!----------------------------------------------------------------------
34   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
35   !! $Header:$
36   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
37   !!----------------------------------------------------------------------
38
39CONTAINS
40
41   SUBROUTINE p4z_prg( kt )
42      !!---------------------------------------------------------------------
43      !!                     ***  ROUTINE p4z_prg  ***
44      !!
45      !! ** Purpose :   Managment of the call to Biological sources and sinks
46      !!              routines of PISCES bio-model
47      !!
48      !! ** Method  : - at each new day ...
49      !!              - several calls of bio and sed ???
50      !!              - ...
51      !!---------------------------------------------------------------------
52      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
53      !!
54      INTEGER ::   jnt, jn
55      INTEGER ::   iyy, imm, idd
56      !!---------------------------------------------------------------------
57
58
59      iyy = ndastp/10000
60      imm = (ndastp - iyy*10000)/100
61      idd = (ndastp - iyy*10000 - imm*100)
62
63      IF( ndayflxtr /= idd) THEN      ! New days
64         !
65         ndayflxtr = idd
66
67         CALL p4z_che          ! computation of chemical constants
68
69         CALL p4z_int( kt )    ! computation of various rates for biogeochemistry
70         !
71      ENDIF
72
73
74      DO jnt = 1, nrdttrc             ! ???
75         !
76         CALL p4z_bio          ! Compute soft tissue production (POC)
77
78         CALL p4z_sed          ! compute soft tissue remineralisation
79         !
80         trb(:,:,:,:) = trn(:,:,:,:)
81         !
82      END DO
83
84      CALL p4z_lys             ! Compute CaCO3 saturation
85
86      CALL p4z_flx             ! Compute surface fluxes
87
88      DO jn = 1, jptra
89        CALL lbc_lnk( trn(:,:,:,jn), 'T', 1. )
90        CALL lbc_lnk( trb(:,:,:,jn), 'T', 1. )
91        CALL lbc_lnk( tra(:,:,:,jn), 'T', 1. )
92      END DO
93      !
94   END SUBROUTINE p4z_prg
95
96#else
97   !!======================================================================
98   !!  Dummy module :                                   No PISCES bio-model
99   !!======================================================================
100CONTAINS
101   SUBROUTINE p4z_prg( kt )                   ! Empty routine
102      INTEGER, INTENT( in ) ::   kt
103      WRITE(*,*) 'p4z_prg: You should not have seen this print! error?', kt
104   END SUBROUTINE p4z_prg
105#endif 
106
107   !!======================================================================
108END MODULE  p4zprg
Note: See TracBrowser for help on using the repository browser.