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

Philippe 06/09/2016: added XBAK_TIME_FREQ and XBAK_TIME_FREQ_FIRST to choose...

Philippe 06/09/2016: added XBAK_TIME_FREQ and XBAK_TIME_FREQ_FIRST to choose backup frequency in terms of time
parent c42d115b
No related branches found
No related tags found
No related merge requests found
...@@ -63,6 +63,10 @@ INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ = NNEGUNDEF ! Number ...@@ -63,6 +63,10 @@ INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ = NNEGUNDEF ! Number
! of timesteps between 2 backups for each model ! of timesteps between 2 backups for each model
INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ_FIRST = 1 ! First INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ_FIRST = 1 ! First
! timestep numbers between 2 backups for each model (if NBAK_STEP_FREQ is set) ! timestep numbers between 2 backups for each model (if NBAK_STEP_FREQ is set)
REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ = XNEGUNDEF ! Time between
! 2 backups for each model
REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ_FIRST = 0. ! Time for first
! backup for each model (if XBAK_TIME_FREQ is set)
! !
! !
END MODULE MODD_FMOUT END MODULE MODD_FMOUT
...@@ -48,6 +48,9 @@ USE MODD_FMOUT ...@@ -48,6 +48,9 @@ USE MODD_FMOUT
! !
IMPLICIT NONE IMPLICIT NONE
! !
NAMELIST/NAM_FMOUT/LBAK_BEG,LBAK_END,XBAK_TIME,NBAK_STEP,NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST NAMELIST/NAM_FMOUT/LBAK_BEG,LBAK_END,&
XBAK_TIME,NBAK_STEP,&
NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST,&
XBAK_TIME_FREQ,XBAK_TIME_FREQ_FIRST
! !
END MODULE MODN_FMOUT END MODULE MODN_FMOUT
...@@ -528,6 +528,27 @@ DO IMI = 1, NMODEL ...@@ -528,6 +528,27 @@ DO IMI = 1, NMODEL
ISTEP_MAX = NINT(XSEGLEN/DYN_MODEL(IMI)%XTSTEP)+1 ISTEP_MAX = NINT(XSEGLEN/DYN_MODEL(IMI)%XTSTEP)+1
IF (IMI == 1) ISTEP_MAX = ISTEP_MAX - ISUP IF (IMI == 1) ISTEP_MAX = ISTEP_MAX - ISUP
! !
!* 2.3.1a0 Insert regular backups into XBAK_TIME array
!
IF (XBAK_TIME_FREQ(IMI)>0.) THEN
IDX = 1
ZOUT = XBAK_TIME_FREQ_FIRST(IMI)
ZOUTMAX = PSEGLEN - PTSTEP*ISUP
DO WHILE ( ZOUT <= ZOUTMAX )
!Find first non 'allocated' element
DO WHILE ( XBAK_TIME(IMI,IDX) >= 0. )
IDX = IDX + 1
IF (IDX > JPOUTMAX) THEN
PRINT *,'Error in SET_GRID when treating output list (JPOUTMAX too small)'
CALL ABORT
STOP
END IF
END DO
XBAK_TIME(IMI,IDX) = ZOUT
ZOUT = ZOUT + XBAK_TIME_FREQ(IMI)
END DO
END IF
!
!* 2.3.1a Synchronization between nested models through XBAK_TIME arrays (MODD_FMOUT) !* 2.3.1a Synchronization between nested models through XBAK_TIME arrays (MODD_FMOUT)
! !
DO JOUT = 1,JPOUTMAX DO JOUT = 1,JPOUTMAX
...@@ -699,7 +720,8 @@ DO IMI = 1, NMODEL ...@@ -699,7 +720,8 @@ DO IMI = 1, NMODEL
END IF END IF
IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN
OUT_MODEL(IMI)%TOUTBAKN(:)%NOUTDAD = 0 OUT_MODEL(IMI)%TOUTBAKN(:)%NOUTDAD = 0
OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CFILENAME !Check IPOS>0 because TOUTBAKN(0) does not exist (IPOS=0 only if no backups)
IF(IPOS>0) OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CFILENAME
ELSE ELSE
DO IPOS = 1,OUT_MODEL(IMI)%NOUT_NUMB DO IPOS = 1,OUT_MODEL(IMI)%NOUT_NUMB
IDX = 0 IDX = 0
......
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