Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1412,21 +1412,21 @@ PP_THREAD_SAFE FUNCTION ATM2MARS_SET_SATELLITE( IFS_MSG, IFS_PAR, MSG, PAR, HOOK
! TODO: this check is very naive, it should be replaced with a more complex one
PP_TRYCALL(ERRFLAG_IS_SATELLITE) ATM2MARS_IS_SATELLITE( IFS_MSG, IFS_PAR, IS_SATELLITE, HOOKS )

! Error handling
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MSATID), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MINST), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MCHAN), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MSERIES), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%RCWN), ERRFLAG_NOT_ALLOCATED )

PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MSATID).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS1 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MINST).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS2 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MCHAN).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS3 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MSERIES).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS4 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%RCWN).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS5 )

! If it is analysis configure mars and context
IF ( IS_SATELLITE ) THEN
! Error handling
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MSATID), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MINST), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MCHAN), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%MSERIES), ERRFLAG_NOT_ALLOCATED )
PP_DEBUG_CRITICAL_COND_THROW( .NOT.ALLOCATED(IFS_PAR%SAT_%RCWN), ERRFLAG_NOT_ALLOCATED )

PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MSATID).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS1 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MINST).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS2 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MCHAN).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS3 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%MSERIES).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS4 )
PP_DEBUG_CRITICAL_COND_THROW( SIZE(IFS_PAR%SAT_%RCWN).LT.IFS_MSG%ILEVG_, ERRFLAG_OUT_OF_BOUNDS5 )

MSG%IDENT = IFS_PAR%SAT_%MSATID(IFS_MSG%ILEVG_)
MSG%INSTRUMENT = IFS_PAR%SAT_%MINST(IFS_MSG%ILEVG_)
MSG%CHANNEL = IFS_PAR%SAT_%MCHAN(IFS_MSG%ILEVG_)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1095,6 +1095,7 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_GET_MARS_FROM_ATM( THIS, YDMSG, MSG, P
USE :: IFS2MARS_MOD, ONLY: IFS2MARS_SET_ANALYSIS
USE :: IFS2MARS_MOD, ONLY: IFS2MARS_SET_ENSEMBLE
USE :: IFS2MARS_MOD, ONLY: IFS2MARS_SET_SYSTEM_METHOD
USE :: IFS2MARS_MOD, ONLY: ATM2MARS_SET_SATELLITE
USE :: IFS2MARS_MOD, ONLY: ATM2MARS_SET_PARAM
USE :: IFS2MARS_MOD, ONLY: IFS2MARS_SET_DATETIME
USE :: IFS2MARS_MOD, ONLY: IFS2MARS_SET_GEOMETRY
Expand Down Expand Up @@ -1146,6 +1147,7 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_GET_MARS_FROM_ATM( THIS, YDMSG, MSG, P
INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNEXPECTED_REPRESENTATION=14_JPIB_K
INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_TABLES_VERSION=15_JPIB_K
INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_MODEL=16_JPIB_K
INTEGER(KIND=JPIB_K), PARAMETER :: ERRFLAG_UNABLE_TO_SET_SATELLITE=17_JPIB_K

! Local variables declared by the preprocessor for debugging purposes
PP_DEBUG_DECL_VARS
Expand Down Expand Up @@ -1176,6 +1178,7 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_GET_MARS_FROM_ATM( THIS, YDMSG, MSG, P
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_ANALYSIS) IFS2MARS_SET_ANALYSIS( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_ENSEMBLE) IFS2MARS_SET_ENSEMBLE( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_ENSEMBLE) IFS2MARS_SET_SYSTEM_METHOD( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_SATELLITE) ATM2MARS_SET_SATELLITE( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_PARAM) ATM2MARS_SET_PARAM ( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_DATETIME) IFS2MARS_SET_DATETIME( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS, IS_VALID )
PP_TRYCALL(ERRFLAG_UNABLE_TO_SET_TABLES_VERSION) IFS2MARS_SET_TABLES_VERSION( YDMSG, THIS%MODEL_PAR_, MSG, PAR, HOOKS )
Expand Down Expand Up @@ -1250,6 +1253,8 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_GET_MARS_FROM_ATM( THIS, YDMSG, MSG, P
PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set the tables version' )
CASE (ERRFLAG_UNABLE_TO_SET_MODEL)
PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set the model' )
CASE (ERRFLAG_UNABLE_TO_SET_SATELLITE)
PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unable to set satellite keys (channel, ident, instrument)' )
CASE DEFAULT
PP_DEBUG_PUSH_MSG_TO_FRAME( 'Unhandled error' )
END SELECT
Expand Down Expand Up @@ -2474,7 +2479,7 @@ PP_THREAD_SAFE FUNCTION MODEL_DATA2MULTIO_WRITE_WAM_DP( THIS, YDMSG, VALUES_DP,

ERR = MIOMD%DELETE()
PP_DEBUG_DEVELOP_COND_THROW( ERR.NE.MULTIO_SUCCESS, ERRFLAG_UNABLE_TO_DELETE_MIOMD )

ENDIF

!> Free the message/parametrization
Expand Down
Loading