76 reference_field_float, new_field_float, &
77 reference_field_array3dflt_type, new_field_array3dflt_type, &
78 reference_field_array4dflt_type, new_field_array4dflt_type, &
79 reference_field_array5dflt_type, new_field_array5dflt_type, &
80 reference_field_array6dflt_type, new_field_array6dflt_type, &
81 reference_field_array7dflt_type, new_field_array7dflt_type, &
82 reference_field_matflt_type, new_field_matflt_type, &
83 reference_field_vecflt_type, new_field_vecflt_type) &
88 real(r8),
intent(in),
optional :: reference_field_float, new_field_float
89 real(r8),
dimension(:, :, :),
pointer,
optional :: reference_field_array3dflt_type, new_field_array3dflt_type
90 real(r8),
dimension(:, :, :, :),
pointer,
optional :: reference_field_array4dflt_type, new_field_array4dflt_type
91 real(r8),
dimension(:, :, :, :, :),
pointer,
optional :: reference_field_array5dflt_type, new_field_array5dflt_type
92 real(r8),
dimension(:, :, :, :, :, :),
pointer,
optional :: reference_field_array6dflt_type, new_field_array6dflt_type
93 real(r8),
dimension(:, :, :, :, :, :, :),
pointer,
optional :: reference_field_array7dflt_type, new_field_array7dflt_type
94 real(r8),
dimension(:, :),
pointer,
optional :: reference_field_matflt_type, new_field_matflt_type
95 real(r8),
dimension(:),
pointer,
optional :: reference_field_vecflt_type, new_field_vecflt_type
96 integer(itm_i4) :: diff_counter
97 real(r8) :: error_level
99 character(len = 132) :: f_identical
101 if (present(reference_field_vecflt_type))
then
102 f_identical =
are_identical(reference_field_vecflt_type, new_field_vecflt_type, diff_counter, error_level)
103 else if (present(reference_field_matflt_type))
then
104 f_identical =
are_identical(reference_field_matflt_type, new_field_matflt_type, diff_counter, error_level)
105 else if (present(reference_field_array3dflt_type))
then
106 f_identical =
are_identical(reference_field_array3dflt_type, new_field_array3dflt_type, diff_counter, error_level)
107 else if (present(reference_field_array4dflt_type))
then
108 f_identical =
are_identical(reference_field_array4dflt_type, new_field_array4dflt_type, diff_counter, error_level)
109 else if (present(reference_field_array5dflt_type))
then
110 f_identical =
are_identical(reference_field_array5dflt_type, new_field_array5dflt_type, diff_counter, error_level)
111 else if (present(reference_field_array6dflt_type))
then
112 f_identical =
are_identical(reference_field_array6dflt_type, new_field_array6dflt_type, diff_counter, error_level)
113 else if (present(reference_field_array7dflt_type))
then
114 f_identical =
are_identical(reference_field_array7dflt_type, new_field_array7dflt_type, diff_counter, error_level)
116 f_identical =
are_identical(reference_field_float, new_field_float, diff_counter, error_level)
122 diff_counter, error_level) result(f_identical)
126 real(r8),
intent(in) :: reference_field, new_field
127 integer(itm_i4) :: diff_counter
128 real(r8) :: error_level
130 character(len = 132) :: f_identical
132 if (reference_field /= new_field)
then
133 diff_counter = diff_counter + 1
134 write(f_identical,
'(a132)')
'differ'
136 write(f_identical,
'(a132)')
'are identical'
142 diff_counter, error_level) result(f_identical)
146 real(r8),
dimension(:),
pointer :: reference_field, new_field
147 integer(itm_i4) :: diff_counter
148 real(r8) :: error_level
150 character(len = 132) :: f_identical
152 if (
size(reference_field) /=
size(new_field))
then
153 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
155 if (any(reference_field /= new_field))
then
156 diff_counter = diff_counter + 1
157 write(f_identical,
'(a132)')
'differ'
159 write(f_identical,
'(a132)')
'are identical'
166 diff_counter, error_level) result(f_identical)
170 real(r8),
dimension(:, :),
pointer :: reference_field, new_field
171 integer(itm_i4) :: diff_counter
172 real(r8) :: error_level
174 character(len = 132) :: f_identical
176 if (
size(reference_field) /=
size(new_field))
then
177 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
179 if (any(reference_field /= new_field))
then
180 diff_counter = diff_counter + 1
181 write(f_identical,
'(a132)')
'differ'
183 write(f_identical,
'(a132)')
'are identical'
190 diff_counter, error_level) result(f_identical)
194 real(r8),
dimension(:, :, :),
pointer :: reference_field, new_field
195 integer(itm_i4) :: diff_counter
196 real(r8) :: error_level
198 character(len = 132) :: f_identical
200 if (
size(reference_field) /=
size(new_field))
then
201 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
203 if (any(reference_field /= new_field))
then
204 diff_counter = diff_counter + 1
205 write(f_identical,
'(a132)')
'differ'
207 write(f_identical,
'(a132)')
'are identical'
214 diff_counter, error_level) result(f_identical)
218 real(r8),
dimension(:, :, :, :),
pointer :: reference_field, new_field
219 integer(itm_i4) :: diff_counter
220 real(r8) :: error_level
222 character(len = 132) :: f_identical
224 if (
size(reference_field) /=
size(new_field))
then
225 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
227 if (any(reference_field /= new_field))
then
228 diff_counter = diff_counter + 1
229 write(f_identical,
'(a132)')
'differ'
231 write(f_identical,
'(a132)')
'are identical'
238 diff_counter, error_level) result(f_identical)
242 real(r8),
dimension(:, :, :, :, :),
pointer :: reference_field, new_field
243 integer(itm_i4) :: diff_counter
244 real(r8) :: error_level
246 character(len = 132) :: f_identical
248 if (
size(reference_field) /=
size(new_field))
then
249 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
251 if (any(reference_field /= new_field))
then
252 diff_counter = diff_counter + 1
253 write(f_identical,
'(a132)')
'differ'
255 write(f_identical,
'(a132)')
'are identical'
262 diff_counter, error_level) result(f_identical)
266 real(r8),
dimension(:, :, :, :, :, :),
pointer :: reference_field, new_field
267 integer(itm_i4) :: diff_counter
268 real(r8) :: error_level
270 character(len = 132) :: f_identical
272 if (
size(reference_field) /=
size(new_field))
then
273 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
275 if (any(reference_field /= new_field))
then
276 diff_counter = diff_counter + 1
277 write(f_identical,
'(a132)')
'differ'
279 write(f_identical,
'(a132)')
'are identical'
286 diff_counter, error_level) result(f_identical)
290 real(r8),
dimension(:, :, :, :, :, :, :),
pointer :: reference_field, new_field
291 integer(itm_i4) :: diff_counter
292 real(r8) :: error_level
294 character(len = 132) :: f_identical
296 if (
size(reference_field) /=
size(new_field))
then
297 write(f_identical,
'(a132)')
'ERROR: field sizes differ'
299 if (any(reference_field /= new_field))
then
300 diff_counter = diff_counter + 1
301 write(f_identical,
'(a132)')
'differ'
303 write(f_identical,
'(a132)')
'are identical'
310 reference_field_float, new_field_float, &
311 reference_field_array3dflt_type, new_field_array3dflt_type, &
312 reference_field_array4dflt_type, new_field_array4dflt_type, &
313 reference_field_array5dflt_type, new_field_array5dflt_type, &
314 reference_field_array6dflt_type, new_field_array6dflt_type, &
315 reference_field_array7dflt_type, new_field_array7dflt_type, &
316 reference_field_matflt_type, new_field_matflt_type, &
317 reference_field_vecflt_type, new_field_vecflt_type) &
322 real(r8),
intent(in),
optional :: reference_field_float, new_field_float
323 real(r8),
dimension(:, :, :),
pointer,
optional :: reference_field_array3dflt_type, new_field_array3dflt_type
324 real(r8),
dimension(:, :, :, :),
pointer,
optional :: reference_field_array4dflt_type, new_field_array4dflt_type
325 real(r8),
dimension(:, :, :, :, :),
pointer,
optional :: reference_field_array5dflt_type, new_field_array5dflt_type
326 real(r8),
dimension(:, :, :, :, :, :),
pointer,
optional :: reference_field_array6dflt_type, new_field_array6dflt_type
327 real(r8),
dimension(:, :, :, :, :, :, :),
pointer,
optional :: reference_field_array7dflt_type, new_field_array7dflt_type
328 real(r8),
dimension(:, :),
pointer,
optional :: reference_field_matflt_type, new_field_matflt_type
329 real(r8),
dimension(:),
pointer,
optional :: reference_field_vecflt_type, new_field_vecflt_type
330 integer(itm_i4) :: diff_counter
331 real(r8) :: error_level
333 character(len = 132) :: f_average
335 if (present(reference_field_vecflt_type))
then
336 f_average =
average_relative_error(reference_field_vecflt_type, new_field_vecflt_type, diff_counter, error_level)
337 else if (present(reference_field_matflt_type))
then
338 f_average =
average_relative_error(reference_field_matflt_type, new_field_matflt_type, diff_counter, error_level)
339 else if (present(reference_field_array3dflt_type))
then
340 f_average =
average_relative_error(reference_field_array3dflt_type, new_field_array3dflt_type, diff_counter, error_level)
341 else if (present(reference_field_array4dflt_type))
then
342 f_average =
average_relative_error(reference_field_array4dflt_type, new_field_array4dflt_type, diff_counter, error_level)
343 else if (present(reference_field_array5dflt_type))
then
344 f_average =
average_relative_error(reference_field_array5dflt_type, new_field_array5dflt_type, diff_counter, error_level)
345 else if (present(reference_field_array6dflt_type))
then
346 f_average =
average_relative_error(reference_field_array6dflt_type, new_field_array6dflt_type, diff_counter, error_level)
347 else if (present(reference_field_array7dflt_type))
then
348 f_average =
average_relative_error(reference_field_array7dflt_type, new_field_array7dflt_type, diff_counter, error_level)
356 diff_counter, error_level) result(f_average)
360 real(r8),
parameter :: eps = 1.e-8
361 real(r8),
intent(in) :: reference_field, new_field
362 integer(itm_i4) :: diff_counter
363 real(r8) :: error_level
364 real(r8) :: av_rel_error
366 character(len = 132) :: f_average
368 av_rel_error = abs(new_field - reference_field) / (abs(new_field &
369 + reference_field) / 2._r8 + abs(eps))
371 if (reference_field /= new_field)
then
372 diff_counter = diff_counter + 1
375 write(f_average, 1) av_rel_error
377 error_level = (error_level + av_rel_error) / 2._r8
379 1
format(
' ---> average relative error: ', e9.2)
384 diff_counter, error_level) result(f_average)
388 real(r8),
parameter :: eps = 1.e-8
389 real(r8),
dimension(:),
pointer :: reference_field, new_field
390 integer(itm_i4) :: diff_counter
391 real(r8) :: error_level
392 real(r8) :: av_rel_error
393 integer(itm_i4) :: i1
395 character(len = 132) :: f_average
397 if (
size(reference_field) /=
size(new_field))
then
399 write(f_average,
'(a132)')
'ERROR: field sizes differ'
403 if (any(reference_field /= new_field))
then
404 diff_counter = diff_counter + 1
409 do i1 = 1,
size(reference_field, 1)
410 av_rel_error = av_rel_error + abs(new_field(i1) - reference_field(i1)) &
411 / (abs(new_field(i1) + reference_field(i1)) / 2._r8 + abs(eps))
414 av_rel_error = av_rel_error /
size(reference_field, 1)
416 write(f_average, 1) av_rel_error
418 error_level = (error_level + av_rel_error) / 2._r8
422 1
format(
' ---> average relative error: ', e9.2)
427 diff_counter, error_level) result(f_average)
431 real(r8),
parameter :: eps = 1.e-8
432 real(r8),
dimension(:, :),
pointer :: reference_field, new_field
433 integer(itm_i4) :: diff_counter
434 real(r8) :: error_level
435 real(r8) :: av_rel_error
436 integer(itm_i4) :: i1, i2
438 character(len = 132) :: f_average
440 if (
size(reference_field) /=
size(new_field))
then
442 write(f_average,
'(a132)')
'ERROR: field sizes differ'
446 if (any(reference_field /= new_field))
then
447 diff_counter = diff_counter + 1
452 do i1 = 1,
size(reference_field, 1)
453 do i2 = 1,
size(reference_field, 2)
454 av_rel_error = av_rel_error + abs(new_field(i1, i2) - reference_field(i1, i2)) &
455 / (abs(new_field(i1, i2) + reference_field(i1, i2)) / 2._r8 + abs(eps))
459 av_rel_error = av_rel_error / (
size(reference_field, 1) &
460 *
size(reference_field, 2))
462 write(f_average, 1) av_rel_error
464 error_level = (error_level + av_rel_error) / 2._r8
468 1
format(
' ---> average relative error: ', e9.2)
473 diff_counter, error_level) result(f_average)
477 real(r8),
parameter :: eps = 1.e-8
478 real(r8),
dimension(:, :, :),
pointer :: reference_field, new_field
479 integer(itm_i4) :: diff_counter
480 real(r8) :: error_level
481 real(r8) :: av_rel_error
482 integer(itm_i4) :: i1, i2, i3
484 character(len = 132) :: f_average
486 if (
size(reference_field) /=
size(new_field))
then
488 write(f_average,
'(a132)')
'ERROR: field sizes differ'
492 if (any(reference_field /= new_field))
then
493 diff_counter = diff_counter + 1
498 do i1 = 1,
size(reference_field, 1)
499 do i2 = 1,
size(reference_field, 2)
500 do i3 = 1,
size(reference_field, 3)
501 av_rel_error = av_rel_error + abs(new_field(i1, i2, i3) - reference_field(i1, i2, i3)) &
502 / (abs(new_field(i1, i2, i3) + reference_field(i1, i2, i3)) / 2._r8 + abs(eps))
507 av_rel_error = av_rel_error / (
size(reference_field, 1) &
508 *
size(reference_field, 2) *
size(reference_field, 3))
510 write(f_average, 1) av_rel_error
512 error_level = (error_level + av_rel_error) / 2._r8
516 1
format(
' ---> average relative error: ', e9.2)
521 diff_counter, error_level) result(f_average)
525 real(r8),
parameter :: eps = 1.e-8
526 real(r8),
dimension(:, :, :, :),
pointer :: reference_field, new_field
527 integer(itm_i4) :: diff_counter
528 real(r8) :: error_level
529 real(r8) :: av_rel_error
530 integer(itm_i4) :: i1, i2, i3, i4
532 character(len = 132) :: f_average
534 if (
size(reference_field) /=
size(new_field))
then
536 write(f_average,
'(a132)')
'ERROR: field sizes differ'
540 if (any(reference_field /= new_field))
then
541 diff_counter = diff_counter + 1
546 do i1 = 1,
size(reference_field, 1)
547 do i2 = 1,
size(reference_field, 2)
548 do i3 = 1,
size(reference_field, 3)
549 do i4 = 1,
size(reference_field, 4)
550 av_rel_error = av_rel_error + abs(new_field(i1, i2, i3, i4) - reference_field(i1, i2, i3, i4)) &
551 / (abs(new_field(i1, i2, i3, i4) + reference_field(i1, i2, i3, i4)) / 2._r8 + abs(eps))
557 av_rel_error = av_rel_error / (
size(reference_field, 1) &
558 *
size(reference_field, 2) *
size(reference_field, 3) *
size(reference_field, 4))
560 write(f_average, 1) av_rel_error
562 error_level = (error_level + av_rel_error) / 2._r8
566 1
format(
' ---> average relative error: ', e9.2)
571 diff_counter, error_level) result(f_average)
575 real(r8),
parameter :: eps = 1.e-8
576 real(r8),
dimension(:, :, :, :, :),
pointer :: reference_field, new_field
577 integer(itm_i4) :: diff_counter
578 real(r8) :: error_level
579 real(r8) :: av_rel_error
580 integer(itm_i4) :: i1, i2, i3, i4, i5
582 character(len = 132) :: f_average
584 if (
size(reference_field) /=
size(new_field))
then
586 write(f_average,
'(a132)')
'ERROR: field sizes differ'
590 if (any(reference_field /= new_field))
then
591 diff_counter = diff_counter + 1
596 do i1 = 1,
size(reference_field, 1)
597 do i2 = 1,
size(reference_field, 2)
598 do i3 = 1,
size(reference_field, 3)
599 do i4 = 1,
size(reference_field, 4)
600 do i5 = 1,
size(reference_field, 5)
601 av_rel_error = av_rel_error + abs(new_field(i1, i2, i3, i4, i5) - reference_field(i1, i2, i3, i4, i5)) &
602 / (abs(new_field(i1, i2, i3, i4, i5) + reference_field(i1, i2, i3, i4, i5)) / 2._r8 + abs(eps))
609 av_rel_error = av_rel_error / (
size(reference_field, 1) &
610 *
size(reference_field, 2) *
size(reference_field, 3) *
size(reference_field, 4) *
size(reference_field, 5))
612 write(f_average, 1) av_rel_error
614 error_level = (error_level + av_rel_error) / 2._r8
618 1
format(
' ---> average relative error: ', e9.2)
623 diff_counter, error_level) result(f_average)
627 real(r8),
parameter :: eps = 1.e-8
628 real(r8),
dimension(:, :, :, :, :, :),
pointer :: reference_field, new_field
629 integer(itm_i4) :: diff_counter
630 real(r8) :: error_level
631 real(r8) :: av_rel_error
632 integer(itm_i4) :: i1, i2, i3, i4, i5, i6
634 character(len = 132) :: f_average
636 if (
size(reference_field) /=
size(new_field))
then
638 write(f_average,
'(a132)')
'ERROR: field sizes differ'
642 if (any(reference_field /= new_field))
then
643 diff_counter = diff_counter + 1
648 do i1 = 1,
size(reference_field, 1)
649 do i2 = 1,
size(reference_field, 2)
650 do i3 = 1,
size(reference_field, 3)
651 do i4 = 1,
size(reference_field, 4)
652 do i5 = 1,
size(reference_field, 5)
653 do i6 = 1,
size(reference_field, 6)
654 av_rel_error = av_rel_error + abs(new_field(i1, i2, i3, i4, i5, i6) &
655 - reference_field(i1, i2, i3, i4, i5, i6)) &
656 / (abs(new_field(i1, i2, i3, i4, i5, i6) + reference_field(i1, i2, i3, i4, i5, i6)) &
665 av_rel_error = av_rel_error / (
size(reference_field, 1) &
666 *
size(reference_field, 2) *
size(reference_field, 3) *
size(reference_field, 4) &
667 *
size(reference_field, 5) *
size(reference_field, 6))
669 write(f_average, 1) av_rel_error
671 error_level = (error_level + av_rel_error) / 2._r8
675 1
format(
' ---> average relative error: ', e9.2)
680 diff_counter, error_level) result(f_average)
684 real(r8),
parameter :: eps = 1.e-8
685 real(r8),
dimension(:, :, :, :, :, :, :),
pointer :: reference_field, new_field
686 integer(itm_i4) :: diff_counter
687 real(r8) :: error_level
688 real(r8) :: av_rel_error
689 integer(itm_i4) :: i1, i2, i3, i4, i5, i6, i7
691 character(len = 132) :: f_average
693 if (
size(reference_field) /=
size(new_field))
then
695 write(f_average,
'(a132)')
'ERROR: field sizes differ'
699 if (any(reference_field /= new_field))
then
700 diff_counter = diff_counter + 1
705 do i1 = 1,
size(reference_field, 1)
706 do i2 = 1,
size(reference_field, 2)
707 do i3 = 1,
size(reference_field, 3)
708 do i4 = 1,
size(reference_field, 4)
709 do i5 = 1,
size(reference_field, 5)
710 do i6 = 1,
size(reference_field, 6)
711 do i7 = 1,
size(reference_field, 7)
712 av_rel_error = av_rel_error + abs(new_field(i1, i2, i3, i4, i5, i6, i7) &
713 - reference_field(i1, i2, i3, i4, i5, i6, i7)) &
714 / (abs(new_field(i1, i2, i3, i4, i5, i6, i7) + reference_field(i1, i2, i3, i4, i5, i6, i7)) &
724 av_rel_error = av_rel_error / (
size(reference_field, 1) &
725 *
size(reference_field, 2) *
size(reference_field, 3) *
size(reference_field, 4) &
726 *
size(reference_field, 5) *
size(reference_field, 6) *
size(reference_field, 7))
728 write(f_average, 1) av_rel_error
730 error_level = (error_level + av_rel_error) / 2._r8
734 1
format(
' ---> average relative error: ', e9.2)
739 reference_field_float, new_field_float, &
740 reference_field_array3dflt_type, new_field_array3dflt_type, &
741 reference_field_array4dflt_type, new_field_array4dflt_type, &
742 reference_field_array5dflt_type, new_field_array5dflt_type, &
743 reference_field_array6dflt_type, new_field_array6dflt_type, &
744 reference_field_array7dflt_type, new_field_array7dflt_type, &
745 reference_field_matflt_type, new_field_matflt_type, &
746 reference_field_vecflt_type, new_field_vecflt_type) &
751 real(r8),
intent(in),
optional :: reference_field_float, new_field_float
752 real(r8),
dimension(:, :, :),
pointer,
optional :: reference_field_array3dflt_type, new_field_array3dflt_type
753 real(r8),
dimension(:, :, :, :),
pointer,
optional :: reference_field_array4dflt_type, new_field_array4dflt_type
754 real(r8),
dimension(:, :, :, :, :),
pointer,
optional :: reference_field_array5dflt_type, new_field_array5dflt_type
755 real(r8),
dimension(:, :, :, :, :, :),
pointer,
optional :: reference_field_array6dflt_type, new_field_array6dflt_type
756 real(r8),
dimension(:, :, :, :, :, :, :),
pointer,
optional :: reference_field_array7dflt_type, new_field_array7dflt_type
757 real(r8),
dimension(:, :),
pointer,
optional :: reference_field_matflt_type, new_field_matflt_type
758 real(r8),
dimension(:),
pointer,
optional :: reference_field_vecflt_type, new_field_vecflt_type
759 integer(itm_i4) :: diff_counter
760 real(r8) :: error_level
762 character(len = 132) :: f_maximum
764 if (present(reference_field_vecflt_type))
then
765 f_maximum =
maximum_relative_error(reference_field_vecflt_type, new_field_vecflt_type, diff_counter, error_level)
766 else if (present(reference_field_matflt_type))
then
767 f_maximum =
maximum_relative_error(reference_field_matflt_type, new_field_matflt_type, diff_counter, error_level)
768 else if (present(reference_field_array3dflt_type))
then
769 f_maximum =
maximum_relative_error(reference_field_array3dflt_type, new_field_array3dflt_type, diff_counter, error_level)
770 else if (present(reference_field_array4dflt_type))
then
771 f_maximum =
maximum_relative_error(reference_field_array4dflt_type, new_field_array4dflt_type, diff_counter, error_level)
772 else if (present(reference_field_array5dflt_type))
then
773 f_maximum =
maximum_relative_error(reference_field_array5dflt_type, new_field_array5dflt_type, diff_counter, error_level)
774 else if (present(reference_field_array6dflt_type))
then
775 f_maximum =
maximum_relative_error(reference_field_array6dflt_type, new_field_array6dflt_type, diff_counter, error_level)
776 else if (present(reference_field_array7dflt_type))
then
777 f_maximum =
maximum_relative_error(reference_field_array7dflt_type, new_field_array7dflt_type, diff_counter, error_level)
785 diff_counter, error_level) result(f_maximum)
789 real(r8),
parameter :: eps = 1.e-8
790 real(r8),
intent(in) :: reference_field, new_field
791 integer(itm_i4) :: diff_counter
792 real(r8) :: error_level
793 real(r8) :: max_rel_error, value
795 character(len = 132) :: f_maximum
797 max_rel_error = abs(new_field - reference_field) / (abs(new_field &
798 + reference_field) / 2._r8 + abs(eps))
801 if (reference_field /= new_field)
then
802 diff_counter = diff_counter + 1
805 write(f_maximum, 1) max_rel_error, value
807 error_level = max(error_level, max_rel_error)
809 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
814 diff_counter, error_level) result(f_maximum)
818 real(r8),
parameter :: eps = 1.e-8
819 real(r8),
dimension(:),
pointer :: reference_field, new_field
820 integer(itm_i4) :: diff_counter
821 real(r8) :: error_level
822 real(r8) :: max_rel_error, rel_error, value
823 integer(itm_i4) :: i1
825 character(len = 132) :: f_maximum
827 if (
size(reference_field) /=
size(new_field))
then
829 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
833 if (any(reference_field /= new_field))
then
834 diff_counter = diff_counter + 1
837 max_rel_error = 0._r8
840 do i1 = 1,
size(reference_field, 1)
841 rel_error = abs(new_field(i1) - reference_field(i1)) &
842 / (abs(new_field(i1) + reference_field(i1)) / 2._r8 + abs(eps))
843 if (rel_error > max_rel_error)
then
844 max_rel_error = rel_error
845 value = new_field(i1)
849 write(f_maximum, 1) max_rel_error, value
851 error_level = max(error_level, max_rel_error)
855 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
860 diff_counter, error_level) result(f_maximum)
864 real(r8),
parameter :: eps = 1.e-8
865 real(r8),
dimension(:, :),
pointer :: reference_field, new_field
866 integer(itm_i4) :: diff_counter
867 real(r8) :: error_level
868 real(r8) :: max_rel_error, rel_error, value
869 integer(itm_i4) :: i1, i2
871 character(len = 132) :: f_maximum
873 if (
size(reference_field) /=
size(new_field))
then
875 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
879 if (any(reference_field /= new_field))
then
880 diff_counter = diff_counter + 1
883 max_rel_error = 0._r8
886 do i1 = 1,
size(reference_field, 1)
887 do i2 = 1,
size(reference_field, 2)
888 rel_error = abs(new_field(i1, i2) - reference_field(i1, i2)) &
889 / (abs(new_field(i1, i2) + reference_field(i1, i2)) / 2._r8 + abs(eps))
890 if (rel_error > max_rel_error)
then
891 max_rel_error = rel_error
892 value = new_field(i1, i2)
897 write(f_maximum, 1) max_rel_error, value
899 error_level = max(error_level, max_rel_error)
903 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
908 diff_counter, error_level) result(f_maximum)
912 real(r8),
parameter :: eps = 1.e-8
913 real(r8),
dimension(:, :, :),
pointer :: reference_field, new_field
914 integer(itm_i4) :: diff_counter
915 real(r8) :: error_level
916 real(r8) :: max_rel_error, rel_error, value
917 integer(itm_i4) :: i1, i2, i3
919 character(len = 132) :: f_maximum
921 if (
size(reference_field) /=
size(new_field))
then
923 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
927 if (any(reference_field /= new_field))
then
928 diff_counter = diff_counter + 1
931 max_rel_error = 0._r8
934 do i1 = 1,
size(reference_field, 1)
935 do i2 = 1,
size(reference_field, 2)
936 do i3 = 1,
size(reference_field, 3)
937 rel_error = abs(new_field(i1, i2, i3) - reference_field(i1, i2, i3)) &
938 / (abs(new_field(i1, i2, i3) + reference_field(i1, i2, i3)) / 2._r8 + abs(eps))
939 if (rel_error > max_rel_error)
then
940 max_rel_error = rel_error
941 value = new_field(i1, i2, i3)
947 write(f_maximum, 1) max_rel_error, value
949 error_level = max(error_level, max_rel_error)
953 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
958 diff_counter, error_level) result(f_maximum)
962 real(r8),
parameter :: eps = 1.e-8
963 real(r8),
dimension(:, :, :, :),
pointer :: reference_field, new_field
964 integer(itm_i4) :: diff_counter
965 real(r8) :: error_level
966 real(r8) :: max_rel_error, rel_error, value
967 integer(itm_i4) :: i1, i2, i3, i4
969 character(len = 132) :: f_maximum
971 if (
size(reference_field) /=
size(new_field))
then
973 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
977 if (any(reference_field /= new_field))
then
978 diff_counter = diff_counter + 1
981 max_rel_error = 0._r8
984 do i1 = 1,
size(reference_field, 1)
985 do i2 = 1,
size(reference_field, 2)
986 do i3 = 1,
size(reference_field, 3)
987 do i4 = 1,
size(reference_field, 4)
988 rel_error = abs(new_field(i1, i2, i3, i4) - reference_field(i1, i2, i3, i4)) &
989 / (abs(new_field(i1, i2, i3, i4) + reference_field(i1, i2, i3, i4)) / 2._r8 + abs(eps))
990 if (rel_error > max_rel_error)
then
991 max_rel_error = rel_error
992 value = new_field(i1, i2, i3, i4)
999 write(f_maximum, 1) max_rel_error, value
1001 error_level = max(error_level, max_rel_error)
1005 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
1010 diff_counter, error_level) result(f_maximum)
1014 real(r8),
parameter :: eps = 1.e-8
1015 real(r8),
dimension(:, :, :, :, :),
pointer :: reference_field, new_field
1016 integer(itm_i4) :: diff_counter
1017 real(r8) :: error_level
1018 real(r8) :: max_rel_error, rel_error, value
1019 integer(itm_i4) :: i1, i2, i3, i4, i5
1021 character(len = 132) :: f_maximum
1023 if (
size(reference_field) /=
size(new_field))
then
1025 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
1029 if (any(reference_field /= new_field))
then
1030 diff_counter = diff_counter + 1
1033 max_rel_error = 0._r8
1036 do i1 = 1,
size(reference_field, 1)
1037 do i2 = 1,
size(reference_field, 2)
1038 do i3 = 1,
size(reference_field, 3)
1039 do i4 = 1,
size(reference_field, 4)
1040 do i5 = 1,
size(reference_field, 5)
1041 rel_error = abs(new_field(i1, i2, i3, i4, i5) - reference_field(i1, i2, i3, i4, i5)) &
1042 / (abs(new_field(i1, i2, i3, i4, i5) + reference_field(i1, i2, i3, i4, i5)) / 2._r8 + abs(eps))
1043 if (rel_error > max_rel_error)
then
1044 max_rel_error = rel_error
1045 value = new_field(i1, i2, i3, i4, i5)
1053 write(f_maximum, 1) max_rel_error, value
1055 error_level = max(error_level, max_rel_error)
1059 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
1064 diff_counter, error_level) result(f_maximum)
1068 real(r8),
parameter :: eps = 1.e-8
1069 real(r8),
dimension(:, :, :, :, :, :),
pointer :: reference_field, new_field
1070 integer(itm_i4) :: diff_counter
1071 real(r8) :: error_level
1072 real(r8) :: max_rel_error, rel_error, value
1073 integer(itm_i4) :: i1, i2, i3, i4, i5, i6
1075 character(len = 132) :: f_maximum
1077 if (
size(reference_field) /=
size(new_field))
then
1079 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
1083 if (any(reference_field /= new_field))
then
1084 diff_counter = diff_counter + 1
1087 max_rel_error = 0._r8
1090 do i1 = 1,
size(reference_field, 1)
1091 do i2 = 1,
size(reference_field, 2)
1092 do i3 = 1,
size(reference_field, 3)
1093 do i4 = 1,
size(reference_field, 4)
1094 do i5 = 1,
size(reference_field, 5)
1095 do i6 = 1,
size(reference_field, 6)
1096 rel_error = abs(new_field(i1, i2, i3, i4, i5, i6) - reference_field(i1, i2, i3, i4, i5, i6)) &
1097 / (abs(new_field(i1, i2, i3, i4, i5, i6) + reference_field(i1, i2, i3, i4, i5, i6)) / 2._r8 + abs(eps))
1098 if (rel_error > max_rel_error)
then
1099 max_rel_error = rel_error
1100 value = new_field(i1, i2, i3, i4, i5, i6)
1109 write(f_maximum, 1) max_rel_error, value
1111 error_level = max(error_level, max_rel_error)
1115 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
1120 diff_counter, error_level) result(f_maximum)
1124 real(r8),
parameter :: eps = 1.e-8
1125 real(r8),
dimension(:, :, :, :, :, :, :),
pointer :: reference_field, new_field
1126 integer(itm_i4) :: diff_counter
1127 real(r8) :: error_level
1128 real(r8) :: max_rel_error, rel_error, value
1129 integer(itm_i4) :: i1, i2, i3, i4, i5, i6, i7
1131 character(len = 132) :: f_maximum
1133 if (
size(reference_field) /=
size(new_field))
then
1135 write(f_maximum,
'(a132)')
'ERROR: field sizes differ'
1139 if (any(reference_field /= new_field))
then
1140 diff_counter = diff_counter + 1
1143 max_rel_error = 0._r8
1146 do i1 = 1,
size(reference_field, 1)
1147 do i2 = 1,
size(reference_field, 2)
1148 do i3 = 1,
size(reference_field, 3)
1149 do i4 = 1,
size(reference_field, 4)
1150 do i5 = 1,
size(reference_field, 5)
1151 do i6 = 1,
size(reference_field, 6)
1152 do i7 = 1,
size(reference_field, 7)
1153 rel_error = abs(new_field(i1, i2, i3, i4, i5, i6, i7) - reference_field(i1, i2, i3, i4, i5, i6, i7)) &
1154 / (abs(new_field(i1, i2, i3, i4, i5, i6, i7) + reference_field(i1, i2, i3, i4, i5, i6, i7)) / 2._r8 + abs(eps))
1155 if (rel_error > max_rel_error)
then
1156 max_rel_error = rel_error
1157 value = new_field(i1, i2, i3, i4, i5, i6, i7)
1167 write(f_maximum, 1) max_rel_error, value
1169 error_level = max(error_level, max_rel_error)
1173 1
format(
' ---> maximum relative error: ', e9.2,
' --- value at maximum relative error: ', e9.2)
1178 reference_field_float, new_field_float, &
1179 reference_field_array3dflt_type, new_field_array3dflt_type, &
1180 reference_field_array4dflt_type, new_field_array4dflt_type, &
1181 reference_field_array5dflt_type, new_field_array5dflt_type, &
1182 reference_field_array6dflt_type, new_field_array6dflt_type, &
1183 reference_field_array7dflt_type, new_field_array7dflt_type, &
1184 reference_field_matflt_type, new_field_matflt_type, &
1185 reference_field_vecflt_type, new_field_vecflt_type) &
1190 real(r8),
intent(in),
optional :: reference_field_float, new_field_float
1191 real(r8),
dimension(:, :, :),
pointer,
optional :: reference_field_array3dflt_type, new_field_array3dflt_type
1192 real(r8),
dimension(:, :, :, :),
pointer,
optional :: reference_field_array4dflt_type, new_field_array4dflt_type
1193 real(r8),
dimension(:, :, :, :, :),
pointer,
optional :: reference_field_array5dflt_type, new_field_array5dflt_type
1194 real(r8),
dimension(:, :, :, :, :, :),
pointer,
optional :: reference_field_array6dflt_type, new_field_array6dflt_type
1195 real(r8),
dimension(:, :, :, :, :, :, :),
pointer,
optional :: reference_field_array7dflt_type, new_field_array7dflt_type
1196 real(r8),
dimension(:, :),
pointer,
optional :: reference_field_matflt_type, new_field_matflt_type
1197 real(r8),
dimension(:),
pointer,
optional :: reference_field_vecflt_type, new_field_vecflt_type
1198 integer(itm_i4) :: diff_counter
1199 real(r8) :: error_level
1201 character(len = 132) :: f_chi2
1203 if (present(reference_field_vecflt_type))
then
1204 f_chi2 =
chi_square(reference_field_vecflt_type, new_field_vecflt_type, diff_counter, error_level)
1205 else if (present(reference_field_matflt_type))
then
1206 f_chi2 =
chi_square(reference_field_matflt_type, new_field_matflt_type, diff_counter, error_level)
1207 else if (present(reference_field_array3dflt_type))
then
1208 f_chi2 =
chi_square(reference_field_array3dflt_type, new_field_array3dflt_type, diff_counter, error_level)
1209 else if (present(reference_field_array4dflt_type))
then
1210 f_chi2 =
chi_square(reference_field_array4dflt_type, new_field_array4dflt_type, diff_counter, error_level)
1211 else if (present(reference_field_array5dflt_type))
then
1212 f_chi2 =
chi_square(reference_field_array5dflt_type, new_field_array5dflt_type, diff_counter, error_level)
1213 else if (present(reference_field_array6dflt_type))
then
1214 f_chi2 =
chi_square(reference_field_array6dflt_type, new_field_array6dflt_type, diff_counter, error_level)
1215 else if (present(reference_field_array7dflt_type))
then
1216 f_chi2 =
chi_square(reference_field_array7dflt_type, new_field_array7dflt_type, diff_counter, error_level)
1218 f_chi2 =
chi_square(reference_field_float, new_field_float, diff_counter, error_level)
1224 diff_counter, error_level) result(f_chi2)
1228 real(r8),
intent(in) :: reference_field, new_field
1229 integer(itm_i4) :: diff_counter
1230 real(r8) :: error_level
1233 character(len = 132) :: f_chi2
1235 chi2 = (new_field - reference_field)**2
1237 if (reference_field /= new_field)
then
1238 diff_counter = diff_counter + 1
1241 write(f_chi2, 1) chi2
1243 error_level = error_level + chi2
1245 1
format(
' ---> chi^2 : ', e9.2)
1250 diff_counter, error_level) result(f_chi2)
1254 real(r8),
dimension(:),
pointer :: reference_field, new_field
1255 integer(itm_i4) :: diff_counter
1256 real(r8) :: error_level
1258 integer(itm_i4) :: i1
1260 character(len = 132) :: f_chi2
1262 if (
size(reference_field) /=
size(new_field))
then
1264 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1268 if (any(reference_field /= new_field))
then
1269 diff_counter = diff_counter + 1
1274 do i1 = 1,
size(reference_field, 1)
1275 chi2 = chi2 + (new_field(i1) - reference_field(i1))**2
1278 write(f_chi2, 1) chi2
1280 error_level = error_level + chi2
1284 1
format(
' ---> chi^2 : ', e9.2)
1289 diff_counter, error_level) result(f_chi2)
1293 real(r8),
dimension(:, :),
pointer :: reference_field, new_field
1294 integer(itm_i4) :: diff_counter
1295 real(r8) :: error_level
1297 integer(itm_i4) :: i1, i2
1299 character(len = 132) :: f_chi2
1301 if (
size(reference_field) /=
size(new_field))
then
1303 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1307 if (any(reference_field /= new_field))
then
1308 diff_counter = diff_counter + 1
1313 do i1 = 1,
size(reference_field, 1)
1314 do i2 = 1,
size(reference_field, 2)
1315 chi2 = chi2 + (new_field(i1, i2) - reference_field(i1, i2))**2
1319 write(f_chi2, 1) chi2
1321 error_level = error_level + chi2
1325 1
format(
' ---> chi^2 : ', e9.2)
1330 diff_counter, error_level) result(f_chi2)
1334 real(r8),
dimension(:, :, :),
pointer :: reference_field, new_field
1335 integer(itm_i4) :: diff_counter
1336 real(r8) :: error_level
1338 integer(itm_i4) :: i1, i2, i3
1340 character(len = 132) :: f_chi2
1342 if (
size(reference_field) /=
size(new_field))
then
1344 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1348 if (any(reference_field /= new_field))
then
1349 diff_counter = diff_counter + 1
1354 do i1 = 1,
size(reference_field, 1)
1355 do i2 = 1,
size(reference_field, 2)
1356 do i3 = 1,
size(reference_field, 3)
1357 chi2 = chi2 + (new_field(i1, i2, i3) - reference_field(i1, i2, i3))**2
1362 write(f_chi2, 1) chi2
1364 error_level = error_level + chi2
1368 1
format(
' ---> chi^2 : ', e9.2)
1373 diff_counter, error_level) result(f_chi2)
1377 real(r8),
dimension(:, :, :, :),
pointer :: reference_field, new_field
1378 integer(itm_i4) :: diff_counter
1379 real(r8) :: error_level
1381 integer(itm_i4) :: i1, i2, i3, i4
1383 character(len = 132) :: f_chi2
1385 if (
size(reference_field) /=
size(new_field))
then
1387 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1391 if (any(reference_field /= new_field))
then
1392 diff_counter = diff_counter + 1
1397 do i1 = 1,
size(reference_field, 1)
1398 do i2 = 1,
size(reference_field, 2)
1399 do i3 = 1,
size(reference_field, 3)
1400 do i4 = 1,
size(reference_field, 4)
1401 chi2 = chi2 + (new_field(i1, i2, i3, i4) - reference_field(i1, i2, i3, i4))**2
1407 write(f_chi2, 1) chi2
1409 error_level = error_level + chi2
1413 1
format(
' ---> chi^2 : ', e9.2)
1418 diff_counter, error_level) result(f_chi2)
1422 real(r8),
dimension(:, :, :, :, :),
pointer :: reference_field, new_field
1423 integer(itm_i4) :: diff_counter
1424 real(r8) :: error_level
1426 integer(itm_i4) :: i1, i2, i3, i4, i5
1428 character(len = 132) :: f_chi2
1430 if (
size(reference_field) /=
size(new_field))
then
1432 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1436 if (any(reference_field /= new_field))
then
1437 diff_counter = diff_counter + 1
1442 do i1 = 1,
size(reference_field, 1)
1443 do i2 = 1,
size(reference_field, 2)
1444 do i3 = 1,
size(reference_field, 3)
1445 do i4 = 1,
size(reference_field, 4)
1446 do i5 = 1,
size(reference_field, 5)
1447 chi2 = chi2 + (new_field(i1, i2, i3, i4, i5) - reference_field(i1, i2, i3, i4, i5))**2
1454 write(f_chi2, 1) chi2
1456 error_level = error_level + chi2
1460 1
format(
' ---> chi^2 : ', e9.2)
1465 diff_counter, error_level) result(f_chi2)
1469 real(r8),
dimension(:, :, :, :, :, :),
pointer :: reference_field, new_field
1470 integer(itm_i4) :: diff_counter
1471 real(r8) :: error_level
1473 integer(itm_i4) :: i1, i2, i3, i4, i5, i6
1475 character(len = 132) :: f_chi2
1477 if (
size(reference_field) /=
size(new_field))
then
1479 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1483 if (any(reference_field /= new_field))
then
1484 diff_counter = diff_counter + 1
1489 do i1 = 1,
size(reference_field, 1)
1490 do i2 = 1,
size(reference_field, 2)
1491 do i3 = 1,
size(reference_field, 3)
1492 do i4 = 1,
size(reference_field, 4)
1493 do i5 = 1,
size(reference_field, 5)
1494 do i6 = 1,
size(reference_field, 6)
1495 chi2 = chi2 + (new_field(i1, i2, i3, i4, i5, i6) - reference_field(i1, i2, i3, i4, i5, i6))**2
1503 write(f_chi2, 1) chi2
1505 error_level = error_level + chi2
1509 1
format(
' ---> chi^2 : ', e9.2)
1514 diff_counter, error_level) result(f_chi2)
1518 real(r8),
dimension(:, :, :, :, :, :, :),
pointer :: reference_field, new_field
1519 integer(itm_i4) :: diff_counter
1520 real(r8) :: error_level
1522 integer(itm_i4) :: i1, i2, i3, i4, i5, i6, i7
1524 character(len = 132) :: f_chi2
1526 if (
size(reference_field) /=
size(new_field))
then
1528 write(f_chi2,
'(a132)')
'ERROR: field sizes differ'
1532 if (any(reference_field /= new_field))
then
1533 diff_counter = diff_counter + 1
1538 do i1 = 1,
size(reference_field, 1)
1539 do i2 = 1,
size(reference_field, 2)
1540 do i3 = 1,
size(reference_field, 3)
1541 do i4 = 1,
size(reference_field, 4)
1542 do i5 = 1,
size(reference_field, 5)
1543 do i6 = 1,
size(reference_field, 6)
1544 do i7 = 1,
size(reference_field, 7)
1545 chi2 = chi2 + (new_field(i1, i2, i3, i4, i5, i6, i7) - reference_field(i1, i2, i3, i4, i5, i6, i7))**2
1554 write(f_chi2, 1) chi2
1556 error_level = error_level + chi2
1560 1
format(
' ---> chi^2 : ', e9.2)
character(len=132) function maximum_relative_error_float(diff_counter, error_level, reference_field_float, new_field_float, reference_field_array3dflt_type, new_field_array3dflt_type, reference_field_array4dflt_type, new_field_array4dflt_type, reference_field_array5dflt_type, new_field_array5dflt_type, reference_field_array6dflt_type, new_field_array6dflt_type, reference_field_array7dflt_type, new_field_array7dflt_type, reference_field_matflt_type, new_field_matflt_type, reference_field_vecflt_type, new_field_vecflt_type)
character(len=132) function average_relative_error_array4dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_array3dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_array5dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_array3dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_float(diff_counter, error_level, reference_field_float, new_field_float, reference_field_array3dflt_type, new_field_array3dflt_type, reference_field_array4dflt_type, new_field_array4dflt_type, reference_field_array5dflt_type, new_field_array5dflt_type, reference_field_array6dflt_type, new_field_array6dflt_type, reference_field_array7dflt_type, new_field_array7dflt_type, reference_field_matflt_type, new_field_matflt_type, reference_field_vecflt_type, new_field_vecflt_type)
character(len=132) function are_identical_array7dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_vecflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_array6dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_matflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_matflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_float(diff_counter, error_level, reference_field_float, new_field_float, reference_field_array3dflt_type, new_field_array3dflt_type, reference_field_array4dflt_type, new_field_array4dflt_type, reference_field_array5dflt_type, new_field_array5dflt_type, reference_field_array6dflt_type, new_field_array6dflt_type, reference_field_array7dflt_type, new_field_array7dflt_type, reference_field_matflt_type, new_field_matflt_type, reference_field_vecflt_type, new_field_vecflt_type)
character(len=132) function average_relative_error_array7dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_array7dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_array3dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_array6dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_array4dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_float_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_vecflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_vecflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_float_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_array7dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_matflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_float_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_array4dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_array5dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_array6dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function average_relative_error_float(diff_counter, error_level, reference_field_float, new_field_float, reference_field_array3dflt_type, new_field_array3dflt_type, reference_field_array4dflt_type, new_field_array4dflt_type, reference_field_array5dflt_type, new_field_array5dflt_type, reference_field_array6dflt_type, new_field_array6dflt_type, reference_field_array7dflt_type, new_field_array7dflt_type, reference_field_matflt_type, new_field_matflt_type, reference_field_vecflt_type, new_field_vecflt_type)
character(len=132) function maximum_relative_error_array4dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_array3dflt_type(reference_field, new_field, diff_counter, error_level)
This module is an example for the error_analysis module which shall hold the user defined error analy...
character(len=132) function chi_square_array5dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_vecflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function chi_square_array6dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_float_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function maximum_relative_error_array5dflt_type(reference_field, new_field, diff_counter, error_level)
character(len=132) function are_identical_matflt_type(reference_field, new_field, diff_counter, error_level)