Index: namico_lmdz/simple_physics/phyparam/param/mufract.F
===================================================================
--- /dynamico_lmdz/simple_physics/phyparam/param/mufract.F	(revision 4199)
+++ 	(revision )
@@ -1,96 +1,0 @@
-      SUBROUTINE mufract(jjm,pdecli, plat, pmu, pfract)
-      IMPLICIT NONE
-c
-c=======================================================================
-c
-c   Calcul of equivalent solar angle and and fraction of day whithout 
-c   diurnal cycle.
-c
-c   parmeters :
-c   -----------
-c
-c      Input :
-c      -------
-c         jjm              number of points
-c         pdecli           solar declinaison
-c         plat(jjm)        latitude
-c
-c      Output :
-c      --------
-c         pmu(jjm)          equivalent cosinus of the solar angle
-c         pfract(jjm)       fractionnal day
-c
-c
-c    inclinex is the obliquity of the planet.
-c
-c=======================================================================
-c
-c-----------------------------------------------------------------------
-c
-c    0. Declarations :
-c    -----------------
-c
-c     Arguments :
-c     -----------
-
-      INTEGER jjm
-      REAL plat(jjm),pmu(jjm), pfract(jjm)
-      REAL pdecli
-c
-c     Local variables :
-c     -----------------
-
-      REAL inclinex
-      PARAMETER (inclinex=26.7)
-      INTEGER j
-      REAL pi
-      REAL z,cz,sz,tz,phi,cphi,sphi,tphi
-      REAL ap,a,t,b
-c
-c=======================================================================
-c
-      pi = 4. * atan(1.0)
-      z = pdecli
-      cz = cos (z*pi/180.)
-      sz = sin (z*pi/180.)
-c
-      DO 20 j = 1, jjm
-c
-         phi = plat(j)
-         cphi = cos(phi)
-         if (cphi.le.1.e-9) cphi=1.e-9
-         sphi = sin(phi)
-         tphi = sphi / cphi
-         b = cphi * cz
-         t = -tphi * sz / cz
-         a = 1.0 - t*t
-         ap = a
-         IF(t.eq.0.) THEN
-            t=0.5*pi
-         ELSE
-            IF (a.lt.0.) a = 0.
-            t = sqrt(a) / t
-            IF (t.lt.0.) THEN
-               t = -atan (-t) + pi
-            ELSE
-               t = atan(t)
-            ENDIF
-         ENDIF
-         pmu(j) = (sphi*sz*t) / pi + b*sin(t)/pi
-         pfract(j) = t / pi
-         IF (ap .lt.0.) THEN
-            pmu(j) = sphi * sz
-            pfract(j) = 1.0
-         ENDIF
-         IF (pmu(j).le.0.0) pmu(j) = 0.0
-         pmu(j) = pmu(j) / pfract(j)
-         IF (pmu(j).eq.0.) pfract(j) = 0.
-c
-   20 CONTINUE
-c
-      RETURN
-      END
-c
-c* end of mufract
-c=======================================================================
-c
Index: /dynamico_lmdz/simple_physics/phyparam/param/phyparam.F
===================================================================
--- /dynamico_lmdz/simple_physics/phyparam/param/phyparam.F	(revision 4199)
+++ /dynamico_lmdz/simple_physics/phyparam/param/phyparam.F	(revision 4200)
@@ -14,4 +14,5 @@
       USE astronomy
       USE vdif_mod, ONLY : vdif
+      USE solar, ONLY : solang
       USE radiative, ONLY : mucorr, sw
       USE radiative_lw, ONLY : lw
Index: namico_lmdz/simple_physics/phyparam/param/solang.F
===================================================================
--- /dynamico_lmdz/simple_physics/phyparam/param/solang.F	(revision 4199)
+++ 	(revision )
@@ -1,113 +1,0 @@
-      subroutine solang ( kgrid,psilon,pcolon,psilat,pcolat,
-     &                    ptim1,ptim2,ptim3,pmu0,pfract )
-      IMPLICIT NONE
-
-C
-C**** *LW*   - ORGANIZES THE LONGWAVE CALCULATIONS
-C
-C     PURPOSE.
-C     --------
-C          CALCULATES THE SOLAR ANGLE FOR ALL THE POINTS OF THE GRID
-C
-C**   INTERFACE.
-C     ----------
-C      SUBROUTINE SOLANG ( KGRID )
-C
-C        EXPLICIT ARGUMENTS :
-C        --------------------
-C     ==== INPUTS  ===
-C
-C PSILON(KGRID)   : SINUS OF THE LONGITUDE
-C PCOLON(KGRID)   : COSINUS OF THE LONGITUDE
-C PSILAT(KGRID)   : SINUS OF THE LATITUDE
-C PCOLAT(KGRID)   : COSINUS OF THE LATITUDE
-C PTIM1           : SIN(DECLI)
-C PTIM2           : COS(DECLI)*COS(TIME)
-C PTIM3           : SIN(DECLI)*SIN(TIME)
-C
-C     ==== OUTPUTS ===
-C
-C PMU0 (KGRID)    : SOLAR ANGLE
-C PFRACT(KGRID)   : DAY FRACTION OF THE TIME INTERVAL
-C
-C        IMPLICIT ARGUMENTS :   NONE
-C        --------------------
-C
-C     METHOD.
-C     -------
-C
-C     EXTERNALS.
-C     ----------
-C
-C         NONE
-C
-C     REFERENCE.
-C     ----------
-C
-C         RADIATIVE PROCESSES IN METEOROLOGIE AND CLIMATOLOGIE
-C         PALTRIDGE AND PLATT
-C
-C     AUTHOR.
-C     -------
-C        FREDERIC HOURDIN
-C
-C     MODIFICATIONS.
-C     --------------
-C        ORIGINAL :90-01-14
-C                  92-02-14 CALCULATIONS DONE THE ENTIER GRID (J.Polcher)
-C-----------------------------------------------------------------------
-C
-C     ------------------------------------------------------------------
-
-C-----------------------------------------------------------------------
-C
-C*      0.1   ARGUMENTS
-C             ---------
-C
-      INTEGER kgrid
-      REAL ptim1,ptim2,ptim3
-      REAL psilon(kgrid),pcolon(kgrid),pmu0(kgrid),pfract(kgrid)
-      REAL psilat(kgrid), pcolat(kgrid)
-C
-      INTEGER jl
-      REAL ztim1,ztim2,ztim3
-C------------------------------------------------------------------------
-C------------------------------------------------------------------------
-C------------------------------------------------------------------------
-C
-C------------------------------------------------------------------------
-C
-C*     1.     INITIALISATION
-C             --------------
-C
- 100  CONTINUE
-C
-      DO jl=1,kgrid
-        pmu0(jl)=0.
-        pfract(jl)=0.
-      ENDDO
-C
-C*     1.1     COMPUTATION OF THE SOLAR ANGLE
-C              ------------------------------
-C
-      DO jl=1,kgrid
-        ztim1=psilat(jl)*ptim1
-        ztim2=pcolat(jl)*ptim2
-        ztim3=pcolat(jl)*ptim3
-        pmu0(jl)=ztim1+ztim2*pcolon(jl)+ztim3*psilon(jl)
-      ENDDO
-C
-C*     1.2      DISTINCTION BETWEEN DAY AND NIGHT
-C               ---------------------------------
-C
-      DO jl=1,kgrid
-        IF (pmu0(jl).gt.0.) THEN
-          pfract(jl)=1.
-	ELSE
-	  pmu0(jl)=0.
-	  pfract(jl)=0.
-        ENDIF
-      ENDDO
-C
-      RETURN
-      END
Index: /dynamico_lmdz/simple_physics/phyparam/physics/solar.F90
===================================================================
--- /dynamico_lmdz/simple_physics/phyparam/physics/solar.F90	(revision 4200)
+++ /dynamico_lmdz/simple_physics/phyparam/physics/solar.F90	(revision 4200)
@@ -0,0 +1,117 @@
+MODULE solar
+  IMPLICIT NONE
+
+CONTAINS
+
+  subroutine solang ( kgrid,psilon,pcolon,psilat,pcolat, &
+       ptim1,ptim2,ptim3,pmu0,pfract )
+
+!
+!**** *LW*   - ORGANIZES THE LONGWAVE CALCULATIONS
+!
+!     PURPOSE.
+!     --------
+!          CALCULATES THE SOLAR ANGLE FOR ALL THE POINTS OF THE GRID
+!
+!**   INTERFACE.
+!     ----------
+!      SUBROUTINE SOLANG ( KGRID )
+!
+!        EXPLICIT ARGUMENTS :
+!        --------------------
+!     ==== INPUTS  ===
+!
+! PSILON(KGRID)   : SINUS OF THE LONGITUDE
+! PCOLON(KGRID)   : COSINUS OF THE LONGITUDE
+! PSILAT(KGRID)   : SINUS OF THE LATITUDE
+! PCOLAT(KGRID)   : COSINUS OF THE LATITUDE
+! PTIM1           : SIN(DECLI)
+! PTIM2           : COS(DECLI)*COS(TIME)
+! PTIM3           : SIN(DECLI)*SIN(TIME)
+!
+!     ==== OUTPUTS ===
+!
+! PMU0 (KGRID)    : SOLAR ANGLE
+! PFRACT(KGRID)   : DAY FRACTION OF THE TIME INTERVAL
+!
+!        IMPLICIT ARGUMENTS :   NONE
+!        --------------------
+!
+!     METHOD.
+!     -------
+!
+!     EXTERNALS.
+!     ----------
+!
+!         NONE
+!
+!     REFERENCE.
+!     ----------
+!
+!         RADIATIVE PROCESSES IN METEOROLOGIE AND CLIMATOLOGIE
+!         PALTRIDGE AND PLATT
+!
+!     AUTHOR.
+!     -------
+!        FREDERIC HOURDIN
+!
+!     MODIFICATIONS.
+!     --------------
+!        ORIGINAL :90-01-14
+!                  92-02-14 CALCULATIONS DONE THE ENTIER GRID (J.Polcher)
+!-----------------------------------------------------------------------
+!
+!     ------------------------------------------------------------------
+!-----------------------------------------------------------------------
+!
+!*      0.1   ARGUMENTS
+!             ---------
+!
+      INTEGER kgrid
+      REAL ptim1,ptim2,ptim3
+      REAL psilon(kgrid),pcolon(kgrid),pmu0(kgrid),pfract(kgrid)
+      REAL psilat(kgrid), pcolat(kgrid)
+
+      INTEGER jl
+      REAL ztim1,ztim2,ztim3
+!------------------------------------------------------------------------
+!------------------------------------------------------------------------
+!------------------------------------------------------------------------
+!
+!------------------------------------------------------------------------
+!
+!*     1.     INITIALISATION
+!             --------------
+!
+ 100  CONTINUE
+!
+      DO jl=1,kgrid
+        pmu0(jl)=0.
+        pfract(jl)=0.
+      ENDDO
+!
+!*     1.1     COMPUTATION OF THE SOLAR ANGLE
+!              ------------------------------
+!
+      DO jl=1,kgrid
+        ztim1=psilat(jl)*ptim1
+        ztim2=pcolat(jl)*ptim2
+        ztim3=pcolat(jl)*ptim3
+        pmu0(jl)=ztim1+ztim2*pcolon(jl)+ztim3*psilon(jl)
+      ENDDO
+!
+!*     1.2      DISTINCTION BETWEEN DAY AND NIGHT
+!               ---------------------------------
+!
+      DO jl=1,kgrid
+        IF (pmu0(jl).gt.0.) THEN
+          pfract(jl)=1.
+	ELSE
+	  pmu0(jl)=0.
+	  pfract(jl)=0.
+        ENDIF
+      ENDDO
+!
+
+    END subroutine solang
+  END MODULE solar
