fury_test_qreal_div_mixed Program

program~~fury_test_qreal_div_mixed~~UsesGraph program~fury_test_qreal_div_mixed fury_test_qreal_div_mixed module~fury fury module~fury->program~fury_test_qreal_div_mixed module~fury_uom_symbol128 fury_uom_symbol128 module~fury_uom_symbol128->module~fury module~fury_mixed_kinds fury_mixed_kinds module~fury_uom_symbol128->module~fury_mixed_kinds module~fury_uom128 fury_uom128 module~fury_uom_symbol128->module~fury_uom128 module~fury_uom_reference128 fury_uom_reference128 module~fury_uom_symbol128->module~fury_uom_reference128 module~penf~3 penf module~penf~3->module~fury module~penf~3->module~fury_uom_symbol128 module~fury_system_si64 fury_system_si64 module~penf~3->module~fury_system_si64 module~fury_system_si128 fury_system_si128 module~penf~3->module~fury_system_si128 module~fury_qreal128 fury_qreal128 module~penf~3->module~fury_qreal128 module~fury_uom_symbol32 fury_uom_symbol32 module~penf~3->module~fury_uom_symbol32 module~fury_uom64 fury_uom64 module~penf~3->module~fury_uom64 module~stringifor stringifor module~penf~3->module~stringifor module~fury_system_abstract128 fury_system_abstract128 module~penf~3->module~fury_system_abstract128 module~penf~3->module~fury_mixed_kinds module~fury_uom_reference64 fury_uom_reference64 module~penf~3->module~fury_uom_reference64 module~fury_system_abstract32 fury_system_abstract32 module~penf~3->module~fury_system_abstract32 module~fury_qreal32 fury_qreal32 module~penf~3->module~fury_qreal32 module~fury_uom_symbol64 fury_uom_symbol64 module~penf~3->module~fury_uom_symbol64 module~fury_system_abstract64 fury_system_abstract64 module~penf~3->module~fury_system_abstract64 module~fury_qreal64 fury_qreal64 module~penf~3->module~fury_qreal64 module~fury_uom32 fury_uom32 module~penf~3->module~fury_uom32 module~penf~3->module~fury_uom128 module~fury_uom_reference32 fury_uom_reference32 module~penf~3->module~fury_uom_reference32 module~fury_uom_converter fury_uom_converter module~penf~3->module~fury_uom_converter module~penf~3->module~fury_uom_reference128 module~fury_system_si32 fury_system_si32 module~penf~3->module~fury_system_si32 module~stringifor_string_t stringifor_string_t module~penf~3->module~stringifor_string_t module~befor64 befor64 module~penf~3->module~befor64 module~befor64_pack_data_m~2 befor64_pack_data_m module~penf~3->module~befor64_pack_data_m~2 module~fury_system_si64->module~fury iso_fortran_env iso_fortran_env iso_fortran_env->module~fury iso_fortran_env->module~fury_uom_symbol128 iso_fortran_env->module~fury_qreal128 iso_fortran_env->module~fury_uom_symbol32 iso_fortran_env->module~fury_uom64 iso_fortran_env->module~fury_mixed_kinds iso_fortran_env->module~fury_uom_reference64 iso_fortran_env->module~fury_qreal32 iso_fortran_env->module~fury_uom_symbol64 iso_fortran_env->module~fury_qreal64 iso_fortran_env->module~fury_uom32 iso_fortran_env->module~fury_uom128 iso_fortran_env->module~fury_uom_reference32 iso_fortran_env->module~fury_uom_reference128 module~penf_stringify~3 penf_stringify iso_fortran_env->module~penf_stringify~3 module~fury_system_si128->module~fury module~fury_qreal128->module~fury module~fury_qreal128->module~fury_system_si128 module~fury_qreal128->module~fury_system_abstract128 module~fury_qreal128->module~fury_mixed_kinds module~fury_uom_symbol32->module~fury module~fury_uom_symbol32->module~fury_mixed_kinds module~fury_uom_symbol32->module~fury_uom32 module~fury_uom_symbol32->module~fury_uom_reference32 module~fury_uom64->module~fury module~fury_uom64->module~fury_system_si64 module~fury_uom64->module~fury_mixed_kinds module~fury_uom64->module~fury_system_abstract64 module~fury_uom64->module~fury_qreal64 module~stringifor->module~fury module~stringifor->module~fury_uom_symbol128 module~stringifor->module~fury_system_si64 module~stringifor->module~fury_system_si128 module~stringifor->module~fury_qreal128 module~stringifor->module~fury_uom_symbol32 module~stringifor->module~fury_uom64 module~stringifor->module~fury_system_abstract128 module~stringifor->module~fury_mixed_kinds module~stringifor->module~fury_uom_reference64 module~stringifor->module~fury_system_abstract32 module~stringifor->module~fury_qreal32 module~stringifor->module~fury_uom_symbol64 module~stringifor->module~fury_system_abstract64 module~stringifor->module~fury_qreal64 module~stringifor->module~fury_uom32 module~stringifor->module~fury_uom128 module~stringifor->module~fury_uom_reference32 module~stringifor->module~fury_uom_reference128 module~stringifor->module~fury_system_si32 module~fury_system_abstract128->module~fury module~fury_system_abstract128->module~fury_system_si128 module~fury_mixed_kinds->module~fury module~fury_uom_reference64->module~fury module~fury_uom_reference64->module~fury_uom64 module~fury_uom_reference64->module~fury_mixed_kinds module~fury_uom_reference64->module~fury_system_abstract64 module~fury_system_abstract32->module~fury module~fury_system_abstract32->module~fury_system_si32 module~fury_qreal32->module~fury module~fury_qreal32->module~fury_mixed_kinds module~fury_qreal32->module~fury_system_abstract32 module~fury_qreal32->module~fury_system_si32 module~fury_uom_symbol64->module~fury module~fury_uom_symbol64->module~fury_uom64 module~fury_uom_symbol64->module~fury_mixed_kinds module~fury_uom_symbol64->module~fury_uom_reference64 module~fury_system_abstract64->module~fury module~fury_system_abstract64->module~fury_system_si64 module~fury_qreal64->module~fury module~fury_qreal64->module~fury_system_si64 module~fury_qreal64->module~fury_mixed_kinds module~fury_qreal64->module~fury_system_abstract64 module~fury_uom32->module~fury module~fury_uom32->module~fury_mixed_kinds module~fury_uom32->module~fury_system_abstract32 module~fury_uom32->module~fury_qreal32 module~fury_uom32->module~fury_system_si32 module~fury_uom128->module~fury module~fury_uom128->module~fury_system_si128 module~fury_uom128->module~fury_qreal128 module~fury_uom128->module~fury_system_abstract128 module~fury_uom128->module~fury_mixed_kinds module~fury_uom_reference32->module~fury module~fury_uom_reference32->module~fury_mixed_kinds module~fury_uom_reference32->module~fury_system_abstract32 module~fury_uom_reference32->module~fury_uom32 module~fury_uom_converter->module~fury module~fury_uom_converter->module~fury_uom_symbol128 module~fury_uom_converter->module~fury_uom_symbol32 module~fury_uom_converter->module~fury_uom64 module~fury_uom_converter->module~fury_mixed_kinds module~fury_uom_converter->module~fury_uom_reference64 module~fury_uom_converter->module~fury_uom_symbol64 module~fury_uom_converter->module~fury_uom32 module~fury_uom_converter->module~fury_uom128 module~fury_uom_converter->module~fury_uom_reference32 module~fury_uom_converter->module~fury_uom_reference128 module~fury_uom_reference128->module~fury module~fury_uom_reference128->module~fury_system_abstract128 module~fury_uom_reference128->module~fury_mixed_kinds module~fury_uom_reference128->module~fury_uom128 module~fury_system_si32->module~fury module~penf_global_parameters_variables penf_global_parameters_variables module~penf_global_parameters_variables->module~penf~3 module~penf_b_size~4 penf_b_size module~penf_global_parameters_variables->module~penf_b_size~4 module~penf_global_parameters_variables->module~penf_stringify~3 module~penf_b_size~4->module~penf~3 module~penf_b_size~4->module~penf_stringify~3 module~penf_stringify~3->module~penf~3 module~stringifor_string_t->module~stringifor module~befor64->module~stringifor_string_t module~befor64_pack_data_m~2->module~befor64
Help


FURY test of qreal.

Calls

program~~fury_test_qreal_div_mixed~~CallsGraph program~fury_test_qreal_div_mixed fury_test_qreal_div_mixed uom64 uom64 program~fury_test_qreal_div_mixed->uom64
Help


Variables

Type AttributesNameInitial
type(qreal32) :: force1

A force.

type(qreal64) :: force2

A force.

type(qreal64) :: force3

A force.

type(qreal128) :: force4

A force.

type(uom64) :: u_acceleration

Acceleration unit.

type(uom64) :: u_force

Force unit.

type(uom64) :: u_length

Length unit.

type(uom64) :: u_mass

Mass unit.

type(uom64) :: u_speed

Speed unit.

type(uom64) :: u_time

Time unit.

logical :: test_passed(6)

List of passed tests.


Source Code

program fury_test_qreal_div_mixed
!-----------------------------------------------------------------------------------------------------------------------------------
!< FURY test of [[qreal]].
!-----------------------------------------------------------------------------------------------------------------------------------
use fury
!-----------------------------------------------------------------------------------------------------------------------------------

!-----------------------------------------------------------------------------------------------------------------------------------
type(qreal32)  :: force1         !< A force.
type(qreal64)  :: force2         !< A force.
type(qreal64)  :: force3         !< A force.
type(qreal128) :: force4         !< A force.
type(uom64)    :: u_acceleration !< Acceleration unit.
type(uom64)    :: u_force        !< Force unit.
type(uom64)    :: u_length       !< Length unit.
type(uom64)    :: u_mass         !< Mass unit.
type(uom64)    :: u_speed        !< Speed unit.
type(uom64)    :: u_time         !< Time unit.
logical        :: test_passed(6) !< List of passed tests.
!-----------------------------------------------------------------------------------------------------------------------------------

!-----------------------------------------------------------------------------------------------------------------------------------
test_passed = .false.

u_length = uom64(source='m [length]', name='metre')
u_mass = uom64(source='kg [mass]', name='kilogram')
u_time = uom64(source='s [time]', name='second')

u_speed = u_length / u_time
u_acceleration = u_speed / u_time
u_force = u_mass * u_acceleration

force1 = 1 * u_force
force2 = 2 * u_force
force4 = force1

force3 = force1 / force2
test_passed(1) = force3%stringify(format='(F3.1)')=='0.5 kg0.m0.s0'
print "(A,L1)", 'force(float32) / force(float64) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(1)

force3 = force2 / force1
test_passed(2) = force3%stringify(format='(F3.1)')=='2.0 kg0.m0.s0'
print "(A,L1)", 'force(float64) / force(float32) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(2)

call force3%unset
force3 = force1 / force4
test_passed(3) = force3%stringify(format='(F3.1)')=='1.0 kg0.m0.s0'
print "(A,L1)", 'force(float32) / force(float128) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(3)

call force3%unset
force3 = force4 / force1
test_passed(4) = force3%stringify(format='(F3.1)')=='1.0 kg0.m0.s0'
print "(A,L1)", 'force(float128) / force(float32) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(4)

call force3%unset
force3 = force2 / force4
test_passed(5) = force3%stringify(format='(F3.1)')=='2.0 kg0.m0.s0'
print "(A,L1)", 'force(float64) / force(float128) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(5)

call force3%unset
force3 = force4 / force2
test_passed(6) = force3%stringify(format='(F3.1)')=='0.5 kg0.m0.s0'
print "(A,L1)", 'force(float128) / force(float64) = '//force3%stringify(format='(F3.1)')//', is correct? ', test_passed(6)

print "(A,L1)", new_line('a')//'Are all tests passed? ', all(test_passed)
stop
!-----------------------------------------------------------------------------------------------------------------------------------
endprogram fury_test_qreal_div_mixed