C++Guns – RoboBlog

19.08.2020

Fortran assert

Filed under: Allgemein — Tags: — Thomas @ 07:08

assert.h

#ifdef NDEBUG
#define assert(expr)
#else
#define assert(expr)    call assertion(expr)
#endif

assertion.F90

module assert_m
  contains
  
  subroutine assertion(cond)
    implicit none
    logical, intent(in) :: cond
    real, volatile :: r
    r = 1.0
    if (.not. cond) r = r / 0.0
  end subroutine assertion

end module

Beispiel:

#include "assert.h"

    use assert_m


    subroutine VBEST(H, RH, KZ, DFM, Q, V0, V)
      implicit none
      real, intent(in) :: H
      real, intent(in) :: RH
      integer, intent(in) :: KZ
      real, intent(in) :: DFM
      real, intent(in) :: Q

      assert(Q == Q)
      assert(H >= 0)
      assert(RH >= 0)
      assert(KZ >= 1)
      assert(DFM > 0)

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress