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

Philippe 24/05/2023: sensors: add TSENSORTIME type to replace TSTATPROFTIME from modd_type_statprof

parent 16335b94
Branches
Tags
No related merge requests found
......@@ -42,8 +42,7 @@
!
!
use modd_parameters, only: NNEGUNDEF, XNEGUNDEF, XUNDEF
use modd_sensor, only: tsensor
USE MODD_TYPE_STATPROF, ONLY: TSTATPROFTIME
use modd_sensor, only: tsensor, tsensortime
use modd_type_date, only: date_time
USE MODE_DATETIME, ONLY: TPREFERENCE_DATE
......@@ -83,8 +82,8 @@ TYPE, EXTENDS(TSENSOR), ABSTRACT :: TFLYERDATA
!
!* storage monitoring
!
LOGICAL :: LSTORE = .FALSE. ! Do we have to store data now
TYPE(TSTATPROFTIME) :: TFLYER_TIME ! Time management for flyer
LOGICAL :: LSTORE = .FALSE. ! Do we have to store data now
TYPE(TSENSORTIME) :: TFLYER_TIME ! Time management for flyer
!
INTEGER :: NRANK_CUR = NFLYER_DEFAULT_RANK ! Rank of the process where the flyer is
!
......
......@@ -37,7 +37,8 @@
!
!
USE MODD_PARAMETERS, ONLY: JPMODELMAX
USE MODD_TYPE_STATPROF, ONLY: TPROFILERDATA, TSTATPROFTIME
USE MODD_TYPE_STATPROF, ONLY: TPROFILERDATA
USE MODD_SENSOR, ONLY: TSENSORTIME
IMPLICIT NONE
......@@ -54,7 +55,7 @@ TYPE PROFILER_t
LOGICAL :: LPROFILER ! flag to use profilers
INTEGER :: NUMBPROFILER_LOC = 0 ! number of profilers on this process
!
TYPE(TSTATPROFTIME) :: TPROFILERS_TIME
TYPE(TSENSORTIME) :: TPROFILERS_TIME
TYPE(TPROFILERDATA), DIMENSION(:), POINTER :: TPROFILERS ! characteristics and records of the profilers
!
END TYPE PROFILER_t
......@@ -63,7 +64,7 @@ TYPE(PROFILER_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: PROFILER_MODEL
LOGICAL, POINTER :: LPROFILER=>NULL()
INTEGER, POINTER :: NUMBPROFILER_LOC=>NULL()
TYPE(TSTATPROFTIME), POINTER :: TPROFILERS_TIME => NULL()
TYPE(TSENSORTIME), POINTER :: TPROFILERS_TIME => NULL()
TYPE(TPROFILERDATA), DIMENSION(:), POINTER :: TPROFILERS => NULL()
CONTAINS
......
......@@ -9,12 +9,20 @@
!-----------------------------------------------------------------
MODULE MODD_SENSOR
USE MODD_PARAMETERS, ONLY: NSENSORNAMELGTMAX, NNEGUNDEF, XNEGUNDEF, XUNDEF
USE MODD_TYPE_DATE, ONLY: DATE_TIME
IMPLICIT NONE
PRIVATE
PUBLIC :: TSENSOR
PUBLIC :: TSENSORTIME
TYPE :: TSENSORTIME
INTEGER :: N_CUR = 0 ! current step of storage
REAL :: XTSTEP = 60. ! storage time step (default reset later)
TYPE(DATE_TIME), DIMENSION(:), ALLOCATABLE :: TPDATES ! dates(n) (n: recording instants)
END TYPE TSENSORTIME
TYPE, ABSTRACT :: TSENSOR
CHARACTER(LEN=NSENSORNAMELGTMAX) :: CNAME = '' ! Title or name of the sensor
......
......@@ -37,7 +37,8 @@
!
!
USE MODD_PARAMETERS, ONLY: JPMODELMAX
USE MODD_TYPE_STATPROF, ONLY: TSTATIONDATA, TSTATPROFTIME
USE MODD_TYPE_STATPROF, ONLY: TSTATIONDATA
USE MODD_SENSOR, ONLY: TSENSORTIME
IMPLICIT NONE
......@@ -54,7 +55,7 @@ TYPE STATION_t
LOGICAL :: LSTATION ! flag to use stations
INTEGER :: NUMBSTAT_LOC = 0 ! number of stations on this process
!
TYPE(TSTATPROFTIME) :: TSTATIONS_TIME
TYPE(TSENSORTIME) :: TSTATIONS_TIME
TYPE(TSTATIONDATA), DIMENSION(:), POINTER :: TSTATIONS ! characteristics and records of the stations
!
END TYPE STATION_t
......@@ -63,7 +64,7 @@ TYPE(STATION_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: STATION_MODEL
LOGICAL, POINTER :: LSTATION=>NULL()
INTEGER, POINTER :: NUMBSTAT_LOC=>NULL()
TYPE(TSTATPROFTIME), POINTER :: TSTATIONS_TIME => NULL()
TYPE(TSENSORTIME), POINTER :: TSTATIONS_TIME => NULL()
TYPE(TSTATIONDATA), DIMENSION(:), POINTER :: TSTATIONS => NULL()
CONTAINS
......
......@@ -44,15 +44,8 @@ implicit none
private
public :: TSTATPROFTIME
public :: TPROFILERDATA, TSTATIONDATA, TSTATPROFDATA
TYPE :: TSTATPROFTIME
INTEGER :: N_CUR = 0 ! current step of storage
REAL :: XTSTEP = 60. ! storage time step (default reset later by INI_STATION_n)
type(date_time), dimension(:), ALLOCATABLE :: tpdates ! dates(n) (n: recording instants)
END TYPE TSTATPROFTIME
TYPE, EXTENDS(TSENSOR), ABSTRACT :: TSTATPROFDATA
! Type to store data common to stations and profilers
! It is used as a basis for the TSTATIONDATA and TPROFILERDATA
......
......@@ -15,7 +15,8 @@
MODULE MODE_STATPROF_TOOLS
! ###################
USE MODD_TYPE_STATPROF, ONLY: TPROFILERDATA, TSTATIONDATA, TSTATPROFDATA, TSTATPROFTIME
USE MODD_TYPE_STATPROF, ONLY: TPROFILERDATA, TSTATIONDATA, TSTATPROFDATA
USE MODD_SENSOR, ONLY: TSENSORTIME
IMPLICIT NONE
......@@ -268,8 +269,8 @@ SUBROUTINE STATPROF_INSTANT( TPSTATPROF_TIME, KIN )
IMPLICIT NONE
TYPE(TSTATPROFTIME), INTENT(INOUT) :: TPSTATPROF_TIME
INTEGER, INTENT(OUT) :: KIN ! Current step of storage
TYPE(TSENSORTIME), INTENT(INOUT) :: TPSTATPROF_TIME
INTEGER, INTENT(OUT) :: KIN ! Current step of storage
IF ( TPSTATPROF_TIME%N_CUR == 0 ) THEN
! First store
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment