Juan 30/03/2017 : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
authorJuan Escobar <escj@aero.obs-mip.fr>
Mon, 3 Apr 2017 12:36:25 +0000 (14:36 +0200)
committerJuan Escobar <escj@aero.obs-mip.fr>
Mon, 3 Apr 2017 12:36:25 +0000 (14:36 +0200)
MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
src/ARCH_SRC/surfex/dummy_eggangles.F90
src/LIB/RAD/ECMWF_RAD/parkind1.f90
src/MNH/aerozon.f90
src/MNH/ecmwf_radiation_vers2.f90
src/MNH/ini_radiations_ecmwf.f90
src/MNH/radiations.f90
src/SURFEX/mode_geo_gauss.F90

index ca5bbef..c455f34 100644 (file)
@@ -4,7 +4,7 @@
 /
 &NAM_LUNITn CINIFILE = "KWRAIN" /
 &NAM_CONFn  LUSERV=T LUSERC=T LUSERR=T /
-&NAM_DYNn XTSTEP =10., 
+&NAM_DYNn XTSTEP =9., 
           ! CPRESOPT = "ZRESI",
           NITR = 4, XRELAX = 1., LITRADJ=F,
           LHORELAX_UVWTH = T, LHORELAX_RV = T, LVE_RELAX = F,
index e7742fe..2da05b1 100644 (file)
@@ -1,8 +1,13 @@
 MODULE EGGANGLES
-USE PARKIND1  ,ONLY : JPIM,    JPRB
+!-------------------------------------------------------------------------------
+!!    MODIFICATIONS
+!!    -------------
+!!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
+!-------------------------------------------------------------------------------
+USE PARKIND1  ,ONLY : JPIM
 TYPE LOLA
   SEQUENCE
-  REAL(KIND=JPRB) :: LON, LAT
+  REAL :: LON, LAT
 END TYPE LOLA
 INTERFACE ANGLE_DOMAIN
   MODULE PROCEDURE ANGLE_DOMAIN_RS, ANGLE_DOMAIN_LOLAS, ANGLE_DOMAIN_RV, ANGLE_DOMAIN_LOLAV
@@ -42,60 +47,60 @@ INTERFACE SIZE_W2E
 END INTERFACE
 
 CONTAINS
-REAL(KIND=JPRB) FUNCTION ANGLE_DOMAIN_RS(ALPHA,PI,DOM,UNIT) RESULT (BETA)
-REAL(KIND=JPRB), INTENT(IN)                           :: ALPHA
+REAL FUNCTION ANGLE_DOMAIN_RS(ALPHA,PI,DOM,UNIT) RESULT (BETA)
+REAL, INTENT(IN)                           :: ALPHA
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL               :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL               :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                 :: PI
+REAL, INTENT(IN), OPTIONAL                 :: PI
 END FUNCTION ANGLE_DOMAIN_RS
 TYPE (LOLA) FUNCTION ANGLE_DOMAIN_LOLAS(ALPHA,PI,DOM,UNIT) RESULT (BETA)
 TYPE (LOLA), INTENT(IN)                                :: ALPHA
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL                :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL                :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                  :: PI
+REAL, INTENT(IN), OPTIONAL                  :: PI
 END FUNCTION ANGLE_DOMAIN_LOLAS
 ! -------------------------------------------------------------------------------
 FUNCTION ANGLE_DOMAIN_RV(ALPHA,PI,DOM,UNIT) RESULT (BETA)
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)             :: ALPHA
+REAL, DIMENSION(:), INTENT(IN)             :: ALPHA
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL               :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL               :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                 :: PI
+REAL, INTENT(IN), OPTIONAL                 :: PI
 END FUNCTION ANGLE_DOMAIN_RV
 ! -------------------------------------------------------------------------------
 FUNCTION ANGLE_DOMAIN_LOLAV(YL_ALPHA,PI,DOM,UNIT) RESULT (YD_BETA)
 TYPE (LOLA), DIMENSION(:), INTENT(IN)               :: YL_ALPHA
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL             :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL             :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL               :: PI
+REAL, INTENT(IN), OPTIONAL               :: PI
 END FUNCTION ANGLE_DOMAIN_LOLAV
 ! -------------------------------------------------------------------------------
 INTEGER(KIND=JPIM) FUNCTION VAL_LAT_S(LAT,NUM_ERR,PI,UNIT) RESULT(ETAT)
-REAL(KIND=JPRB), INTENT(IN)                          :: LAT
+REAL, INTENT(IN)                          :: LAT
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL              :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                :: PI
+REAL, INTENT(IN), OPTIONAL                :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL             :: NUM_ERR
 END FUNCTION VAL_LAT_S
 ! -------------------------------------------------------------------------------
 INTEGER(KIND=JPIM) FUNCTION VAL_LAT_V(P_LAT,NUM_ERR,PI,UNIT) RESULT(ETAT)
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)                 :: P_LAT
+REAL, DIMENSION(:), INTENT(IN)                 :: P_LAT
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL                   :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                     :: PI
+REAL, INTENT(IN), OPTIONAL                     :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL                  :: NUM_ERR
 END FUNCTION VAL_LAT_V
 ! -------------------------------------------------------------------------------
 INTEGER(KIND=JPIM) FUNCTION VAL_LON_S(LON,NUM_ERR,PI,DOM,UNIT) RESULT(ETAT)
-REAL(KIND=JPRB), INTENT(IN)                                :: LON
+REAL, INTENT(IN)                                :: LON
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL                    :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL                    :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                      :: PI
+REAL, INTENT(IN), OPTIONAL                      :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL                   :: NUM_ERR
 END FUNCTION VAL_LON_S
 ! -------------------------------------------------------------------------------
 INTEGER(KIND=JPIM) FUNCTION VAL_LON_V(LON,NUM_ERR,PI,DOM,UNIT) RESULT(ETAT)
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)                       :: LON
+REAL, DIMENSION(:), INTENT(IN)                       :: LON
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL                         :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL                         :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                           :: PI
+REAL, INTENT(IN), OPTIONAL                           :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL                        :: NUM_ERR
 END FUNCTION VAL_LON_V
 ! -------------------------------------------------------------------------------
@@ -103,7 +108,7 @@ INTEGER(KIND=JPIM) FUNCTION VAL_COORD_S(PT_COORD,NUM_ERR,PI,DOM,UNIT) RESULT(ETA
 TYPE (LOLA), INTENT(IN)                               :: PT_COORD
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL               :: DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL               :: UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                 :: PI
+REAL, INTENT(IN), OPTIONAL                 :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL              :: NUM_ERR
 END FUNCTION VAL_COORD_S
 ! -------------------------------------------------------------------------------
@@ -111,7 +116,7 @@ INTEGER(KIND=JPIM) FUNCTION VAL_COORD_V(YD_PT_COORD,K_NUM_ERR,PI,CD_DOM,CD_UNIT)
 TYPE (LOLA), DIMENSION(:), INTENT(IN)                   :: YD_PT_COORD
 CHARACTER (LEN=2), INTENT(IN), OPTIONAL                 :: CD_DOM
 CHARACTER (LEN=1), INTENT(IN), OPTIONAL                 :: CD_UNIT
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                   :: PI
+REAL, INTENT(IN), OPTIONAL                   :: PI
 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL                :: K_NUM_ERR
 END FUNCTION VAL_COORD_V
 ! -------------------------------------------------------------------------------
@@ -136,73 +141,73 @@ FUNCTION LOLAD_V (COORD_RAD) RESULT (COORD_DEG)
 TYPE(LOLA), DIMENSION(:), INTENT(IN)                :: COORD_RAD
 END FUNCTION LOLAD_V
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION COSIN_TO_ANGLE_S(COSINUS,SINUS) RESULT (ANGLE)
+REAL FUNCTION COSIN_TO_ANGLE_S(COSINUS,SINUS) RESULT (ANGLE)
 ! (Cosinus,Sinus) => Angle
-REAL(KIND=JPRB), INTENT(IN)                  :: COSINUS,SINUS
+REAL, INTENT(IN)                  :: COSINUS,SINUS
 END FUNCTION COSIN_TO_ANGLE_S
 
 FUNCTION COSIN_TO_ANGLE_V(COSINUS,SINUS) RESULT (ANGLE)
 ! (Cosinus,Sinus) => Angle
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)              :: COSINUS,SINUS
+REAL, DIMENSION(:), INTENT(IN)              :: COSINUS,SINUS
 END FUNCTION COSIN_TO_ANGLE_V
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION P_ACOS_S(COSINUS) RESULT (ANGLE)
+REAL FUNCTION P_ACOS_S(COSINUS) RESULT (ANGLE)
 ! Protected ACOS
-REAL(KIND=JPRB), INTENT(IN)                  :: COSINUS
+REAL, INTENT(IN)                  :: COSINUS
 END FUNCTION P_ACOS_S
 
 FUNCTION P_ACOS_V(COSINUS) RESULT (ANGLE)
 ! Protected ACOS
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)              :: COSINUS
+REAL, DIMENSION(:), INTENT(IN)              :: COSINUS
 END FUNCTION P_ACOS_V
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION P_ASIN_S(SINUS) RESULT (ANGLE)
+REAL FUNCTION P_ASIN_S(SINUS) RESULT (ANGLE)
 ! Protected ASIN
-REAL(KIND=JPRB), INTENT(IN)                  :: SINUS
+REAL, INTENT(IN)                  :: SINUS
 END FUNCTION P_ASIN_S
 
 FUNCTION P_ASIN_V(SINUS) RESULT (ANGLE)
 ! Protected ASIN
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)            :: SINUS
+REAL, DIMENSION(:), INTENT(IN)            :: SINUS
 END FUNCTION P_ASIN_V
-REAL(KIND=JPRB) FUNCTION MINIMAX_S(VAL,LIM) RESULT (VALO)
+REAL FUNCTION MINIMAX_S(VAL,LIM) RESULT (VALO)
 ! Return Value in [-LIM,LIM]
-REAL(KIND=JPRB), INTENT(IN)                      :: VAL
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL            :: LIM
+REAL, INTENT(IN)                      :: VAL
+REAL, INTENT(IN), OPTIONAL            :: LIM
 END FUNCTION MINIMAX_S
 FUNCTION MINIMAX_V(VAL,LIM) RESULT (VALO)
 ! Return Value in [-LIM,LIM]
-REAL(KIND=JPRB), DIMENSION(:), INTENT(IN)          :: VAL
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL              :: LIM
-REAL(KIND=JPRB), DIMENSION(SIZE(VAL)) :: VALO
+REAL, DIMENSION(:), INTENT(IN)          :: VAL
+REAL, INTENT(IN), OPTIONAL              :: LIM
+REAL, DIMENSION(SIZE(VAL)) :: VALO
 END FUNCTION MINIMAX_V
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION DIST_2REF_L(COORD_LON,REF_LON,PI) RESULT(DIST)
-REAL(KIND=JPRB), INTENT(IN)                   :: COORD_LON, REF_LON
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL         :: PI       
+REAL FUNCTION DIST_2REF_L(COORD_LON,REF_LON,PI) RESULT(DIST)
+REAL, INTENT(IN)                   :: COORD_LON, REF_LON
+REAL, INTENT(IN), OPTIONAL         :: PI       
 END FUNCTION DIST_2REF_L
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION DIST_2REF_S(PT_COORD,REF_COORD,PI) RESULT(DIST)
+REAL FUNCTION DIST_2REF_S(PT_COORD,REF_COORD,PI) RESULT(DIST)
 
 TYPE (LOLA), INTENT(IN)                       :: PT_COORD, REF_COORD
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL         :: PI 
+REAL, INTENT(IN), OPTIONAL         :: PI 
 END FUNCTION DIST_2REF_S
 ! -------------------------------------------------------------------------------
 FUNCTION DIST_2REF_V(PT_COORD,REF_COORD,PI) RESULT(DIST)
 TYPE (LOLA), DIMENSION(:), INTENT(IN)                   :: PT_COORD
 TYPE (LOLA), INTENT(IN)                                 :: REF_COORD
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL                   :: PI 
-REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD)) :: DIST
+REAL, INTENT(IN), OPTIONAL                   :: PI 
+REAL, DIMENSION(SIZE(PT_COORD)) :: DIST
 END FUNCTION DIST_2REF_V
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION SIZE_W2E_L(WEST_LON,EAST_LON,PI) RESULT(TAILLE)
-REAL(KIND=JPRB), INTENT(IN)                   :: WEST_LON, EAST_LON
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL         :: PI 
+REAL FUNCTION SIZE_W2E_L(WEST_LON,EAST_LON,PI) RESULT(TAILLE)
+REAL, INTENT(IN)                   :: WEST_LON, EAST_LON
+REAL, INTENT(IN), OPTIONAL         :: PI 
 END FUNCTION SIZE_W2E_L
 ! -------------------------------------------------------------------------------
-REAL(KIND=JPRB) FUNCTION SIZE_W2E_S(WEST_COORD,EAST_COORD,PI) RESULT(TAILLE)
+REAL FUNCTION SIZE_W2E_S(WEST_COORD,EAST_COORD,PI) RESULT(TAILLE)
 TYPE (LOLA), INTENT(IN)                       :: WEST_COORD, EAST_COORD
-REAL(KIND=JPRB), INTENT(IN), OPTIONAL         :: PI 
+REAL, INTENT(IN), OPTIONAL         :: PI 
 END FUNCTION SIZE_W2E_S
 ! -------------------------------------------------------------------------------
 END MODULE EGGANGLES      
index 6f01e32..4dd0f4a 100644 (file)
@@ -8,6 +8,7 @@ MODULE PARKIND1
 !
 !     *** Define usual kinds for strong typing ***
 !     J.Escobar : 9/06/2015, for I*8 compilation force JPIM to default size
+!     J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !
 IMPLICIT NONE
 SAVE
@@ -28,6 +29,7 @@ INTEGER, PARAMETER :: JPRT = SELECTED_REAL_KIND(2,1)
 INTEGER, PARAMETER :: JPRS = SELECTED_REAL_KIND(4,2)
 INTEGER, PARAMETER :: JPRM = SELECTED_REAL_KIND(6,37)
 REAL               :: REAL_DEF_JPRB
-INTEGER, PARAMETER :: JPRB = KIND(REAL_DEF_JPRB) ! SELECTED_REAL_KIND(13,300)
+INTEGER, PARAMETER :: JPRB = SELECTED_REAL_KIND(13,300) !  KIND(REAL_DEF_JPRB) 
+INTEGER, PARAMETER :: JPRB_DEF = KIND(REAL_DEF_JPRB) 
 !
 END MODULE PARKIND1
index d4b4ae5..04808cb 100644 (file)
@@ -3,10 +3,6 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
-!-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_AEROZON
 !     ##########################
@@ -142,12 +138,14 @@ END MODULE MODI_AEROZON
 !!    MODIFICATIONS
 !!    -------------
 !!      (P.Peyrille) 20/07/04 : add LFIX_DAT to have perpetual day
+!!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !ECMWF radiation scheme specific modules 
 !
+USE PARKIND1 , ONLY : JPRB
 USE YOEAERD  , ONLY : RCAEOPS  ,RCAEOPL  ,RCAEOPU  ,RCAEOPD  ,RCTRBGA  ,&
      RCVOBGA  ,RCSTBGA  ,RCTRPT   ,RCAEADM  ,RCAEROS  ,&
      RCAEADK
@@ -234,13 +232,18 @@ REAL :: ZA1, ZA2      ! Ancillary variables
 REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZEXNT ! Exner function
 !
 ! Variables for aerosols and ozone climatologies set up
-REAL, DIMENSION (:),     ALLOCATABLE  :: ZAESEA, ZAELAN, ZAEURB, ZAEDES
-REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZPRES_HL,ZT_HL, ZPAVE, ZOZON, ZWORK_GRID
-REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZCVDAES, ZCVDAEL, ZCVDAEU, ZCVDAED,ZETAH
-REAL, DIMENSION (:),     ALLOCATABLE  :: ZGEMU 
+
+REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZPAVE, ZWORK_GRID
+REAL, DIMENSION (:),   ALLOCATABLE  :: ZAESEA, ZAELAN, ZAEURB, ZAEDES
+!
+REAL(KIND=JPRB), DIMENSION (:,:),   ALLOCATABLE  :: ZT_HL
+REAL(KIND=JPRB), DIMENSION (:),   ALLOCATABLE  :: ZAESEA_RAD, ZAELAN_RAD, ZAEURB_RAD, ZAEDES_RAD
+REAL(KIND=JPRB), DIMENSION (:,:), ALLOCATABLE  :: ZCVDAES, ZCVDAEL, ZCVDAEU, ZCVDAED
+REAL(KIND=JPRB), DIMENSION (:,:), ALLOCATABLE  :: ZPRES_HL,ZOZON,ZETAH
+REAL(KIND=JPRB), DIMENSION (:),   ALLOCATABLE  :: ZGEMU 
 INTEGER :: ZYMD, ZHOURS   ! date for climatology initialisation
 INTEGER :: JKCEP,JK_NH
-REAL, DIMENSION (:,:,:), ALLOCATABLE  :: ZAER
+REAL(KIND=JPRB), DIMENSION (:,:,:), ALLOCATABLE  :: ZAER
 REAL, DIMENSION(:),      ALLOCATABLE  :: ZAECOV_SEA, ZAECOV_URB, ZAECOV_LAN, ZAECOV_DES
 !
 !-------------------------------------------------------------------------------
@@ -430,6 +433,11 @@ IF(HAER /= 'NONE') THEN
   ALLOCATE (ZAELAN(KDLON))
   ALLOCATE (ZAEURB(KDLON))
   ALLOCATE (ZAEDES(KDLON))
+
+  ALLOCATE (ZAESEA_RAD(KDLON)) 
+  ALLOCATE (ZAELAN_RAD(KDLON))
+  ALLOCATE (ZAEURB_RAD(KDLON))
+  ALLOCATE (ZAEDES_RAD(KDLON))
 !
 ! AEROSOLS ECMWF climatologies
 !
@@ -464,9 +472,10 @@ IF(HAER /= 'NONE') THEN
 !
 ! final aerosol profiles on mnh grid
 !
+  ZAESEA_RAD = ZAESEA ; ZAELAN_RAD = ZAELAN ; ZAEURB_RAD = ZAEURB ; ZAEDES_RAD = ZAEDES
   CALL RADAER (1, KDLON, KDLON, 1, KFLEV, ZPRES_HL,ZT_HL, &
        ZCVDAES ,ZCVDAEL ,ZCVDAEU ,ZCVDAED, &
-       ZAESEA, ZAELAN, ZAEURB, ZAEDES, &
+       ZAESEA_RAD, ZAELAN_RAD, ZAEURB_RAD, ZAEDES_RAD, &
        ZAER )
 !
 !!- VOLCANIC AEROSOL SET TO epsilon IN ABSENCE OF ERUPTION 
@@ -480,6 +489,11 @@ IF(HAER /= 'NONE') THEN
   DEALLOCATE (ZAELAN)
   DEALLOCATE (ZAEURB)
   DEALLOCATE (ZAEDES)
+
+  DEALLOCATE (ZAESEA_RAD)
+  DEALLOCATE (ZAELAN_RAD)
+  DEALLOCATE (ZAEURB_RAD)
+  DEALLOCATE (ZAEDES_RAD)
 ELSE
   ZAER(:,:,:)= 1E-12
 END IF
index e717200..a2805e4 100644 (file)
@@ -2,142 +2,6 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:17
-!-----------------------------------------------------------------
-!      #################################
-       MODULE MODI_ECMWF_RADIATION_VERS2
-!      #################################
-INTERFACE
-! 
-SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
-     PDZ,HEFRADL, HEFRADI, HOPWSW, HOPISW, HOPWLW, HOPILW, PFUDG, &
-     PRII0, PAER , PALBD , PALBP, PAPH , PAP,                 &
-     PCCO2, PCLFR , PDP  , PEMIS, PEMIW , PLSM , PMU0, POZON, &
-     PQ   , PQIWC ,PIWC, PQLWC, PLWC,PQS  , PQRWC,PRWC,               &
-     PTH  , PT    , PTS, PCCT_C2R2, PCRT_C2R2, PCIT_C1R3,     &
-     PFCT  , PFLT , PFCS , PFLS  ,                            &  
-     PDTLW, PDTSW ,PFLUX_TOP_GND_IRVISNIR,                    & 
-     PSFSWDIR, PSFSWDIF,                                      &
-     PFSDWN, PFSUP, PFLUX_LW ,                                &
-     PDTLW_CS, PDTSW_CS ,PFLUX_TOP_GND_IRVISNIR_CS,           &
-     PFCDWN, PFCUP, PFLUX_CLW,                                & 
-     PPLAN_ALB_VIS, PPLAN_ALB_NIR, PPLAN_TRA_VIS, PPLAN_TRA_NIR,&
-     PPLAN_ABS_VIS, PPLAN_ABS_NIR, PEFCL_LWD, PEFCL_LWU,      &
-     PFLWP,PFIWP, PRADLP, PRADIP,PEFCL_RRTM, PCLSW_TOTAL,     &
-     PTAU_TOTAL, POMEGA_TOTAL, PCG_TOTAL,                     &
-     ODUST,PPIZA_DST,PCGA_DST,PTAUREL_DST )
-!  
-INTEGER, INTENT(IN) :: KAER !number of aerosol class     
-REAL, DIMENSION (:,:), INTENT (IN) ::PDZ !thickness of the mesh (m)
-INTEGER, INTENT(IN) :: KLEV ! number of vertical level for radiation calulation 
-INTEGER, INTENT(IN) :: KLON ! number of columns            " 
-INTEGER, INTENT(IN) :: KRAD_DIAG ! index for the number of diagnostic fields 
-!                                        choice in
-CHARACTER (LEN=*), INTENT (IN) :: HEFRADL !cloud water effective radius calculation  
-CHARACTER (LEN=*), INTENT (IN) :: HEFRADI !ice water effective radius calculation
-CHARACTER (LEN=*), INTENT (IN) :: HOPWSW !cloud water SW optical properties  
-CHARACTER (LEN=*), INTENT (IN) :: HOPISW !ice water SW optical properties 
-CHARACTER (LEN=*), INTENT (IN) :: HOPWLW !cloud water LW optical properties
-CHARACTER (LEN=*), INTENT (IN) :: HOPILW !ice water  LW optical properties
-REAL, INTENT(IN)               :: PFUDG  ! subgrid cloud inhomogeneity factor 
-!
-!
-REAL, INTENT(INOUT)                  :: PRII0 ! corrected solar constant
-REAL, INTENT(IN)                     :: PCCO2 ! CO2 content (Pa/Pa)
-REAL, DIMENSION (:,:,:), INTENT (IN) :: PAER  ! aerosol optical thickness
-REAL, DIMENSION (:,:), INTENT (IN)   :: PALBD ! surface diffuse spectral albedo
-REAL, DIMENSION (:,:), INTENT (IN)   :: PALBP ! surface direct spectral albedo
-REAL, DIMENSION (:), INTENT (IN)     :: PEMIS ! surface emissivity
-REAL, DIMENSION (:), INTENT (IN)     :: PEMIW ! surface emissivity in LW window
-REAL, DIMENSION (:), INTENT (IN)     :: PLSM  ! land sea mask
-REAL, DIMENSION (:), INTENT (IN)     :: PMU0  ! cosine of solar angle 
-REAL, DIMENSION (:,:), INTENT (IN)   :: POZON ! ozone content (Pa/Pa)
-REAL, DIMENSION (:), INTENT (IN)     :: PTS   ! surfaec temperature
-REAL, DIMENSION (:,:), INTENT (IN)   :: PT    ! mean layer  temperature (mass point) 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PAP   ! mean layer  pressure (mass point)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PTH   ! half-level temperature
-REAL, DIMENSION (:,:), INTENT (IN)   :: PAPH  ! half-level pressure 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PDP   ! layer pressure thickness
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQ    ! mean layer specific humidity  (Pa/pa) 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQS   ! mean layer saturation spec. humid.
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQIWC ! mean-layer ice specific water content (kg/kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PIWC ! mean-layer ice water content (kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQLWC ! mean-layer liquid specific water content(kg/Kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PLWC ! mean-layer liquid water content(kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQRWC ! mean-layer rain specific water content(kg/kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PRWC ! mean-layer rain water content(kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCLFR  ! mean-layer cloud fraction
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCCT_C2R2 ! cloud water concentration (C2R2)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCRT_C2R2 ! rain water concentration (C2R2)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCIT_C1R3 ! ice crystal concentration (C1R3)
-REAL, DIMENSION(:,:,:),INTENT(IN)    :: PPIZA_DST   !Single scattering albedo of dust (wvl dependent)
-REAL, DIMENSION(:,:,:),INTENT(IN)   :: PCGA_DST    !Assymetry factor for dust (wvl dependent)
-REAL, DIMENSION(:,:,:),INTENT(IN)   :: PTAUREL_DST !Optical depth of dust relative to the one at 550nm
-
-LOGICAL, INTENT (IN)                 :: ODUST  ! flag for dust
-!
-! OUTPUTS 
-!
-REAL, DIMENSION (:,:), INTENT (OUT) :: PDTLW   ! LW temperature tendency
-REAL, DIMENSION (:,:), INTENT (OUT) :: PDTSW   ! SW temperature tendency
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFLUX_TOP_GND_IRVISNIR ! Top and Ground rad. FLUX.
-REAL, DIMENSION (:,:), INTENT (OUT) :: PSFSWDIR ! surface SW direct flux
-REAL, DIMENSION (:,:), INTENT (OUT) :: PSFSWDIF ! surface SW diffuse flux
-! 
-!KRAD_DIAG >=1 --> optional: flux profiles
-!
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCT ! Total LW net flux
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFLT ! Total SW net flux
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFSDWN! Downward SW flux
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFSUP ! Upward SW flux
-REAL, DIMENSION (:,:,:), INTENT (OUT) :: PFLUX_LW ! LW flux (upward and downward)
-!
-!KRAD_DIAG >=2 --> optional: clear-sky outputs
-!
-REAL, DIMENSION (:,:), INTENT (OUT) :: PDTLW_CS   ! LW clear sky temperature tendancy
-REAL, DIMENSION (:,:), INTENT (OUT) :: PDTSW_CS   ! SW  clear sky temperature tendancy
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFLUX_TOP_GND_IRVISNIR_CS !  Top and
-                                                    !  Ground radiative Clear-sky FLUXes
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCS ! Clear-sky LW net flux 
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFLS ! Clear-sky SW net flux
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCDWN  ! Downward SW Clear sky flux 
-REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCUP   ! Upward SW Clear sky flux 
-REAL, DIMENSION (:,:,:), INTENT (OUT):: PFLUX_CLW !Clear sky  LW flux (upward and downward)
-!
-!KRAD_DIAG >=3 --> optional: other macroscpic radiative parameteres
-!
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ALB_VIS !PLANetary ALBedo in VISible 
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ALB_NIR !     "          Near-InfraRed
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_TRA_VIS !PLANetary TRANsmission in VISible
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_TRA_NIR !     "          Near-InfraRed
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ABS_VIS !PLANetary ABSorption in VISible
-REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ABS_NIR !     "          Near-InfraRed 
-
-
-!
-!KRAD_DIAG >=4 --> optional: more cloud effect radiative parameters 
-!
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFLWP       ! Liquid water path
-REAL, DIMENSION (:,:), INTENT (OUT) :: PFIWP       ! Ice water path
-REAL, DIMENSION (:,:), INTENT (OUT) :: PRADLP      ! Cloud water effective radius  
-REAL, DIMENSION (:,:), INTENT (OUT) :: PRADIP      ! Cloud ice effective radius
-REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_LWD   ! effective downward LW nebulosity 
-REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_LWU   ! effective upward LW nebulosity
-                                                   ! Note: not meaningfull when using RRTM 
-REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_RRTM ! Effective LW nebuloisty (RRTM case)
-REAL, DIMENSION (:,:), INTENT (OUT) :: PCLSW_TOTAL ! Effective SW cloud fraction(mixed phase)
-REAL, DIMENSION (:,:,:), INTENT (OUT) :: PTAU_TOTAL !Effective cloud optical thickness
-REAL, DIMENSION (:,:,:), INTENT (OUT) :: POMEGA_TOTAL! "   single scattering albedo
-REAL, DIMENSION (:,:,:), INTENT (OUT) :: PCG_TOTAL   ! "   asymetry factor 
-!
-END SUBROUTINE ECMWF_RADIATION_VERS2
-END INTERFACE
-END MODULE MODI_ECMWF_RADIATION_VERS2
-!
 !##############################################################
 !OPTION! -Ni
 SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
@@ -204,12 +68,14 @@ SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
 !         B. Aouizerats 09/2010 Explicit aerosol optical properties computation
 !         G.Delautier 9/2014: remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
 !         M.Mazoyer 2016 :  limit of 100 microns for effective radius 
+!         J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !-----------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !ECMWF radiation scheme specific modules 
 !
+USE PARKIND1 , ONLY : JPRB
 USE YOMCST   , ONLY : RG ,RD ,RTT ,RPI
 USE YOERAD   , ONLY : NMODE, NSW ,LRRTM ,LINHOM ,LRADIP, LRADLP 
 USE YOELW    , ONLY : NSIL     ,NTRA     ,NUA      ,TSTAND   ,XP
@@ -268,7 +134,7 @@ CHARACTER (LEN=*), INTENT (IN) :: HOPWLW !cloud water LW optical properties
 CHARACTER (LEN=*), INTENT (IN) :: HOPILW !ice water  LW optical properties
 REAL, INTENT(IN)               :: PFUDG  !subgrid cloud inhomogeneity factor
 !
-REAL, INTENT(INOUT)                     :: PRII0 ! corrected solar constant
+REAL(KIND=JPRB), INTENT(INOUT)       :: PRII0 ! corrected solar constant
 REAL, INTENT(IN)                     :: PCCO2 ! CO2 content (Pa/Pa)
 REAL, DIMENSION (:,:,:), INTENT (IN) :: PAER  ! aerosol optical thickness
 REAL, DIMENSION (:,:), INTENT (IN)   :: PALBD ! surface diffuse spectral albedo
@@ -278,14 +144,14 @@ REAL, DIMENSION (:), INTENT (IN)     :: PEMIW ! surface emissivity in LW window
 REAL, DIMENSION (:), INTENT (IN)     :: PLSM  ! land sea mask
 REAL, DIMENSION (:), INTENT (IN)     :: PMU0  ! cosine of solar angle 
 REAL, DIMENSION (:,:), INTENT (IN)   :: POZON ! ozone content (Pa/Pa)
-REAL, DIMENSION (:), INTENT (IN)     :: PTS   ! surfaec temperature
-REAL, DIMENSION (:,:), INTENT (IN)   :: PT    ! mean layer  temperature (mass point) 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PAP   ! mean layer  pressure (mass point)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PTH   ! half-level temperature
-REAL, DIMENSION (:,:), INTENT (IN)   :: PAPH  ! half-level pressure 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PDP   ! layer pressure thickness
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQ    ! mean layer specific humidity  (Pa/pa) 
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQS   ! mean layer saturation spec. humid.
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PTS   ! surfaec temperature
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PT    ! mean layer  temperature (mass point) 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAP   ! mean layer  pressure (mass point)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PTH   ! half-level temperature
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAPH  ! half-level pressure 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PDP   ! layer pressure thickness
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQ    ! mean layer specific humidity  (Pa/pa) 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQS   ! mean layer saturation spec. humid.
 REAL, DIMENSION (:,:), INTENT (IN)   :: PQIWC ! mean-layer ice specific water content (kg/kg)
 REAL, DIMENSION (:,:), INTENT (IN)   :: PIWC ! mean-layer ice water content (kg/m3)
 REAL, DIMENSION (:,:), INTENT (IN)   :: PQLWC ! mean-layer liquid specific water content(kg/Kg)
@@ -296,9 +162,9 @@ REAL, DIMENSION (:,:), INTENT (IN)   :: PCLFR  ! mean-layer cloud fraction
 REAL, DIMENSION (:,:), INTENT (IN)   :: PCCT_C2R2 ! cloud water concentration (C2R2)
 REAL, DIMENSION (:,:), INTENT (IN)   :: PCRT_C2R2 ! rain water concentration (C2R2)
 REAL, DIMENSION (:,:), INTENT (IN)   :: PCIT_C1R3 ! ice crystal concentration (C1R3)
-REAL, DIMENSION(:,:,:),INTENT(IN)    :: PPIZA_DST   !Single scattering albedo of dust (wvl dependent)
-REAL, DIMENSION(:,:,:),INTENT(IN)    :: PCGA_DST    !Assymetry factor for dust (wvl dependent)
-REAL, DIMENSION(:,:,:),INTENT(IN)    :: PTAUREL_DST !Optical depth of dust relative to the one at 550nm
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PPIZA_DST   !Single scattering albedo of dust (wvl dependent)
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PCGA_DST    !Assymetry factor for dust (wvl dependent)
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PTAUREL_DST !Optical depth of dust relative to the one at 550nm
 LOGICAL, INTENT (IN)                 :: ODUST  ! flag for dust
 !
 !
@@ -373,7 +239,7 @@ REAL          :: ZALND, ZASEA, ZD, ZDEN, ZNTOT, ZNUM, ZRATIO, Z1RADI,&
      ZBETAI, ZOMGI, ZOMGP, ZFDEL,  ZTCELS, ZFSR,  ZAIWC, ZBIWC,  &
      ZTBLAY, ZADDPLK,  ZPLANCK, Z1RADL, Z1RADR
 
-REAL, DIMENSION(KLON) ::  ZTCLEAR, ZDT0, ZEMIS, ZEMIW, &
+REAL(KIND=JPRB), DIMENSION(KLON) ::  ZTCLEAR, ZDT0, ZEMIS, ZEMIW, &
      ZFIWP , ZFLWP, ZFRWP, ZIWC,      &
      ZLWC, ZMU0, ZPSOL, ZVIEW,        &
      ZBICFU,  ZKICFU1, ZKICFU2,       &
@@ -386,26 +252,32 @@ REAL, DIMENSION(KLON) ::  ZTCLEAR, ZDT0, ZEMIS, ZEMIW, &
      ZUVDF, ZPARF
 !cc           , ZRADRD
 !
-REAL, DIMENSION(KLON,NSW)    :: ZALBD , ZALBP , ZDIRFS, ZDIFFS
-REAL, DIMENSION(KLON,KLEV)   :: ZCLFR,  ZCLDLD  , ZCLDLU, ZCLDSW,        &  
+REAL(KIND=JPRB), DIMENSION(KLON,NSW)    :: ZALBD , ZALBP , ZDIRFS, ZDIFFS
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV)   :: ZCLFR,  ZCLDLD  , ZCLDLU, ZCLDSW,        &  
      ZOZON, ZOZ   , ZOZN,    ZTAVE ,  ZDPGCP, &
      ZCOOLR  , ZCOOLC, ZHEATR  , ZHEATC,      & 
      ZDFLWT  , ZDFLWC, ZDFSWT  , ZDFSWC
 !
-REAL, DIMENSION(KLON,KLEV+1) :: ZPMB  , ZTL, & 
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV+1) :: ZPMB  , ZTL, & 
      ZFCDWN, ZFCUP, ZFSDWN, ZFSUP, &
      ZFLT, ZFCT,ZFCS, ZFLS
 !
-REAL, DIMENSION(KLON,NSW,KLEV) :: ZCG ,ZOMEGA, ZTAU
+REAL(KIND=JPRB), DIMENSION(KLON,NSW,KLEV) :: ZCG ,ZOMEGA, ZTAU
 !
-REAL, DIMENSION(KLON,2,KLEV+1) :: ZFLUX_LW, ZFLUX_CLW      
+REAL(KIND=JPRB), DIMENSION(KLON,2,KLEV+1) :: ZFLUX_LW, ZFLUX_CLW      
 !
-REAL, DIMENSION(KLON,KLEV,16)  :: ZTAUCLD
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV,16)  :: ZTAUCLD
 !
-REAL, DIMENSION(KLON,KAER,KLEV) :: ZAER_SW,ZAER_LW ! Optical aerosol properties
+REAL(KIND=JPRB), DIMENSION(KLON,KAER,KLEV) :: ZAER_SW,ZAER_LW ! Optical aerosol properties
 LOGICAL :: GPROP_OP             !drapeau sur les condition a remplir pour que le
                                 !calcul des propriétés optiques soit effectué
+!
+!!$REAL, ALLOCATABLE, DIMENSION(:) :: XRTMIN, XCTMIN
+!!$REAL :: XALPHAC,XNUC,XALPHAR,XNUR,XCREC,XCRER,XFREFFR,XAC,XAR,XLBEXC,XLBEXR,XFREFFI,XLBEXI
+!
+REAL(KIND=JPRB) :: ZCCO2_RAD
 !--------------------------------------------------------------
+ZCCO2_RAD = PCCO2
 !
 !*         1.     SET-UP INPUT QUANTITIES FOR RADIATION
 !                 -------------------------------------
@@ -1160,7 +1032,7 @@ ENDDO
 !                 ------------------------------------
 IF ( .NOT. LRRTM) THEN
   CALL LW ( IKIDIA , IKFDIA , KLON  , KLEV , NMODE, &
-       PCCO2 , ZCLDLD, ZCLDLU,                     &
+       ZCCO2_RAD , ZCLDLD, ZCLDLU,                     &
        PDP   , ZDT0  , ZEMIS , ZEMIW,              &
        ZPMB  , ZOZON , ZTL,                        &
        ZAER_LW  , ZTAVE , ZVIEW , PQ,                 &
@@ -1184,7 +1056,7 @@ ELSE
 !
   CALL RRTM_RRTM_140GP(IKIDIA,IKFDIA,KLON,KLEV,   &
        ZAER_LW,PAPH,PAP,PTS,PTH,PT,ZEMIS,ZEMIW,      &
-       PQ    , PCCO2 , ZOZN  , ZCLDSW  , ZTAUCLD, &
+       PQ    , ZCCO2_RAD , ZOZN  , ZCLDSW  , ZTAUCLD, &
        ZEMIT , ZFLUX_LW , ZFLUX_CLW , ZTCLEAR )
 ENDIF
 
@@ -1198,7 +1070,7 @@ ENDDO
 !
 IF (ZRMUZ > 0.) THEN
       CALL SW ( IKIDIA , IKFDIA , KLON  , KLEV  , KAER,     &
-           PRII0 , PCCO2 , ZPSOL , ZALBD , ZALBP , PQ   , PQS,  &
+           PRII0 , ZCCO2_RAD , ZPSOL , ZALBD , ZALBP , PQ   , PQS,  &
            ZMU0  , ZCG   , ZCLDSW, PDP   , ZOMEGA, ZOZ  , ZPMB, &
            ZTAU  , ZTAVE , ZAER_SW,                                &
            ZHEATR, ZFSDWN, ZFSUP , ZHEATC, ZFCDWN, ZFCUP,       &
index 72a746e..6c2cee1 100644 (file)
@@ -3,11 +3,6 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
-!-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_INI_RADIATIONS_ECMWF
 !     ##########################
@@ -176,12 +171,14 @@ END MODULE MODI_INI_RADIATIONS_ECMWF
 !!      (A.Grini) 07/2005 add dust
 !!      (M.Tomasini P.Peyrille)  06/2012  to set date to a perpetual day if LFIX_DAT=T
 !!      (V. Masson)          replaces cover fractions by sea/town/bare soil fractions
+!!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !ECMWF radiation scheme specific modules 
 !
+USE PARKIND1,  ONLY : JPRB
 USE YOEAERD  , ONLY : RCAEOPS  ,RCAEOPL  ,RCAEOPU  ,RCAEOPD  ,RCTRBGA  ,&
      RCVOBGA  ,RCSTBGA  ,RCTRPT   ,RCAEADM  ,RCAEROS  ,&
      RCAEADK
@@ -296,12 +293,14 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZEXNT ! Exner functio
 !
 ! Variables for aerosols and ozone climatologies set up
 REAL, DIMENSION (:),     ALLOCATABLE  :: ZAESEA, ZAELAN, ZAEURB, ZAEDES
+REAL(KIND=JPRB), DIMENSION (:), ALLOCATABLE  :: ZAESEA_RAD, ZAELAN_RAD, ZAEURB_RAD, ZAEDES_RAD
 LOGICAL, DIMENSION (:,:),ALLOCATABLE  :: GAFRICA, GASIA, GAUSTRALIA
 REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZDESERT ! desert fraction
-REAL, DIMENSION (:,:,:), ALLOCATABLE  :: ZAER
-REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZPRES_HL,ZT_HL, ZPAVE, ZOZON, ZWORK_GRID
-REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZCVDAES, ZCVDAEL, ZCVDAEU, ZCVDAED,ZETAH
-REAL, DIMENSION (:),     ALLOCATABLE  :: ZGEMU 
+REAL, DIMENSION (:,:),   ALLOCATABLE  :: ZPAVE, ZWORK_GRID
+REAL(KIND=JPRB), DIMENSION (:,:,:), ALLOCATABLE  :: ZAER
+REAL(KIND=JPRB), DIMENSION (:,:),   ALLOCATABLE  :: ZPRES_HL,ZT_HL,ZOZON
+REAL(KIND=JPRB), DIMENSION (:,:),   ALLOCATABLE  :: ZCVDAES, ZCVDAEL, ZCVDAEU, ZCVDAED,ZETAH
+REAL(KIND=JPRB), DIMENSION (:),     ALLOCATABLE  :: ZGEMU 
 REAL, DIMENSION(:),      ALLOCATABLE  :: ZAECOV_SEA, ZAECOV_URB, ZAECOV_LAN, ZAECOV_DES
 INTEGER :: ZYMD, ZHOURS   ! date for climatology initialisation
 !
@@ -556,6 +555,11 @@ IF(HAER /= 'NONE') THEN
   ALLOCATE (ZAELAN(KDLON))
   ALLOCATE (ZAEURB(KDLON))
   ALLOCATE (ZAEDES(KDLON))
+
+  ALLOCATE (ZAESEA_RAD(KDLON))
+  ALLOCATE (ZAELAN_RAD(KDLON))
+  ALLOCATE (ZAEURB_RAD(KDLON))
+  ALLOCATE (ZAEDES_RAD(KDLON))
 !
 ! AEROSOLS ECMWF climatologies
 !
@@ -654,9 +658,10 @@ IF(HAER /= 'NONE') THEN
 !
 ! final aerosol profiles on mnh grid
 !
+  ZAESEA_RAD = ZAESEA ; ZAELAN_RAD = ZAELAN ; ZAEURB_RAD = ZAEURB ; ZAEDES_RAD = ZAEDES
   CALL RADAER (1, KDLON, KDLON, 1, KFLEV, ZPRES_HL,ZT_HL, &
        ZCVDAES ,ZCVDAEL ,ZCVDAEU ,ZCVDAED, &
-       ZAESEA, ZAELAN, ZAEURB, ZAEDES, &
+       ZAESEA_RAD, ZAELAN_RAD, ZAEURB_RAD, ZAEDES_RAD, &
        ZAER )
 !
 !!- VOLCANIC AEROSOL SET TO epsilon IN ABSENCE OF ERUPTION 
@@ -670,6 +675,11 @@ IF(HAER /= 'NONE') THEN
   DEALLOCATE (ZAELAN)
   DEALLOCATE (ZAEURB)
   DEALLOCATE (ZAEDES)
+
+  DEALLOCATE (ZAESEA_RAD)
+  DEALLOCATE (ZAELAN_RAD)
+  DEALLOCATE (ZAEURB_RAD)
+  DEALLOCATE (ZAEDES_RAD)
 ELSE
   ZAER(:,:,:)= 1E-12
 END IF
index 8bd7efe..6689c34 100644 (file)
@@ -3,11 +3,6 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
-!-----------------------------------------------------------------
 !    ########################
      MODULE MODI_RADIATIONS   
 !    ########################
@@ -211,11 +206,13 @@ END MODULE MODI_RADIATIONS
 !!      V.Masson, C.Lac 08/10 Correction of inversion of Diffuse and direct albedo
 !!      B.Aouizerats 2010     Explicit aerosol optical properties
 !!      C.Lac       11/2015   Correction on aerosols
+!!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE PARKIND1 , ONLY : JPRB
 USE MODE_FMWRIT
 USE MODE_FM
 USE MODE_ll
@@ -370,9 +367,11 @@ INTEGER :: IDIM          ! effective number of columns for which the radiation
 INTEGER :: INIR          ! index corresponding to NIR fisrt band (in SW)
 !
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZTAVE    ! mean-layer temperature
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZTAVE_RAD    ! mean-layer temperature
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZPAVE    ! mean-layer pressure
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQSAVE   ! saturation specific humidity
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQVAVE   ! mean-layer specific humidity
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZPAVE_RAD    ! mean-layer pressure
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQSAVE   ! saturation specific humidity
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQVAVE   ! mean-layer specific humidity
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQLAVE   ! Liquid water KG/KG
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQRAVE   ! Rain water  KG/KG
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQIAVE   ! Ice water Kg/KG
@@ -381,9 +380,9 @@ REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQRWC   ! Rain water  content kg/m3
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQIWC   ! ice water content  kg/m3
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCFAVE   ! mean-layer cloud fraction
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZO3AVE   ! mean-layer ozone content 
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZPRES_HL ! half-level pressure
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZT_HL    ! half-level temperature
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZDPRES   ! layer pressure thickness
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZPRES_HL ! half-level pressure
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZT_HL    ! half-level temperature
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZDPRES   ! layer pressure thickness
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2! Cloud water Concentarion (C2R2)
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2! Rain water Concentarion (C2R2)
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3! Ice water Concentarion (C2R2)
@@ -392,10 +391,10 @@ REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBP    ! spectral surface albedo for di
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBD    ! spectral surface albedo for diffuse radiations 
 REAL, DIMENSION (:),  ALLOCATABLE   :: ZEMIS    ! surface LW  emissivity 
 REAL, DIMENSION (:), ALLOCATABLE    :: ZEMIW    ! surface LW  WINDOW emissivity
-REAL, DIMENSION(:), ALLOCATABLE     :: ZTS      ! reformatted surface PTSRAD array 
+REAL(KIND=JPRB), DIMENSION(:), ALLOCATABLE     :: ZTS      ! reformatted surface PTSRAD array 
 REAL, DIMENSION(:), ALLOCATABLE     :: ZLSM     ! reformatted land sea mask
 REAL, DIMENSION(:),   ALLOCATABLE   :: ZRMU0    ! Reformatted ZMU0 array
-REAL                                :: ZRII0    ! corrected solar constant
+REAL(KIND=JPRB)                     :: ZRII0    ! corrected solar constant
 !
 REAL, DIMENSION(:,:), ALLOCATABLE :: ZDTLW    ! LW temperature tendency
 REAL, DIMENSION(:,:), ALLOCATABLE :: ZDTSW    ! SW temperature tendency
@@ -495,15 +494,15 @@ REAL, DIMENSION(:),     ALLOCATABLE :: ZEMIS_SPLIT, ZEMIW_SPLIT
 REAL, DIMENSION(:),     ALLOCATABLE :: ZRMU0_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZCFAVE_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZO3AVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZT_HL_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZPRES_HL_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZTAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZPAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZT_HL_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZPRES_HL_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZTAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZPAVE_SPLIT
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAER_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZDPRES_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZDPRES_SPLIT
 REAL, DIMENSION(:),     ALLOCATABLE :: ZLSM_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQVAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQSAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQVAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQSAVE_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQLAVE_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQIAVE_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQRAVE_SPLIT
@@ -514,7 +513,10 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: ZDZ_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3_SPLIT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZTS_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA_SPLIT
+REAL(KIND=JPRB), DIMENSION(:),     ALLOCATABLE :: ZTS_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIR_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIF_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZNFLW_CS_SPLIT
@@ -568,12 +570,12 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: PAER_AER      !tau/tau_{550} aerosol from
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: PAER_SLT      !tau/tau_{550} sea salt               (lon,lat,lev,wvl)
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: PAER_DST     !tau/tau_{550} dust               (lon,lat,lev,wvl)
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTAU550_EQ_TMP      !tau/tau_{550} aerosols               (lon,lat,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZPIZA_EQ            !Single scattering albedo of aerosols (points,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZCGA_EQ             !Assymetry factor aerosols            (points,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ          !tau/tau_{550} aerosols               (points,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZPIZA_EQ_SPLIT      !Single scattering albedo of aerosols (points,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZCGA_EQ_SPLIT       !Assymetry factor aerosols            (points,lev,wvl)
-REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ_SPLIT    !tau/tau_{550} aerosols               (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZPIZA_EQ            !Single scattering albedo of aerosols (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZCGA_EQ             !Assymetry factor aerosols            (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ          !tau/tau_{550} aerosols               (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZPIZA_EQ_SPLIT      !Single scattering albedo of aerosols (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZCGA_EQ_SPLIT       !Assymetry factor aerosols            (points,lev,wvl)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ_SPLIT    !tau/tau_{550} aerosols               (points,lev,wvl)
 REAL, DIMENSION(KFLEV,KSWB)           :: ZPIZA_EQ_CLEAR      !Single scattering albedo of aerosols (lev,wvl)
 REAL, DIMENSION(KFLEV,KSWB)           :: ZCGA_EQ_CLEAR       !Assymetry factor aerosols            (lev,wvl)
 REAL, DIMENSION(KFLEV,KSWB)           :: ZTAUREL_EQ_CLEAR    !tau/tau_{550} aerosols               (lev,wvl)
@@ -1868,12 +1870,16 @@ IF( IDIM <= KRAD_COLNBR ) THEN
 ! there is less than KRAD_COLNBR verticals to be considered therefore
 ! no split of the arrays is performed
 !
-   CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
+ ALLOCATE(ZTAVE_RAD(SIZE(ZTAVE,1),SIZE(ZTAVE,2)))
+ ALLOCATE(ZPAVE_RAD(SIZE(ZPAVE,1),SIZE(ZPAVE,2)))
+ ZTAVE_RAD = ZTAVE
+ ZPAVE_RAD = ZPAVE
+  CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
-       ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE,               &
+       ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
        PCCO2, ZCFAVE, ZDPRES, ZEMIS, ZEMIW, ZLSM, ZRMU0,          &
        ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
-       ZT_HL,ZTAVE, ZTS, ZCCT_C2R2, ZCRT_C2R2, ZCIT_C1R3,         &
+       ZT_HL,ZTAVE_RAD, ZTS, ZCCT_C2R2, ZCRT_C2R2, ZCIT_C1R3,         &
        ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
        ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
        ZSFSWDIR, ZSFSWDIF,                                        &
@@ -1885,7 +1891,7 @@ IF( IDIM <= KRAD_COLNBR ) THEN
        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
-
+ DEALLOCATE(ZTAVE_RAD,ZPAVE_RAD)
 ELSE
 !
 ! the splitting of the arrays will be performed
index 9ac3cc7..c9d1d15 100644 (file)
@@ -11,6 +11,7 @@ MODULE MODE_GEO_GAUSS
   !!     MODIFICATION
   !!     ------------
   !!       Original  10/2005
+  !!       J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
   !!
   !--------------------------------------------------------------------------- 
   USE EGGANGLES, ONLY : LOLA
@@ -106,7 +107,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)          :: PT_TR
     TYPE (LOLA), INTENT(IN)          :: PT_POLE
 
-    REAL(KIND=JPRB)    :: ZSIN, ZCOS
+    REAL    :: ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ROTATE_G_S',0,ZHOOK_HANDLE)
@@ -129,7 +130,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)                        :: PT_POLE
     TYPE (LOLA), DIMENSION(SIZE(PT_TR))            :: PT_REEL
 
-    REAL(KIND=JPRB), DIMENSION(SIZE(PT_TR))                   :: ZSIN, ZCOS
+    REAL, DIMENSION(SIZE(PT_TR))                   :: ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ROTATE_G_V',0,ZHOOK_HANDLE)
@@ -155,7 +156,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)          :: PT_REEL
     TYPE (LOLA), INTENT(IN)          :: PT_POLE
 
-    REAL(KIND=JPRB) :: ZSIN, ZCOS
+    REAL :: ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
    
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ANTI_ROTATE_G_S',0,ZHOOK_HANDLE)
@@ -177,7 +178,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)                        :: PT_POLE
     TYPE (LOLA), DIMENSION(SIZE(PT_REEL))          :: PT_TR  
 
-    REAL(KIND=JPRB), DIMENSION(SIZE(PT_REEL)) :: ZSIN, ZCOS
+    REAL, DIMENSION(SIZE(PT_REEL)) :: ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
    IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ANTI_ROTATE_G_V',0,ZHOOK_HANDLE)
@@ -202,7 +203,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)          :: PT_COORD
     REAL, INTENT(IN)                 :: PCODIL
 
-    REAL(KIND=JPRB) :: ZPC2, ZSIN, ZCOS
+    REAL :: ZPC2, ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ETIR_S',0,ZHOOK_HANDLE)
@@ -222,7 +223,7 @@ CONTAINS
     REAL, INTENT(IN)                        :: PCODIL
     TYPE (LOLA), DIMENSION(SIZE(PT_COORD))  :: PT_ET
 
-    REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD))         :: ZPC2, ZSIN, ZCOS
+    REAL, DIMENSION(SIZE(PT_COORD))         :: ZPC2, ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ETIR_V',0,ZHOOK_HANDLE)
@@ -241,7 +242,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)          :: PT_COORD
     REAL, INTENT(IN)                 :: PCODIL
 
-    REAL(KIND=JPRB)     :: ZPC2, ZSIN, ZCOS
+    REAL     :: ZPC2, ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:RETRE_S',0,ZHOOK_HANDLE)
@@ -261,7 +262,7 @@ CONTAINS
     REAL, INTENT(IN)                        :: PCODIL
     TYPE (LOLA), DIMENSION(SIZE(PT_COORD))  :: PT_RE
 
-    REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD))         :: ZPC2, ZSIN, ZCOS
+    REAL, DIMENSION(SIZE(PT_COORD))         :: ZPC2, ZSIN, ZCOS
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:RETRE_V',0,ZHOOK_HANDLE)
@@ -283,7 +284,7 @@ CONTAINS
     TYPE (LOLA), INTENT(IN)          :: POLE, PT_COORD
     REAL, INTENT(IN)                 :: PCODIL
     
-    REAL(KIND=JPRB) :: ZPC2
+    REAL :: ZPC2
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:MAP_FAC_S',0,ZHOOK_HANDLE)
     ZPC2  = PCODIL*PCODIL
@@ -299,7 +300,7 @@ CONTAINS
     REAL, INTENT(IN)                        :: PCODIL
     REAL, DIMENSION(SIZE(PT_COORD))         :: PMF
 
-    REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD))         :: ZPC2
+    REAL, DIMENSION(SIZE(PT_COORD))         :: ZPC2
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:MAP_FAC_V',0,ZHOOK_HANDLE)