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

Philippe 25/11/2022: rewrite STATPROF_INSTANT algorithm (does not depends on...

Philippe 25/11/2022: rewrite STATPROF_INSTANT algorithm (does not depends on model timestep anymore => independent of model)
parent 66bc293e
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@
!-----------------------------------------------------------------
! Modifications:
! P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX
! P. Wautelet 25/11/2022: rewrite STATPROF_INSTANT algorithm (does not depends on model timestep anymore => independent of model)
!-----------------------------------------------------------------
! ###################
MODULE MODE_STATPROF_TOOLS
......@@ -729,10 +730,9 @@ END FUNCTION STATPROF_INTERP_3D_V
! #################################################
SUBROUTINE STATPROF_INSTANT( TPSTATPROF_TIME, KIN )
! #################################################
USE MODD_DYN_n, ONLY: XTSTEP
USE MODD_PARAMETERS, ONLY: XUNDEF
USE MODD_TIME_n, ONLY: TDTCUR
USE MODE_DATETIME
USE MODE_MSG
IMPLICIT NONE
......@@ -740,24 +740,26 @@ SUBROUTINE STATPROF_INSTANT( TPSTATPROF_TIME, KIN )
TYPE(TSTATPROFTIME), INTENT(INOUT) :: TPSTATPROF_TIME
INTEGER, INTENT(OUT) :: KIN ! Current step of storage
IF ( TPSTATPROF_TIME%XTIME_CUR == XUNDEF ) TPSTATPROF_TIME%XTIME_CUR = TPSTATPROF_TIME%XTSTEP - XTSTEP
TPSTATPROF_TIME%XTIME_CUR = TPSTATPROF_TIME%XTIME_CUR + XTSTEP
IF ( TPSTATPROF_TIME%XTIME_CUR >= TPSTATPROF_TIME%XTSTEP - 1.E-10 ) THEN
TPSTATPROF_TIME%XTIME_CUR = TPSTATPROF_TIME%XTIME_CUR - TPSTATPROF_TIME%XTSTEP
TPSTATPROF_TIME%N_CUR = TPSTATPROF_TIME%N_CUR + 1
KIN = TPSTATPROF_TIME%N_CUR
IF ( TPSTATPROF_TIME%N_CUR == 0 ) THEN
! First store
TPSTATPROF_TIME%N_CUR = 1
TPSTATPROF_TIME%TPDATES(1) = TDTCUR
KIN = 1
ELSE
IF ( TDTCUR - TPSTATPROF_TIME%TPDATES(TPSTATPROF_TIME%N_CUR) >= TPSTATPROF_TIME%XTSTEP - 1.E-6 ) THEN
TPSTATPROF_TIME%N_CUR = TPSTATPROF_TIME%N_CUR + 1
KIN = TPSTATPROF_TIME%N_CUR
IF ( KIN < 1 .OR. KIN > SIZE( TPSTATPROF_TIME%TPDATES ) ) THEN
CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'STATPROF_INSTANT', 'problem with step of storage' )
KIN = -2
IF ( KIN < 1 .OR. KIN > SIZE( TPSTATPROF_TIME%TPDATES ) ) THEN
CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'STATPROF_INSTANT', 'problem with step of storage' )
KIN = -2
ELSE
TPSTATPROF_TIME%TPDATES(KIN) = TDTCUR
END IF
ELSE
TPSTATPROF_TIME%TPDATES(KIN) = TDTCUR
! Return an invalid step number
KIN = -1
END IF
ELSE
! Return an invalid step number
KIN = -1
END IF
END SUBROUTINE STATPROF_INSTANT
......
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