source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zday.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.3 KB
Line 
1MODULE p4zday
2   !!======================================================================
3   !!                         ***  MODULE p4zday  ***
4   !! TOP :   PISCES compute the day length depending on latitude and the day
5   !!======================================================================
6   !! History :    -   !  1993     (E. Maier-Reimer) Original code GBC 1993
7   !!              -   !  1999     (C. Le Quere)
8   !!             1.0  !  2004     (O. Aumont) Original code
9   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
10   !!----------------------------------------------------------------------
11#if defined key_pisces
12   !!----------------------------------------------------------------------
13   !!   'key_pisces'                                       PISCES bio-model
14   !!----------------------------------------------------------------------
15   !!   p4z_day       :   compute the day length depending on latitude and the day
16   !!----------------------------------------------------------------------
17   USE oce_trc         !
18   USE trp_trc         !
19   USE sms             !
20
21   IMPLICIT NONE
22   PRIVATE
23
24   PUBLIC   p4z_day    ! called in p4zprod.F90
25
26   !!* Substitution
27#  include "domzgr_substitute.h90"
28   !!----------------------------------------------------------------------
29   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
30   !! $Header:$
31   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
32   !!----------------------------------------------------------------------
33
34CONTAINS
35
36   SUBROUTINE p4z_day
37      !!---------------------------------------------------------------------
38      !!                     ***  ROUTINE p4z_day  ***
39      !!
40      !! ** Purpose :   compute the day length depending on latitude and the day
41      !!
42      !! ** Method  : - ???
43      !!---------------------------------------------------------------------
44      INTEGER  ::   ji, jj
45      INTEGER  ::   iyy
46      REAL(wp) ::   zrum, zdelta, zcodel, zphi, zargu
47      !!---------------------------------------------------------------------
48
49      ! Get year
50      ! --------
51
52      iyy = ndastp / 10000
53
54      IF(lwp) write(numout,*)
55      IF(lwp) write(numout,*) 'p4zday : - Julian day ', nday_year
56      IF(lwp) write(numout,*) '~~~~~~'
57
58
59      IF( nleapy == 1 .AND. MOD( iyy, 4 ) == 0 ) THEN
60         zrum = FLOAT( nday_year - 80 ) / 366.
61      ELSE
62         zrum = FLOAT( nday_year - 80 ) / 365.
63      ENDIF
64
65      zdelta = SIN( zrum * rpi * 2. ) * sin( rpi * 23.5 / 180. )
66      zcodel = ASIN( zdelta )
67
68      DO jj = 1, jpj
69         DO ji = 1, jpi
70            zphi = gphit(ji,jj) * rpi / 180.
71            zargu = TAN( zcodel ) * TAN( zphi )
72            strn(ji,jj) = 0.e0
73            zargu = MIN(  1., zargu )
74            zargu = MAX( -1., zargu )
75            strn(ji,jj) = 24.- 2.* ACOS( zargu ) * 180./ rpi / 15.
76            strn(ji,jj) = MAX( strn(ji,jj), 0.e0 )
77         END DO
78      END DO
79      !
80   END SUBROUTINE p4z_day
81
82#else
83   !!======================================================================
84   !!  Dummy module :                                   No PISCES bio-model
85   !!======================================================================
86CONTAINS
87   SUBROUTINE p4z_day                    ! Empty routine
88   END SUBROUTINE p4z_day
89#endif 
90
91   !!======================================================================
92END MODULE  p4zday
Note: See TracBrowser for help on using the repository browser.