Index: LMDZ6/trunk/libf/grid/fxy_new.h
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_new.h	(revision 5271)
+++ 	(revision )
@@ -1,27 +1,0 @@
-!
-! $Header$
-!
-!--------------------------------------------------------------
-   REAL :: ripx
-   REAL :: fx,fxprim,fy,fyprim,ri,rj,bigy
-!
-!....stretching in x...
-!
-  ripx(  ri )= (ri-1.0) *2.*pi/REAL(iim)
-  fx  (  ri )= ripx(ri) + transx  + &
-        alphax * SIN( ripx(ri)+transx-pxo ) - pi
-  fxprim(ri) = 2.*pi/REAL(iim)  * &
-        ( 1.+ alphax * COS( ripx(ri)+transx-pxo ) )
-
-!....stretching in y...
-!
-  bigy(rj)   = 2.* (REAL(jjp1)-rj ) *pi/jjm
-  fy(rj)     =  ( bigy(rj) + transy  + &
-        alphay * SIN( bigy(rj)+transy-pyo ) ) /2.  - pi/2.
-  fyprim(rj) = ( pi/jjm ) * ( 1.+ &
-        alphay * COS( bigy(rj)+transy-pyo ) )
-
-  ! fy(rj)= pyo-pisjjm*(rj-transy)+coefalpha*SIN(depisjm*(rj-
-! *  transy ))
-!   fyprim(rj)= pisjjm-pisjjm*coefy2* COS(depisjm*(rj-transy))
-!--------------------------------------------------------------
Index: LMDZ6/trunk/libf/grid/fxy_new_mod_h.f90
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_new_mod_h.f90	(revision 5287)
+++ LMDZ6/trunk/libf/grid/fxy_new_mod_h.f90	(revision 5287)
@@ -0,0 +1,42 @@
+! This module replaces grid/fxy_new.h
+
+MODULE fxy_new_mod_h
+  USE comconst_mod, ONLY: pi
+  USE serre_mod, ONLY: pxo, pyo, alphax, alphay, transx, transy
+  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
+  USE lmdz_paramet
+  IMPLICIT NONE; PRIVATE
+  PUBLIC fx, fxprim, fy, fyprim
+
+
+CONTAINS
+  REAL FUNCTION ripx(ri)
+    REAL, INTENT(IN) :: ri
+    ripx = (ri - 1.0) * 2. * pi / REAL(iim)
+  END FUNCTION ripx
+
+  REAL FUNCTION fx(ri)
+    REAL, INTENT(IN) :: ri
+    fx = ripx(ri) + transx + alphax * SIN(ripx(ri) + transx - pxo) - pi
+  END FUNCTION fx
+
+  REAL FUNCTION fxprim(ri)
+    REAL, INTENT(IN) :: ri
+    fxprim = 2. * pi / REAL(iim) * (1. + alphax * COS(ripx(ri) + transx - pxo))
+  END FUNCTION fxprim
+
+  REAL FUNCTION bigy(rj)
+    REAL, INTENT(IN) :: rj
+    bigy = 2. * (REAL(jjp1) - rj) * pi / jjm
+  END FUNCTION bigy
+
+  REAL FUNCTION fy(rj)
+    REAL, INTENT(IN) :: rj
+    fy = (bigy(rj) + transy + alphay * SIN(bigy(rj) + transy - pyo)) / 2. - pi / 2.
+  END FUNCTION fy
+
+  REAL FUNCTION fyprim(rj)
+    REAL, INTENT(IN) :: rj
+    fyprim = (pi / jjm) * (1. + alphay * COS(bigy(rj) + transy - pyo))
+  END FUNCTION fyprim
+END MODULE fxy_new_mod_h
Index: LMDZ6/trunk/libf/grid/fxy_reg.h
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_reg.h	(revision 5271)
+++ 	(revision )
@@ -1,45 +1,0 @@
-!
-! $Header$
-!
-!-----------------------------------------------------------------------
-! INCLUDE 'fxyprim.h'
-!
-!    ................................................................
-!    ................  Fonctions in line  ...........................
-!    ................................................................
-!
-REAL :: fy, fx, fxprim, fyprim
-REAL :: ri, rj
-!
-!
-fy    ( rj ) =    pi/REAL(jjm) * ( 0.5 * REAL(jjm) +  1. - rj  )
-fyprim( rj ) =    pi/REAL(jjm)
-
-! fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
-! fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
-
-fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
-! fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
-fxprim( ri ) = 2.*pi/REAL(iim)
-!
-!
-!    La valeur de pi est passee par le common/const/ou /const2/ .
-!    Sinon, il faut la calculer avant d'appeler ces fonctions .
-!
-!   ----------------------------------------------------------------
-! Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
-!   -----------------------------------------------------------------
-!
-!    .....  ici, on a l'application particuliere suivante   ........
-!
-!            **************************************
-!            **     x = 2. * pi/iim *  X         **
-!            **     y =      pi/jjm *  Y         **
-!            **************************************
-!
-!   ..................................................................
-!   ..................................................................
-!
-!
-!
-!-----------------------------------------------------------------------
Index: LMDZ6/trunk/libf/grid/fxy_reg_mod_h.f90
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_reg_mod_h.f90	(revision 5287)
+++ LMDZ6/trunk/libf/grid/fxy_reg_mod_h.f90	(revision 5287)
@@ -0,0 +1,30 @@
+! This module replaces grid/fxy_reg.h
+
+MODULE fxy_reg_mod_h
+  USE comconst_mod, ONLY: pi
+  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
+  IMPLICIT NONE; PRIVATE
+  PUBLIC fx, fxprim, fy, fyprim
+
+CONTAINS
+
+  REAL FUNCTION fx(ri)
+    REAL, INTENT(IN) :: ri
+    fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.)
+  END FUNCTION fx
+
+  REAL FUNCTION fxprim(ri)
+    REAL, INTENT(IN) :: ri
+    fxprim = 2. * pi / REAL(iim)
+  END FUNCTION fxprim
+
+  REAL FUNCTION fy(rj)
+    REAL, INTENT(IN) :: rj
+    fy = pi / REAL(jjm) * (0.5 * REAL(jjm) + 1. - rj)
+  END FUNCTION fy
+
+  REAL FUNCTION fyprim(rj)
+    REAL, INTENT(IN) :: rj
+    fyprim = pi / REAL(jjm)
+  END FUNCTION fyprim
+END MODULE fxy_reg_mod_h
Index: LMDZ6/trunk/libf/grid/fxy_sin.h
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_sin.h	(revision 5271)
+++ 	(revision )
@@ -1,42 +1,0 @@
-!
-! $Header$
-!
-!-----------------------------------------------------------------------
-! INCLUDE 'fxyprim.h'
-!
-!    ................................................................
-!    ................  Fonctions in line  ...........................
-!    ................................................................
-!
-REAL :: fy, fx, fxprim, fyprim
-REAL :: ri, rj
-!
-!
-fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
-fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
-
-fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
-! fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
-fxprim( ri ) = 2.*pi/REAL(iim)
-!
-!
-!    La valeur de pi est passee par le common/const/ou /const2/ .
-!    Sinon, il faut la calculer avant d'appeler ces fonctions .
-!
-!   ----------------------------------------------------------------
-! Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
-!   -----------------------------------------------------------------
-!
-!    .....  ici, on a l'application particuliere suivante   ........
-!
-!            **************************************
-!            **     x = 2. * pi/iim *  X         **
-!            **     y =      pi/jjm *  Y         **
-!            **************************************
-!
-!   ..................................................................
-!   ..................................................................
-!
-!
-!
-!-----------------------------------------------------------------------
Index: LMDZ6/trunk/libf/grid/fxy_sin_mod_h.f90
===================================================================
--- LMDZ6/trunk/libf/grid/fxy_sin_mod_h.f90	(revision 5287)
+++ LMDZ6/trunk/libf/grid/fxy_sin_mod_h.f90	(revision 5287)
@@ -0,0 +1,30 @@
+! This module replaces grid/fxy_sin.h
+
+MODULE fxy_sin_mod_h
+  USE comconst_mod, ONLY: pi
+  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
+  IMPLICIT NONE; PRIVATE
+  PUBLIC fx, fxprim, fy, fyprim
+
+CONTAINS
+
+  REAL FUNCTION fx(ri)
+    REAL, INTENT(IN) :: ri
+    fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.)
+  END FUNCTION fx
+
+  REAL FUNCTION fxprim(ri)
+    REAL, INTENT(IN) :: ri
+    fxprim = 2. * pi / REAL(iim)
+  END FUNCTION fxprim
+
+  REAL FUNCTION fy(rj)
+    REAL, INTENT(IN) :: rj
+    fy = ASIN(1. + 2. * ((1. - rj) / REAL(jjm)))
+  END FUNCTION fy
+
+  REAL FUNCTION fyprim(rj)
+    REAL, INTENT(IN) :: rj
+    fyprim = 1. / SQRT((rj - 1.) * (jjm + 1. - rj))
+  END FUNCTION fyprim
+END MODULE fxy_sin_mod_h
Index: LMDZ6/trunk/libf/grid/fxyprim.h
===================================================================
--- LMDZ6/trunk/libf/grid/fxyprim.h	(revision 5271)
+++ 	(revision )
@@ -1,45 +1,0 @@
-!
-! $Header$
-!
-!-----------------------------------------------------------------------
-! INCLUDE 'fxyprim.h'
-!
-!    ................................................................
-!    ................  Fonctions in line  ...........................
-!    ................................................................
-!
-REAL :: fy, fx, fxprim, fyprim
-REAL :: ri, rj
-!
-!
-fy    ( rj ) =    pi/REAL(jjm) * ( 0.5 * REAL(jjm) +  1. - rj  )
-fyprim( rj ) =    pi/REAL(jjm)
-
-! fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
-! fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
-
-fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
-! fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
-fxprim( ri ) = 2.*pi/REAL(iim)
-!
-!
-!    La valeur de pi est passee par le common/const/ou /const2/ .
-!    Sinon, il faut la calculer avant d'appeler ces fonctions .
-!
-!   ----------------------------------------------------------------
-! Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
-!   -----------------------------------------------------------------
-!
-!    .....  ici, on a l'application particuliere suivante   ........
-!
-!            **************************************
-!            **     x = 2. * pi/iim *  X         **
-!            **     y =      pi/jjm *  Y         **
-!            **************************************
-!
-!   ..................................................................
-!   ..................................................................
-!
-!
-!
-!-----------------------------------------------------------------------
Index: LMDZ6/trunk/libf/grid/fxyprim_mod_h.f90
===================================================================
--- LMDZ6/trunk/libf/grid/fxyprim_mod_h.f90	(revision 5287)
+++ LMDZ6/trunk/libf/grid/fxyprim_mod_h.f90	(revision 5287)
@@ -0,0 +1,30 @@
+! This module replaces grid/fxy_prim.h
+
+MODULE fxyprim_mod_h
+  USE comconst_mod, ONLY: pi
+  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
+  IMPLICIT NONE; PRIVATE
+  PUBLIC fx, fxprim, fy, fyprim
+
+CONTAINS
+
+  REAL FUNCTION fx(ri)
+    REAL, INTENT(IN) :: ri
+    fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.)
+  END FUNCTION fx
+
+  REAL FUNCTION fxprim(ri)
+    REAL, INTENT(IN) :: ri
+    fxprim = 2. * pi / REAL(iim)
+  END FUNCTION fxprim
+
+  REAL FUNCTION fy(rj)
+    REAL, INTENT(IN) :: rj
+    fy = pi / REAL(jjm) * (0.5 * REAL(jjm) + 1. - rj)
+  END FUNCTION fy
+
+  REAL FUNCTION fyprim(rj)
+    REAL, INTENT(IN) :: rj
+    fyprim = pi / REAL(jjm)
+  END FUNCTION fyprim
+END MODULE fxyprim_mod_h
