Skip to content

Commit f5a0166

Browse files
authored
Merge pull request #3348 from RBergua/ServoDyn_StC_logic
ServoDyn-StC: StC_SA_MODE validation logic
2 parents baddbec + 422bcd0 commit f5a0166

2 files changed

Lines changed: 15 additions & 13 deletions

File tree

modules/servodyn/src/StrucCtrl.f90

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2338,18 +2338,20 @@ subroutine StC_ValidatePrimaryData( InputFileData, InitInp, ErrStat, ErrMsg )
23382338
enddo
23392339
endif
23402340

2341-
IF ( InputFileData%StC_SA_MODE /= SA_CMODE_GH_vel .and. &
2342-
InputFileData%StC_SA_MODE /= SA_CMODE_GH_invVel .and. &
2343-
InputFileData%StC_SA_MODE /= SA_CMODE_GH_disp .and. &
2344-
InputFileData%StC_SA_MODE /= SA_CMODE_Ph_FF .and. &
2345-
InputFileData%StC_SA_MODE /= SA_CMODE_Ph_DF ) then
2346-
CALL SetErrStat( ErrID_Fatal, 'Semi-active control mode (StC_SA_MODE) must be ' //&
2347-
trim(Num2LStr(SA_CMODE_GH_vel)) //' (velocity-based ground hook control), ' //&
2348-
trim(Num2LStr(SA_CMODE_GH_invVel))//' (inverse velocity-based ground hook control), ' //&
2349-
trim(Num2LStr(SA_CMODE_GH_disp)) //' (displacement-based ground hook control), ' //&
2350-
trim(Num2LStr(SA_CMODE_Ph_FF)) //' (phase difference algorithm with friction force), or '//&
2351-
trim(Num2LStr(SA_CMODE_Ph_DF)) //' (phase difference algorithm with damping force).', &
2352-
ErrStat, ErrMsg, RoutineName )
2341+
IF ( InputFileData%StC_CMODE == CMODE_Semi ) THEN
2342+
IF ( InputFileData%StC_SA_MODE /= SA_CMODE_GH_vel .and. &
2343+
InputFileData%StC_SA_MODE /= SA_CMODE_GH_invVel .and. &
2344+
InputFileData%StC_SA_MODE /= SA_CMODE_GH_disp .and. &
2345+
InputFileData%StC_SA_MODE /= SA_CMODE_Ph_FF .and. &
2346+
InputFileData%StC_SA_MODE /= SA_CMODE_Ph_DF ) then
2347+
CALL SetErrStat( ErrID_Fatal, 'Semi-active control mode (StC_SA_MODE) must be ' //&
2348+
trim(Num2LStr(SA_CMODE_GH_vel)) //' (velocity-based ground hook control), ' //&
2349+
trim(Num2LStr(SA_CMODE_GH_invVel))//' (inverse velocity-based ground hook control), ' //&
2350+
trim(Num2LStr(SA_CMODE_GH_disp)) //' (displacement-based ground hook control), ' //&
2351+
trim(Num2LStr(SA_CMODE_Ph_FF)) //' (phase difference algorithm with friction force), or '//&
2352+
trim(Num2LStr(SA_CMODE_Ph_DF)) //' (phase difference algorithm with damping force).', &
2353+
ErrStat, ErrMsg, RoutineName )
2354+
END IF
23532355
END IF
23542356

23552357
! Prescribed forces

0 commit comments

Comments
 (0)