Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
pure function should_calculate_target(self,target_id,i_material)result(is_active)implicit none class(type_controls),intent(in)::selfinteger,intent(in)::target_idinteger(int32),intent(in)::i_materiallogical::is_activeis_active=.false.! 高速な整数比較select case(target_id)case(calc_thermal)#ifdef USE_DEBUGif(allocated(self%thermal))then if(i_material<=ubound(self%thermal,1))then#endifis_active=self%thermal(i_material)#ifdef USE_DEBUGend if end if#endifcase(calc_hydraulic)#ifdef USE_DEBUGif(allocated(self%hydraulic))then if(i_material<=ubound(self%hydraulic,1))then#endifis_active=self%hydraulic(i_material)#ifdef USE_DEBUGend if end if#endifcase(calc_mechanical)#ifdef USE_DEBUGif(allocated(self%mechanical))then if(i_material<=ubound(self%mechanical,1))then#endifis_active=self%mechanical(i_material)#ifdef USE_DEBUGend if end if#endifend select end function should_calculate_target