Guest User

Untitled

a guest
Jan 20th, 2025
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. C PROGRAM LIGHTBULB_CHANGE
  2. C WRITTEN IN 1957, STILL WORKS
  3. C LAST MODIFIED: NEVER
  4. C AUTHOR: DR. PUNCH-CARD
  5. PROGRAM LIGHTBULB_CHANGE
  6. IMPLICIT NONE
  7.  
  8. C VARIABLE DECLARATIONS (ALL MUST START BEFORE COLUMN 7)
  9. INTEGER*4 BULB_STATUS, ERROR_CODE
  10. REAL*8 VOLTAGE, WATTAGE, TEMPERATURE
  11. CHARACTER*6 BULB_TYPE
  12. LOGICAL IS_WORKING
  13.  
  14. C COMMON BLOCK FOR SHARING VARIABLES
  15. COMMON /BULBDATA/ VOLTAGE, WATTAGE
  16.  
  17. C FORMAT STATEMENTS
  18. 10 FORMAT(1X,'***LIGHT BULB CHANGE PROCEDURE INITIATED***')
  19. 20 FORMAT(1X,'CURRENT BULB STATUS: ',I2)
  20. 30 FORMAT(1X,'ERROR CODE: ',I4,' - CONTACT IBM MAINTENANCE')
  21.  
  22. C INITIALIZE VARIABLES
  23. BULB_STATUS = 0
  24. ERROR_CODE = 0
  25. VOLTAGE = 220.0D0
  26. WATTAGE = 60.0D0
  27. TEMPERATURE = 0.0D0
  28. BULB_TYPE = 'TYPE-A'
  29. IS_WORKING = .FALSE.
  30.  
  31. C PRINT HEADER
  32. WRITE(6,10)
  33.  
  34. C CHECK IF BULB EXISTS
  35. CALL CHECK_BULB_STATUS(BULB_STATUS)
  36. IF (BULB_STATUS .LT. 0) THEN
  37. WRITE(6,30) ERROR_CODE
  38. STOP 'ABNORMAL TERMINATION'
  39. ENDIF
  40.  
  41. C PERFORM CALCULATIONS
  42. CALL CALCULATE_POWER_REQUIREMENTS(
  43. & VOLTAGE,
  44. & WATTAGE,
  45. & TEMPERATURE)
  46.  
  47. C CHANGE THE BULB
  48. CALL CHANGE_BULB(
  49. & BULB_TYPE,
  50. & TEMPERATURE,
  51. & IS_WORKING,
  52. & ERROR_CODE)
  53.  
  54. C CHECK RESULTS
  55. IF (ERROR_CODE .NE. 0) THEN
  56. WRITE(6,30) ERROR_CODE
  57. CALL ABORT
  58. ENDIF
  59.  
  60. C WRITE RESULTS TO PUNCH CARDS
  61. CALL WRITE_TO_CARDS(
  62. & BULB_TYPE,
  63. & BULB_STATUS,
  64. & IS_WORKING)
  65.  
  66. END
  67.  
  68. C SUBROUTINE TO CHECK BULB STATUS
  69. SUBROUTINE CHECK_BULB_STATUS(STATUS)
  70. INTEGER*4 STATUS
  71. C COMPLICATED PHYSICS CALCULATIONS HERE
  72. RETURN
  73. END
  74.  
  75. C SUBROUTINE TO CALCULATE POWER
  76. SUBROUTINE CALCULATE_POWER_REQUIREMENTS(V, W, T)
  77. REAL*8 V, W, T
  78. C MORE COMPLICATED PHYSICS
  79. RETURN
  80. END
  81.  
  82. C SUBROUTINE TO CHANGE BULB
  83. SUBROUTINE CHANGE_BULB(TYPE, TEMP, WORKING, ERR)
  84. CHARACTER*6 TYPE
  85. REAL*8 TEMP
  86. LOGICAL WORKING
  87. INTEGER*4 ERR
  88. C ACTUAL BULB CHANGE LOGIC
  89. RETURN
  90. END
Advertisement
Add Comment
Please, Sign In to add comment