subroutine print_result(s,crossfailed,M,name) implicit none character (len=*)::name real cert integer M,crossfailed integer s character (len=11) :: c character (len=18) :: c2 cert=100.0*crossfailed/M ! print *, "cert", cert, "cross ", crossfailed ! test1=hundred*crossfailed c="% certainty" c2=" ... verified with " if(s.eq.1) then write (*,"(A, A, F7.2, A)") name, c2, cert, c else write (*,"(A,A)") name," ... FAILED" endif end subroutine do_test(test_func,cross_test_func,name,N,failed, x num_tests,crosschecked) implicit none integer succeed integer crossfail integer failed integer, external::test_func integer, external::cross_test_func character (len=*)::name integer fail integer N,i integer num_tests,crosschecked num_tests=num_tests+1 succeed=1 crossfail=0 fail=0 do i=1,N if(test_func().eq.0) then succeed=0 fail=fail+1 exit end if if(cross_test_func().eq.0) then ! print *, crossfail crossfail=crossfail+1.0 end if enddo if (fail .ne. 0) then failed=failed+1 else if(crossfail .ne. 0) then crosschecked=crosschecked+1 end if endif call print_result(succeed,crossfail,N,name) end