source: trunk/LMDZ.MARS/libf/phymars/solang.F @ 3807

Last change on this file since 3807 was 3740, checked in by emillour, 2 months ago

Mars PCM:
Code tidying; removed unused mufract.F (mucorr.F does the job); turned
ambiguously named sig.F to sig_h2o.F90 and make it a module.
EM

File size: 3.0 KB
RevLine 
[3740]1      MODULE solang_mod
2     
3      IMPLICIT NONE
4     
5      CONTAINS
6     
[38]7      subroutine solang ( kgrid,psilon,pcolon,psilat,pcolat,
8     &                    ptim1,ptim2,ptim3,pmu0,pfract )
9      IMPLICIT NONE
10
11C
12C**** *LW*   - ORGANIZES THE LONGWAVE CALCULATIONS
13C
14C     PURPOSE.
15C     --------
16C          CALCULATES THE SOLAR ANGLE FOR ALL THE POINTS OF THE GRID
17C
18C**   INTERFACE.
19C     ----------
20C      SUBROUTINE SOLANG ( KGRID )
21C
22C        EXPLICIT ARGUMENTS :
23C        --------------------
24C     ==== INPUTS  ===
25C
26C PSILON(KGRID)   : SINUS OF THE LONGITUDE
27C PCOLON(KGRID)   : COSINUS OF THE LONGITUDE
28C PSILAT(KGRID)   : SINUS OF THE LATITUDE
29C PCOLAT(KGRID)   : COSINUS OF THE LATITUDE
30C PTIM1           : SIN(DECLI)
31C PTIM2           : COS(DECLI)*COS(TIME)
32C PTIM3           : SIN(DECLI)*SIN(TIME)
33C
34C     ==== OUTPUTS ===
35C
36C PMU0 (KGRID)    : SOLAR ANGLE
37C PFRACT(KGRID)   : DAY FRACTION OF THE TIME INTERVAL
38C
39C        IMPLICIT ARGUMENTS :   NONE
40C        --------------------
41C
42C     METHOD.
43C     -------
44C
45C     EXTERNALS.
46C     ----------
47C
48C         NONE
49C
50C     REFERENCE.
51C     ----------
52C
53C         RADIATIVE PROCESSES IN METEOROLOGIE AND CLIMATOLOGIE
54C         PALTRIDGE AND PLATT
55C
56C     AUTHOR.
57C     -------
58C        FREDERIC HOURDIN
59C
60C     MODIFICATIONS.
61C     --------------
62C        ORIGINAL :90-01-14
63C                  92-02-14 CALCULATIONS DONE THE ENTIER GRID (J.Polcher)
64C-----------------------------------------------------------------------
65C
66C     ------------------------------------------------------------------
67
68C-----------------------------------------------------------------------
69C
70C*      0.1   ARGUMENTS
71C             ---------
72C
[3740]73      INTEGER,INTENT(IN) :: kgrid
74      REAL,INTENT(IN) :: ptim1,ptim2,ptim3
75      REAL,INTENT(IN) :: psilon(kgrid),pcolon(kgrid)
76      REAL,INTENT(IN) :: psilat(kgrid), pcolat(kgrid)
77      REAL,INTENT(OUT) :: pmu0(kgrid),pfract(kgrid)
[38]78C
79      INTEGER jl
80      REAL ztim1,ztim2,ztim3
81C------------------------------------------------------------------------
82C------------------------------------------------------------------------
83C------------------------------------------------------------------------
84C
85C------------------------------------------------------------------------
86C
87C*     1.     INITIALISATION
88C             --------------
89C
[3740]90
[38]91C
92      DO jl=1,kgrid
93        pmu0(jl)=0.
94        pfract(jl)=0.
95      ENDDO
96C
97C*     1.1     COMPUTATION OF THE SOLAR ANGLE
98C              ------------------------------
99C
100      DO jl=1,kgrid
101        ztim1=psilat(jl)*ptim1
102        ztim2=pcolat(jl)*ptim2
103        ztim3=pcolat(jl)*ptim3
104        pmu0(jl)=ztim1+ztim2*pcolon(jl)+ztim3*psilon(jl)
105      ENDDO
106C
107C*     1.2      DISTINCTION BETWEEN DAY AND NIGHT
108C               ---------------------------------
109C
110      DO jl=1,kgrid
111        IF (pmu0(jl).gt.0.) THEN
112          pfract(jl)=1.
113c       pmu0(jl)=sqrt(1224.*pmu0(jl)*pmu0(jl)+1.)/35.
114      ELSE
115c       pmu0(jl)=0.
116        pfract(jl)=0.
117        ENDIF
118      ENDDO
119C
[3740]120
121      END SUBROUTINE solang
122     
123      END MODULE solang_mod
Note: See TracBrowser for help on using the repository browser.