module CStringConfiguration use CStringConfigurationVariables use ConfigurationVariables 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 Configuration%StringConfiguration%BitDefinition%BitType = bit%BitType Configuration%StringConfiguration%BitDefinition%BitSize = bit%BitSize Configuration%StringConfiguration%BitDefinition%BitCodeHundreds = bit%BitCodeHundreds Configuration%StringConfiguration%BitDefinition%BitCodeTens = bit%BitCodeTens Configuration%StringConfiguration%BitDefinition%BitCodeOnes = bit%BitCodeOnes Configuration%StringConfiguration%BitDefinition%BitNozzleSize = bit%BitNozzleSize Configuration%StringConfiguration%BitDefinition%BitLength = bit%BitLength Configuration%StringConfiguration%BitDefinition%BitWeightPerLength = bit%BitWeightPerLength Configuration%StringConfiguration%BitDefinition%BitNozzleNo = bit%BitNozzleNo Configuration%StringConfiguration%BitDefinition%FloatValve = bit%FloatValve Configuration%StringConfiguration%StringConfigurationCount = count if(Configuration%StringConfiguration%BitDefinition%FloatValve) then call InstallFloatValve() else call RemoveFloatValve() endif if(size(Configuration%StringConfiguration%StringConfigurations) > 0) then deallocate(Configuration%StringConfiguration%StringConfigurations) end if if(count > 0) then allocate(Configuration%StringConfiguration%StringConfigurations(count)) !j = count do i = 1, count item => array(i) Configuration%StringConfiguration%StringConfigurations(i)%ComponentType = item%ComponentType Configuration%StringConfiguration%StringConfigurations(i)%NumberOfJoint = item%NumberOfJoint Configuration%StringConfiguration%StringConfigurations(i)%LengthPerJoint = item%LengthPerJoint Configuration%StringConfiguration%StringConfigurations(i)%NominalOd = item%NominalOd Configuration%StringConfiguration%StringConfigurations(i)%NominalId = item%NominalId Configuration%StringConfiguration%StringConfigurations(i)%WeightPerLength = item%WeightPerLength Configuration%StringConfiguration%StringConfigurations(i)%ComponentLength = item%ComponentLength Configuration%StringConfiguration%StringConfigurations(i)%NominalToolJointOd = item%NominalToolJointOd Configuration%StringConfiguration%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