Skip to content
Snippets Groups Projects
Commit 417fbfbb authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 08/04/2022: remove modd_sub_stationn

parent ae50524e
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
!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.
......@@ -108,7 +108,6 @@ USE MODD_SUB_MODEL_n
USE MODD_SUB_PASPOL_n
USE MODD_SUB_PHYS_PARAM_n
USE MODD_SUB_PROFILER_n
USE MODD_SUB_STATION_n
USE MODD_TIMEZ
USE MODD_TURB_n
!
......@@ -204,7 +203,6 @@ CALL SUB_CH_MONITOR_GOTO_MODEL(KFROM, KTO)
CALL SUB_MODEL_GOTO_MODEL(KFROM, KTO)
CALL SUB_PHYS_PARAM_GOTO_MODEL(KFROM, KTO)
CALL SUB_PROFILER_GOTO_MODEL(KFROM, KTO)
CALL SUB_STATION_GOTO_MODEL(KFROM, KTO)
CALL SUB_PASPOL_GOTO_MODEL(KFROM, KTO)
CALL SUB_ELEC_GOTO_MODEL(KFROM, KTO)
!CALL TIME_GOTO_MODEL(KFROM, KTO)
......
!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!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 modd 2006/06/27 12:28:56
!-----------------------------------------------------------------
! ############################
MODULE MODD_SUB_STATION_n
! ############################
!
!!**** *MODD_STATION* - declaration of stations
!!
!! PURPOSE
!! -------
! The purpose of this declarative module is to define
! the different stations types.
!
!!
!!** IMPLICIT ARGUMENTS
!! ------------------
!! NONE
!!
!! REFERENCE
!! ---------
!!
!! AUTHOR
!! ------
!! P. Tulet *Meteo France*
!!
!! MODIFICATIONS
!! -------------
!! Original 15/01/02
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
!
USE MODD_PARAMETERS, ONLY: JPMODELMAX
IMPLICIT NONE
TYPE SUB_STATION_t
!
LOGICAL :: GSTATFIRSTCALL = .TRUE. !
!
INTEGER,DIMENSION(:), POINTER :: II=>NULL() ! mass station position (x index)
INTEGER,DIMENSION(:), POINTER :: IJ=>NULL() ! mass station position (y index)
INTEGER,DIMENSION(:), POINTER :: IU=>NULL() ! U flux point station position (x index)
INTEGER,DIMENSION(:), POINTER :: IV=>NULL() ! V flux point station position (y index)
!
REAL, DIMENSION(:), POINTER :: ZTHIS_PROCS=>NULL() !
!
REAL,DIMENSION(:), POINTER :: ZXCOEF=>NULL() ! X direction interpolation coefficient
REAL,DIMENSION(:), POINTER :: ZUCOEF=>NULL() ! X direction interpolation coefficient (for U)
REAL,DIMENSION(:), POINTER :: ZYCOEF=>NULL() ! Y direction interpolation coefficient
REAL,DIMENSION(:), POINTER :: ZVCOEF=>NULL() ! Y direction interpolation coefficient (for V)
!
END TYPE SUB_STATION_t
TYPE(SUB_STATION_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: SUB_STATION_MODEL
LOGICAL, POINTER :: GSTATFIRSTCALL=>NULL()
INTEGER,DIMENSION(:), POINTER :: II=>NULL()
INTEGER,DIMENSION(:), POINTER :: IJ=>NULL()
INTEGER,DIMENSION(:), POINTER :: IU=>NULL()
INTEGER,DIMENSION(:), POINTER :: IV=>NULL()
REAL, DIMENSION(:), POINTER :: ZTHIS_PROCS=>NULL()
REAL,DIMENSION(:), POINTER :: ZXCOEF=>NULL()
REAL,DIMENSION(:), POINTER :: ZUCOEF=>NULL()
REAL,DIMENSION(:), POINTER :: ZYCOEF=>NULL()
REAL,DIMENSION(:), POINTER :: ZVCOEF=>NULL()
CONTAINS
SUBROUTINE SUB_STATION_GOTO_MODEL(KFROM, KTO)
INTEGER, INTENT(IN) :: KFROM, KTO
!
! Save current state for allocated arrays
SUB_STATION_MODEL(KFROM)%II=>II
SUB_STATION_MODEL(KFROM)%IJ=>IJ
SUB_STATION_MODEL(KFROM)%IU=>IU
SUB_STATION_MODEL(KFROM)%IV=>IV
SUB_STATION_MODEL(KFROM)%ZTHIS_PROCS=>ZTHIS_PROCS
SUB_STATION_MODEL(KFROM)%ZXCOEF=>ZXCOEF
SUB_STATION_MODEL(KFROM)%ZUCOEF=>ZUCOEF
SUB_STATION_MODEL(KFROM)%ZYCOEF=>ZYCOEF
SUB_STATION_MODEL(KFROM)%ZVCOEF=>ZVCOEF
!
! Current model is set to model KTO
GSTATFIRSTCALL=>SUB_STATION_MODEL(KTO)%GSTATFIRSTCALL
II=>SUB_STATION_MODEL(KTO)%II
IJ=>SUB_STATION_MODEL(KTO)%IJ
IU=>SUB_STATION_MODEL(KTO)%IU
IV=>SUB_STATION_MODEL(KTO)%IV
ZTHIS_PROCS=>SUB_STATION_MODEL(KTO)%ZTHIS_PROCS
ZXCOEF=>SUB_STATION_MODEL(KTO)%ZXCOEF
ZUCOEF=>SUB_STATION_MODEL(KTO)%ZUCOEF
ZYCOEF=>SUB_STATION_MODEL(KTO)%ZYCOEF
ZVCOEF=>SUB_STATION_MODEL(KTO)%ZVCOEF
END SUBROUTINE SUB_STATION_GOTO_MODEL
END MODULE MODD_SUB_STATION_n
......@@ -95,7 +95,6 @@ USE MODD_PARAMETERS
USE MODD_PARAM_n, ONLY: CRAD
USE MODD_STATION_n
USE MODD_ALLSTATION_n, ONLY: LDIAG_SURFRAD
USE MODD_SUB_STATION_n
USE MODD_TIME, ONLY: tdtexp
USE MODD_TIME_n, ONLY: tdtcur
!
......@@ -212,105 +211,6 @@ END IF
!
!----------------------------------------------------------------------------
!
!* 4. STATION POSITION
! --------------
!
!* 4.0 initialization of processor test
! --------------------------------
IF (GSTATFIRSTCALL) THEN
GSTATFIRSTCALL=.FALSE.
!
IF (.NOT.(ASSOCIATED(ZTHIS_PROCS))) ALLOCATE(ZTHIS_PROCS(NUMBSTAT))
!
IF (.NOT.(ASSOCIATED(II))) ALLOCATE(II(NUMBSTAT))
IF (.NOT.(ASSOCIATED(IJ))) ALLOCATE(IJ(NUMBSTAT))
IF (.NOT.(ASSOCIATED(IV))) ALLOCATE(IV(NUMBSTAT))
IF (.NOT.(ASSOCIATED(IU))) ALLOCATE(IU(NUMBSTAT))
IF (.NOT.(ASSOCIATED(ZXCOEF))) ALLOCATE(ZXCOEF(NUMBSTAT))
IF (.NOT.(ASSOCIATED(ZUCOEF))) ALLOCATE(ZUCOEF(NUMBSTAT))
IF (.NOT.(ASSOCIATED(ZYCOEF))) ALLOCATE(ZYCOEF(NUMBSTAT))
IF (.NOT.(ASSOCIATED(ZVCOEF))) ALLOCATE(ZVCOEF(NUMBSTAT))
ZXCOEF(:) =XUNDEF
ZUCOEF(:) =XUNDEF
ZYCOEF(:) =XUNDEF
ZVCOEF(:) =XUNDEF
DO I=1,NUMBSTAT
!
ZTHIS_PROCS(I)=0.
!
!* 4.1 X position
! ----------
!
IU(I)=COUNT( PXHAT (:)<=TSTATIONS(I)%XX )
II(I)=COUNT( ZXHATM(:)<=TSTATIONS(I)%XX )
!
IF (II(I)<=IIB-1 .AND. LWEST_ll() .AND. .NOT. L1D) TSTATIONS(I)%LERROR=.TRUE.
IF (II(I)>=IIE .AND. LEAST_ll() .AND. .NOT. L1D) TSTATIONS(I)%LERROR=.TRUE.
!
!
!* 4.2 Y position
! ----------
!
IV(I)=COUNT( PYHAT (:)<=TSTATIONS(I)%XY )
IJ(I)=COUNT( ZYHATM(:)<=TSTATIONS(I)%XY )
!
IF (IJ(I)<=IJB-1 .AND. LSOUTH_ll() .AND. .NOT. L1D) TSTATIONS(I)%LERROR=.TRUE.
IF (IJ(I)>=IJE .AND. LNORTH_ll() .AND. .NOT. L1D) TSTATIONS(I)%LERROR=.TRUE.
!
!
!* 4.3 Position of station according to processors
! -------------------------------------------
!
IF (IU(I)>=IIB .AND. IU(I)<=IIE .AND. IV(I)>=IJB .AND. IV(I)<=IJE) ZTHIS_PROCS(I)=1.
IF (L1D) ZTHIS_PROCS(I)=1.
!
!
!* 4.4 Computations only on correct processor
! --------------------------------------
ZXCOEF(I) = 0.
ZYCOEF(I) = 0.
ZUCOEF(I) = 0.
ZVCOEF(I) = 0.
IF (ZTHIS_PROCS(I) >0. .AND. .NOT. L1D) THEN
!----------------------------------------------------------------------------
!
!* 6.1 Interpolation coefficient for X
! -------------------------------
!
ZXCOEF(I) = (TSTATIONS(I)%XX - ZXHATM(II(I))) / (ZXHATM(II(I)+1) - ZXHATM(II(I)))
!
!
!
!* 6.2 Interpolation coefficient for y
! -------------------------------
!
ZYCOEF(I) = (TSTATIONS(I)%XY - ZYHATM(IJ(I))) / (ZYHATM(IJ(I)+1) - ZYHATM(IJ(I)))
!
!-------------------------------------------------------------------
!
!* 7. INITIALIZATIONS FOR INTERPOLATIONS OF U AND V
! ---------------------------------------------
!
!* 7.1 Interpolation coefficient for X (for U)
! -------------------------------
!
ZUCOEF(I) = (TSTATIONS(I)%XX - PXHAT(IU(I))) / (PXHAT(IU(I)+1) - PXHAT(IU(I)))
!
!
!* 7.2 Interpolation coefficient for y (for V)
! -------------------------------
!
ZVCOEF(I) = (TSTATIONS(I)%XY - PYHAT(IV(I))) / (PYHAT(IV(I)+1) - PYHAT(IV(I)))
!
!
END IF
ENDDO
END IF
!----------------------------------------------------------------------------
!
!* 8. DATA RECORDING
! --------------
!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment