From 2a7957fe4280e9e26b15484e73d2f17e72f729c3 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Thu, 16 Feb 2023 10:31:40 +0100
Subject: [PATCH] Quentin 16/02/2023: bugfix revert 592c5d1880 on
 surf_solar_shadows : the use of XHAT and YHAT is necessary

---
 src/MNH/phys_paramn.f90        |  2 +-
 src/MNH/surf_solar_shadows.f90 | 28 ++++++++++++++--------------
 2 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90
index 275e7eca4..280d9dd03 100644
--- a/src/MNH/phys_paramn.f90
+++ b/src/MNH/phys_paramn.f90
@@ -809,7 +809,7 @@ CALL SUNPOS_n   ( XZENITH, ZCOSZEN, ZSINZEN, ZAZIMSOL )
 !
   ZTIME1 = ZTIME2
 !
-  CALL SURF_RAD_MODIF (XMAP, XDXHAT, XDYHAT, XXHATM, XYHATM, &
+  CALL SURF_RAD_MODIF (XMAP, XDXHAT, XDYHAT, XXHAT, XYHAT, &
                   ZCOSZEN, ZSINZEN, ZAZIMSOL, XZS, XZS_XY,   &
                   XDIRFLASWD, XDIRSRFSWD                     )
 !
diff --git a/src/MNH/surf_solar_shadows.f90 b/src/MNH/surf_solar_shadows.f90
index 7d13e34b0..ff167776a 100644
--- a/src/MNH/surf_solar_shadows.f90
+++ b/src/MNH/surf_solar_shadows.f90
@@ -9,14 +9,14 @@
 !
 INTERFACE 
 !
-      SUBROUTINE SURF_SOLAR_SHADOWS ( PMAP, PXHATM, PYHATM,                   &
+      SUBROUTINE SURF_SOLAR_SHADOWS ( PMAP, PXHAT, PYHAT,                     &
                   PCOSZEN, PSINZEN, PAZIMSOL,                                 &
                   PZS, PZS_XY, PDIRSWDT, PDIRSRFSWD                           )
 !
 !
 REAL, DIMENSION(:,:),     INTENT(IN) :: PMAP         ! map factor
-REAL, DIMENSION(:),       INTENT(IN) :: PXHATM       ! X coordinate at mass points
-REAL, DIMENSION(:),       INTENT(IN) :: PYHATM       ! Y coordinate at mass points
+REAL, DIMENSION(:),       INTENT(IN) :: PXHAT        ! X coordinate
+REAL, DIMENSION(:),       INTENT(IN) :: PYHAT        ! Y coordinate
 REAL, DIMENSION(:,:),     INTENT(IN) :: PCOSZEN ! COS(zenithal solar angle)
 REAL, DIMENSION(:,:),     INTENT(IN) :: PSINZEN ! SIN(zenithal solar angle)
 REAL, DIMENSION(:,:),     INTENT(IN) :: PAZIMSOL! azimuthal solar angle
@@ -34,7 +34,7 @@ END INTERFACE
 !
 END MODULE MODI_SURF_SOLAR_SHADOWS
 !     #########################################################################
-      SUBROUTINE SURF_SOLAR_SHADOWS ( PMAP, PXHATM, PYHATM,                   &
+      SUBROUTINE SURF_SOLAR_SHADOWS ( PMAP, PXHAT, PYHAT,                     &
                   PCOSZEN, PSINZEN, PAZIMSOL,                                 &
                   PZS, PZS_XY, PDIRSWDT, PDIRSRFSWD                           )
 !     #########################################################################
@@ -91,8 +91,8 @@ IMPLICIT NONE
 !
 !
 REAL, DIMENSION(:,:),     INTENT(IN) :: PMAP         ! map factor
-REAL, DIMENSION(:),       INTENT(IN) :: PXHATM       ! X coordinate at mass points
-REAL, DIMENSION(:),       INTENT(IN) :: PYHATM       ! Y coordinate at mass points
+REAL, DIMENSION(:),       INTENT(IN) :: PXHAT        ! X coordinate
+REAL, DIMENSION(:),       INTENT(IN) :: PYHAT        ! Y coordinate
 REAL, DIMENSION(:,:),     INTENT(IN) :: PCOSZEN ! COS(zenithal solar angle)
 REAL, DIMENSION(:,:),     INTENT(IN) :: PSINZEN ! SIN(zenithal solar angle)
 REAL, DIMENSION(:,:),     INTENT(IN) :: PAZIMSOL! azimuthal solar angle
@@ -227,20 +227,20 @@ DO JJ=IJB,IJE
 !
       SELECT CASE (JT)
        CASE (1)
-         ZX=PXHATM(JI)/6.
-         ZY=PYHATM(JJ)
+         ZX=(5.*PXHAT(JI)+PXHAT(JI+1))/6.
+         ZY=0.5*(PYHAT(JJ)+PYHAT(JJ+1))
          ZZ=(PZS(JI,JJ)+PZS_XY(JI,JJ)+PZS_XY(JI,JJ+1))/3.
        CASE (2)
-         ZX=PXHATM(JI)
-         ZY=PYHATM(JJ)/6.
+         ZX=0.5*(PXHAT(JI)+PXHAT(JI+1))
+         ZY=(5.*PYHAT(JJ+1)+PYHAT(JJ))/6.
          ZZ=(PZS(JI,JJ)+PZS_XY(JI,JJ+1)+PZS_XY(JI+1,JJ+1))/3.
        CASE (3)
-         ZX=PXHATM(JI)/6.
-         ZY=PYHATM(JJ)
+         ZX=(5.*PXHAT(JI+1)+PXHAT(JI))/6.
+         ZY=0.5*(PYHAT(JJ)+PYHAT(JJ+1))
          ZZ=(PZS(JI,JJ)+PZS_XY(JI+1,JJ)+PZS_XY(JI+1,JJ+1))/3.
        CASE (4)
-         ZX=PXHATM(JI)
-         ZY=PYHATM(JJ)/6.
+         ZX=0.5*(PXHAT(JI)+PXHAT(JI+1))
+         ZY=(5.*PYHAT(JJ)+PYHAT(JJ+1))/6.
          ZZ=(PZS(JI,JJ)+PZS_XY(JI,JJ)+PZS_XY(JI+1,JJ))/3.
       END SELECT
 !
-- 
GitLab