[775] | 1 | MODULE 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 ! |
---|
[186] | 20 | |
---|
[775] | 21 | IMPLICIT NONE |
---|
| 22 | PRIVATE |
---|
[186] | 23 | |
---|
[775] | 24 | PUBLIC p4z_day ! called in p4zprod.F90 |
---|
[186] | 25 | |
---|
[775] | 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 | |
---|
| 34 | CONTAINS |
---|
| 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. |
---|
[186] | 61 | ELSE |
---|
[775] | 62 | zrum = FLOAT( nday_year - 80 ) / 365. |
---|
[186] | 63 | ENDIF |
---|
| 64 | |
---|
[775] | 65 | zdelta = SIN( zrum * rpi * 2. ) * sin( rpi * 23.5 / 180. ) |
---|
| 66 | zcodel = ASIN( zdelta ) |
---|
[186] | 67 | |
---|
[775] | 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 |
---|
[186] | 78 | END DO |
---|
[775] | 79 | ! |
---|
| 80 | END SUBROUTINE p4z_day |
---|
| 81 | |
---|
| 82 | #else |
---|
| 83 | !!====================================================================== |
---|
| 84 | !! Dummy module : No PISCES bio-model |
---|
| 85 | !!====================================================================== |
---|
| 86 | CONTAINS |
---|
| 87 | SUBROUTINE p4z_day ! Empty routine |
---|
| 88 | END SUBROUTINE p4z_day |
---|
| 89 | #endif |
---|
| 90 | |
---|
| 91 | !!====================================================================== |
---|
| 92 | END MODULE p4zday |
---|