subroutine TopDrive_INPUTS use CDrillingConsoleVariables use CDataDisplayConsoleVariables use CSimulationVariables use CTopDrivePanelVariables use CTdsConnectionModesEnumVariables use TopDrive_VARIABLES use TD_DrillStemComponents use CUnityInputs use CSlipsEnumVariables IMPLICIT NONE integer :: i TDS%String_Torque = TD_StringTorque*12.d0 ![lb.ft]*12 ---> [lb.in] ????????? !TDS%String_Torque = 20000. TDS%String_Torque = 0.112984829*TDS%String_Torque ![N.m] !===> TDS%String_JCoef Calculation if ( (TopDriveDrillTorqueState==-1) .and. ((Get_TdsConnectionModes()==TDS_CONNECTION_STRING).or.(Get_TdsConnectionModes()==TDS_CONNECTION_SPINE)) ) then !if TopDrive connected to string TDS%String_JCoef = 0.0 Do i = 1,TD_StringConfigurationCount TDS%String_JCoef = TDS%String_JCoef+( (TD_DrillStem(i)%TotalWeight*((TD_DrillStem(i)%Id**2)+(TD_DrillStem(i)%Od**2)))/8.0 ) ![lb.ft^2] , Jz=(1/2)*m*(r1^2+r2^2) End Do TDS%String_JCoef = TDS%String_JCoef*0.0421401 ![kg.m^2] else TDS%String_JCoef = 0.0 TDS%String_Torque = 0.0 end if TDS%String_JCoef = TDS%String_JCoef/10. !???????? /10: bi dalil, check it !print*, 'TDS%String_JCoef=', TDS%String_JCoef TDS%Conv_Ratio = TDS%High_Conv_Ratio end subroutine