module CStringConfiguration use CStringConfigurationVariables implicit none public contains integer function SetStringConfigurations(count, array, bit) !DEC$ ATTRIBUTES DLLEXPORT::SetStringConfigurations !DEC$ ATTRIBUTES ALIAS: 'SetStringConfigurations' :: SetStringConfigurations use CManifolds implicit none integer, intent(in) :: count integer :: i, j type(CStringItem), intent(inout), target :: array(count) type(CBitInfo), intent(inout) :: bit type(CStringItem), pointer :: item BitDefinition%BitType = bit%BitType BitDefinition%BitSize = bit%BitSize BitDefinition%BitCodeHundreds = bit%BitCodeHundreds BitDefinition%BitCodeTens = bit%BitCodeTens BitDefinition%BitCodeOnes = bit%BitCodeOnes BitDefinition%BitNozzleSize = bit%BitNozzleSize BitDefinition%BitLength = bit%BitLength BitDefinition%BitWeightPerLength = bit%BitWeightPerLength BitDefinition%BitNozzleNo = bit%BitNozzleNo BitDefinition%FloatValve = bit%FloatValve StringConfigurationCount = count if(BitDefinition%FloatValve) then call InstallFloatValve() else call RemoveFloatValve() endif if(size(StringConfigurations) > 0) then deallocate(StringConfigurations) end if if(count > 0) then allocate(StringConfigurations(count)) !j = count do i = 1, count item => array(i) StringConfigurations(i)%ComponentType = item%ComponentType StringConfigurations(i)%NumberOfJoint = item%NumberOfJoint StringConfigurations(i)%LengthPerJoint = item%LengthPerJoint StringConfigurations(i)%NominalOd = item%NominalOd StringConfigurations(i)%NominalId = item%NominalId StringConfigurations(i)%WeightPerLength = item%WeightPerLength StringConfigurations(i)%ComponentLength = item%ComponentLength StringConfigurations(i)%NominalToolJointOd = item%NominalToolJointOd StringConfigurations(i)%Grade = item%Grade !print*, 'type=', StringConfigurations(i)%ComponentType !print*, 'NumberOfJoint=', StringConfigurations(i)%NumberOfJoint !print*, '-----------------------------------------------------------' !j = j - 1 end do end if SetStringConfigurations = 0 end function SetStringConfigurations end module CStringConfiguration