Premessa: perché usare un linguaggio datato e "astruso" come COBOL per l'ingegneria e il calcolo scientifico? Diamo subito la risposta, solo ed esclusivamente... per sport!
Dopo le discussioni "semplice" gioco in Assembly e la libreria python-cobol, vediamo ora un'applicazione pratica di COBOL, che solitamente viene usato solo in ambito bancario, questa volta invece per un programma che riguarda l'irraggiamento termico. Qualcosa di analogo era già stato fattonella discussione Python - Matplotlib - irraggiamento termico.
Per il caso in esame è stato fatto uso di un compilatore online di COBOL, tutorialspoint.com/compile_cobol_online. I dati di partenza sono questi:
- irraggiamento termico: Potenza [Watt] = 5.67 * 19-8 * eps * (Th4 - Tl4)
- eps = emissività, 0<eps<1, prendiamo 0.98
- Th = temperatura del corpo più caldo (gradi kelvin), prendiamo 30 °C ovvero 303.15 k
- Tl = temepratura del corpo più freddo (gradi kelvin), prendiamo 15 °C ovvero 288.15 k
- conversione Celsius - Kelvin: 0 °C = 273.15 k, quindi gradi Kelvin = Celsius + 273.15
Ecco riportato il codice:
IDENTIFICATION DIVISION.
PROGRAM-ID. IRRAGGIAMENTO-EXAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 tl PIC 999V99 VALUE 15.
01 th PIC 999V99 VALUE 30.
01 EPS PIC 9V99 VALUE 0.98.
01 power PIC S9(12)V9(12).
01 TEMP PIC S9(12)V9(12).
PROCEDURE DIVISION.
ADD 273.15 TO th.
ADD 273.15 TO tl.
MULTIPLY th BY th GIVING power.
MULTIPLY power BY power GIVING power.
MULTIPLY tl BY tl GIVING TEMP.
MULTIPLY TEMP BY TEMP GIVING TEMP.
SUBTRACT TEMP FROM power.
MULTIPLY power BY EPS GIVING power.
MULTIPLY 0.0000000567 BY power GIVING power.
DISPLAY 'power = ' power ' Watt'.
STOP RUN.
Ricordiamo che dopo STOP RUN.
, COBOL chiede che venga inserita manualmente una riga vuota altrimenti il compilatore te lo fa sapere (roba sofisticata insomma 😅).
Insomma, ammesso che abbia senso la cosa, anche con COBOL volendo si possono creare programmi di utilità ingegneristica/scientifica 😀 un altro esempio è: Calcolo del Potere Calorifico Superiore - COBOL.