module CTanks use CTanksVariables use CSimulationVariables use CManifolds implicit none public contains ! Input routines subroutine SetWaterRate(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetWaterRate !DEC$ ATTRIBUTES ALIAS: 'SetWaterRate' :: SetWaterRate implicit none real*8, intent(in) :: v Tank%WaterRate = v #ifdef deb print*, 'WaterRate=', Tank%WaterRate #endif end subroutine subroutine SetCementTankVolume(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetCementTankVolume !DEC$ ATTRIBUTES ALIAS: 'SetCementTankVolume' :: SetCementTankVolume implicit none real*8, intent(in) :: v Tank%CementTankVolume = v #ifdef deb print*, 'CementTankVolume=', Tank%CementTankVolume #endif end subroutine subroutine SetCementTankDensity(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetCementTankDensity !DEC$ ATTRIBUTES ALIAS: 'SetCementTankDensity' :: SetCementTankDensity implicit none real*8, intent(in) :: v Tank%CementTankDensity = v #ifdef deb print*, 'CementTankDensity=', Tank%CementTankDensity #endif end subroutine subroutine SetTripTankVolume(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetTripTankVolume !DEC$ ATTRIBUTES ALIAS: 'SetTripTankVolume' :: SetTripTankVolume implicit none real*8, intent(in) :: v Tank%TripTankVolume = v #ifdef deb print*, 'TripTankVolume=', Tank%TripTankVolume #endif end subroutine subroutine SetTripTankDensity(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetTripTankDensity !DEC$ ATTRIBUTES ALIAS: 'SetTripTankDensity' :: SetTripTankDensity implicit none real*8, intent(in) :: v Tank%TripTankDensity = v #ifdef deb print*, 'TripTankDensity=', Tank%TripTankDensity #endif end subroutine ! subroutine SetManualPumpPowerT(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SetManualPumpPowerT ! !DEC$ ATTRIBUTES ALIAS: 'SetManualPumpPowerT' :: SetManualPumpPowerT ! implicit none ! logical, intent(in) :: v ! ManualPumpPower = v ! call ChangeValve(43, v) !#ifdef deb ! print*, 'ManualPumpPowerT=', ManualPumpPower !#endif ! end subroutine subroutine SetValve1T(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve1T !DEC$ ATTRIBUTES ALIAS: 'SetValve1T' :: SetValve1T implicit none logical, intent(in) :: v Tank%Valve1 = v call ChangeValve(40, v) #ifdef deb print*, 'Valve1T=', Tank%Valve1 #endif end subroutine subroutine SetValve2T(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve2T !DEC$ ATTRIBUTES ALIAS: 'SetValve2T' :: SetValve2T implicit none logical, intent(in) :: v Tank%Valve2 = v call ChangeValve(41, v) #ifdef deb print*, 'Valve2T=', Tank%Valve2 #endif end subroutine subroutine SetValve3T(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve3T !DEC$ ATTRIBUTES ALIAS: 'SetValve3T' :: SetValve3T implicit none logical, intent(in) :: v Tank%Valve3 = v call ChangeValve(45, v) #ifdef deb print*, 'Valve3T=', Tank%Valve3 #endif end subroutine subroutine SetValve4T(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve4T !DEC$ ATTRIBUTES ALIAS: 'SetValve4T' :: SetValve4T implicit none logical, intent(in) :: v Tank%Valve4 = v call ChangeValve(58, v) #ifdef deb print*, 'Valve4T=', Tank%Valve4 #endif end subroutine subroutine SetValve5T(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve5T !DEC$ ATTRIBUTES ALIAS: 'SetValve5T' :: SetValve5T implicit none logical, intent(in) :: v Tank%Valve5 = v call ChangeValve(42, v) #ifdef deb print*, 'Valve5T=', Tank%Valve5 #endif end subroutine subroutine SetValve6(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve6 !DEC$ ATTRIBUTES ALIAS: 'SetValve6' :: SetValve6 implicit none logical, intent(in) :: v Tank%Valve6 = v call ChangeValve(38, v) !WRITE (*,*) ' valve 38 ', v #ifdef deb print*, 'Valve6=', Tank%Valve6 #endif end subroutine subroutine SetValve7(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve7 !DEC$ ATTRIBUTES ALIAS: 'SetValve7' :: SetValve7 implicit none logical, intent(in) :: v Tank%Valve7 = v call ChangeValve(59, v) #ifdef deb print*, 'Valve7=', Tank%Valve7 #endif end subroutine subroutine SetValve8(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve8 !DEC$ ATTRIBUTES ALIAS: 'SetValve8' :: SetValve8 implicit none logical, intent(in) :: v Tank%Valve8 = v call ChangeValve(39, v) #ifdef deb print*, 'Valve8=', Tank%Valve8 #endif end subroutine subroutine SetValve9(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve9 !DEC$ ATTRIBUTES ALIAS: 'SetValve9' :: SetValve9 implicit none logical, intent(in) :: v Tank%Valve9 = v call ChangeValve(36, v) !WRITE (*,*) ' valve 36 ', v #ifdef deb print*, 'Valve9=', Tank%Valve9 #endif end subroutine subroutine SetValve10(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve10 !DEC$ ATTRIBUTES ALIAS: 'SetValve10' :: SetValve10 implicit none logical, intent(in) :: v Tank%Valve10 = v call ChangeValve(37, v) #ifdef deb print*, 'Valve10=', Tank%Valve10 #endif end subroutine subroutine SetValve11(v) !DEC$ ATTRIBUTES DLLEXPORT :: SetValve11 !DEC$ ATTRIBUTES ALIAS: 'SetValve11' :: SetValve11 implicit none logical, intent(in) :: v Tank%Valve11 = v call ChangeValve(44, v) #ifdef deb print*, 'Valve11=', Tank%Valve11 #endif end subroutine ! Output routines real(8) function GetTripTankVolumeT() !DEC$ ATTRIBUTES DLLEXPORT :: GetTripTankVolumeT !DEC$ ATTRIBUTES ALIAS: 'GetTripTankVolumeT' :: GetTripTankVolumeT implicit none GetTripTankVolumeT = Tank%TripTankVolume !GetTripTankVolumeT = 50.0 + SimulationTime end function real(8) function GetTripTankDensity() !DEC$ ATTRIBUTES DLLEXPORT :: GetTripTankDensity !DEC$ ATTRIBUTES ALIAS: 'GetTripTankDensity' :: GetTripTankDensity implicit none GetTripTankDensity = Tank%TripTankDensity !GetTripTankDensity = 13.0 + SimulationTime end function logical function GetManualPumpPowerT() !DEC$ ATTRIBUTES DLLEXPORT :: GetManualPumpPowerT !DEC$ ATTRIBUTES ALIAS: 'GetManualPumpPowerT' :: GetManualPumpPowerT implicit none GetManualPumpPowerT = Tank%ManualPumpPower !GetManualPumpPowerT = .true. end function end module CTanks