Cercetari Speologice
Programe pe calculator pentru asistarea studiilor de speoclimatologie
Lucrarea cuprinde programe realizate în diferite limbaje (Turbo Pascal, Quattro Pro, MathCad, FoxBase s.a.) pentru asistarea, optimizarea si simplificarea studiilor de speoclimatologie. Au fost concepute programe pentru calcularea parametrilor climatici, interpolarea si trasarea graficelor de repartitie a valorilor acestor parametri, efectuarea graficelor izopletare, rezolvarea rapida a foilor de calcul, optimizarea lucrului cu psihrometrul, crearea si gestionarea unei baze de date a valorilor
primare.
Computer programe aiding spelaeo - climatological research
The paper includes computer programs in different languages (such as Turbo Pascal Quattro Pro, MathCad, Fox Base and others) which assist perfects and simplifies the spelaeo - climatological research. There nave been conceived programs for computing the climatological parameters, interpolation and plotting of the distribution of their values and the tsoplethes graphics, solving of the spreadsheets, perfecting the handle with the psychrometer, creating and using of
a database with primary values.
CAP. 1 INTRODUCERE
Climatologia este una dintre stiintele cele mai propice aplicarii programarii pe calculator si tehnicilor de calcul automatizat. Puternic matematizata, având metode de studiu în care prelucrarea datelor experimentale, exprimarea rezultatelor si a concluziilor se realizeaza prin formule adeseori complexe, formeaza un teren relativ viran pentru cei care doresc sa-si optimize 17517h711r ze munca (profesionisti sau amatori) utilizând calculatoarele personale. Programele si algoritmii prezentati aici s-au nascut din necesitati practice aparute în câteva studii de climatologie subterana la care am luat parte în ultimii trei ani. S-a cautat simplificarea programelor si a prezentarii acestora, excluzând dezvoltarile teoretice, cu exceptia
unor rudimente necesare întelegerii procesului supus atentiei. Aplicabilitatea si simplitatea sunt coordonate de baza dupa care ne-am straduit sa ne orientam. Utilizarea termenului de "speoclimatologie" nu este întâmplatoare. Aceasta disciplina de granita uzeaza de particularitati atât în ceea ce priveste metodologia de studiu, cât si în desfasurarea faptica a acestuia si exprimarea rezultatelor. Dezvoltând abordari specifice, teoretice si practice care îi confera o relativa independenta de climatologia clasica, se considera faptul ca acest termen compus este de preferat altor expresii cu semantica similara. Ţinând seama de conditiile înca limitative privind accesul la echipamentele de calcul pentru tinerii cercetatori, s-a urmarit utilizarea de limbaje, sisteme de programe în versiuni cât mai accesibile si care, în general fac obiectul unor cursuri uzuale în facultatile cu specialitati diferite de cele de matematica-informatica. Toate programele au rulat pe un Compaq compatibil IBM PC-AT, având un procesor 80286. Fara dificultati pot fi însa adaptate rularii pe un XT, sau - dimpotriva -pe echipamente mai sofisticate. De asemenea, cunoscatorii pot transpune programele în limbaje sau versiuni mai noi, pot adauga facilitati grafice, proceduri diferite, algoritmi optimizati etc. Unde a fost cazul au fost date denumiri de produse software similare ca aplicatii celor prezentate, dar mai performante.
CAP. 2 PROGRAM ÎN LIMBAJUL TURBO-PASCAL PENTRU CALCULAREA VALORII PARAMETRILOR CLIMATICI DIN DATELE CITITE LA PSIHROMETRUL ASSMANN
Starea unui sistem fizic este determinata prin valorile momentane ale parametrilor sai [3]. Dintre parametrii folositi în mod obisnuit de climatologia clasica, în pesteri se urmaresc mai des trei (presiunea atmosferica, temperatura si umezeala aerului), eventual si directia si taria curentilor de aer de-a lungul
Ioan Sârbu clubul Ecotur Sibiu
galeriilor. Prin intermediul acestor elemente se poate obtine o caracterizare suficient de obiectiva a starii sistemului (micro-, mero- sau topoclimat) functie de amploarea zonei urmarite si intervalul de timp considerat. Instrumentele de masura uzuale (clasice) sunt: barometrul pentru presiune, termometrul ordinar pentru temperatura momentana, psihrometrul pentru temperatura si determinarea umezelii aerului si anemometrul pentru curentii atmosferici. La acestea se adauga si diferite aparate ca: ter-mograful, barograful, higrograful, instrumente de determinare a extremelor (termometre de maxim si minim s.a.) precum si o serie de instrumente electronice cu o raspândire înca restrânsa. Dintre toate modurile de exprimare a umezelii se vor considera cele mai semnificative potrivit scopului urmarit. Atâta vreme cât vaporii nu se condenseaza, ei se comporta -practic - dupa legile gazelor ideale. Presiunea partiala a vaporilor de apa din aerul saturat se numeste "presiune de echilibru", sau de saturatie" [3]. Când vaporii de apa se afla în echilibru cu o suprafata plana si electric neutra de apa pura sau de gheata (asa cum se considera în cazul psihrometrului), presiunea de echilibru va lua denumirea de tensiune maxima (E)" si depinde de faza apei, crescând exponential cu temperatura. O varianta de calcul al acesteia o reprezinta formulele Tetens-Magnus [3]. În volumul de aer la o temperatura data se gaseste un volum de vapori a caror presiune partiala este mai mica sau egala cu E. Aceasta presiune la un moment dat se numeste "tensiune actuala (e)". Raportul e/E se numeste "fractie de saturatie" si contribuie la definirea "umezelii relative" (U) data de formula U=(e/E)*100 exprimata în %. Diferenta (E-e) poarta denumirea de "deficit de saturatie (d)" - uneori cunoscuta si ca "diferenta higrometrica" [2]. "Punctul de roua" este definit ca temperatura la care trebuie racit aerul umed la presiune constanta si
Cercetari Speologice, itot. 6/1996, paq. 70 82
continut constant de vapori pentru a obtine saturarea în raport cu o suprafata plana de apa pura. Toate acestea sunt considerate marimi de importanta majora în studiile de speoclimatologie, urmarindu-se masurarea sau determinarea prin calcule, prelucrarea si trasarea graficelor de repartitie. Alte marimi care caracterizeaza cantitatea de vapori din atmosfera (umezeala absoluta, specifica si coeficientul de amestec) nu au fost luate în considerare în prezenta lucrare pentru a nu complica inutil programele si elaborarea concluziilor. Cei care doresc le pot introduce În aplicatiile oricarui capitol.
În practica speoclimatologica psihrometrul Assmann ramâne înca o unealta eficienta si suficient de precisa în determinarea parametrilor climatici. Alcatuit din doua termometre din care unul umed si celalalt uscat, o morisca aspiratoare, toate protejate de o carcasa solida, formeaza un instrument cu citire directa a datelor, fapt care îi confera o fiabilitate sporita, precizie
(0,2° C) si robustetea atât de necesara în speologie. Cele doua date termice sunt apoi prelucrate în mod uzual cu ajutorul tabelelor psihrometrice [ ] utilizând formulele Savich. Prin corelarea rezultatelor cu valoarea presiunii în momentul realizarii observatiei, se aduc corectiile, de asemenea tabelate, rezultând în final valorile parametrilor climatici (tensiunea maxima, actuala, umiditatea relativa, punctul de roua, deficitul de saturatie). Cautarea în tabele si trecerea de la una la alta constituie însa o frâna în prelucrarea datelor primare, mai ales când acestea (asa cum se întâmpla de obicei) sunt numeroase, fara a mai lua în considerare si posibilitatea de a gresi. Pentru a optimiza lucrul cu psihrometrul, a permite calcularea rapida si sigura a valorilor secundare, s-a realizat un program în limbajul Turbo-Pascal versiunea 6.0, prezentat mai jos.
Datele la intrare sunt: temperatura termometrului uscat (t); temperatura termometrului umed (tj); valoarea presiunii la locul si în
momentul observatiei (p), în hectopascali.
Programul ofera posibilitatea de transformare a presiunii, indiferent de barometrul (altimetrul) cu care s-a lucrat si deci a unitatii de masura (milimetri coloana de mercur, dyne/cmp s.a.) în hectopascali (hPa) prin selectarea raspunsului dorit la
lansarea în executie a programului. De asemenea programul va cere la un moment dat stabilirea faptului daca pe tifonul termometrului umed este apa sau gheata, apelând proceduri diferite pentru calcularea valorilor derivate. Prin introducerea formulelor care corecteaza calculele functie de presiune, corectiile finale la care trebuie apelat în lucrul cu tabelele psihrometrice dispar, fapt care creste precizia si scurteaza timpul necesar obtinerii rezultatelor.
Datele de iesire sunt: tensiunea maxima (hPa); tensiunea actuala (hPa); deficitul de saturatie (hPa); umiditatea relativa (în %); punctul de roua (grade Celsius).
Programul se autorecircula pâna la tastarea cifrei 100 la valoarea termometrului uscat, conditie introdusa pentru a se evita chemarea si rularea programului la fiecare sfârsit de calcul al unui set de parametri. Ca orice program în Turbo-Pascal poate fi compilat direct pe disc si astfel devine executabil, putând fi utilizat si pe calculatoare ce nu au instalat limbajul sau de catre cei care nu îl cunosc.
Observatie. Se stie ca diferitele firme de psihrometre au realizat aparate asemanatoare dar care pot diferi prin asa numita "constanta psihrometrica", functie de viteza de aspiratie si deci de volumul de aer absorbit prin morisca. Aceasta constanta este de obicei identica pentru o varietate de aparat, putându-se integra în program în locul celei alese. Acest fapt nu afecteaza programul si nici valabilitatea rezultatelor.
Program Parcliml;
uses cît; const
tl=273.16;
a=7.947E-4;
aa=6.620E-4;
al=9.5
a2=7.5;
bl=265.5;
b2=237.3;
eO=6.11; var
tt, tprim, pp, p:real;
esata, eacta, esatg, eactg, ur, ds,
td: real;
cod, co:integer; function lg(z:real):real; begin
lg:=ln(z)/ln(10); end;
calculeaza parametrii climatici în cazul în care pe batistul termometrului umed este apa}
procedare tensapa;
var
t,x,y,cl,dl,d2.d3,d4,el,e2,e3.wl, fi, ewa,esatprim,k,deltae:real;
begin
clrscr; writeln;
t:=273.15+tt;
x:=tl/t;
y:=t/tl;
cl:=lg(y);
dl:=8.2969*(y-l);
d2:=dl*ln(10);
d3:=exp(d2);
d4:=l-(l/d3);
el:=4.76955 (l-x);
e2:=el ln(10);
e3:=exp(e2);
wl:=10.79574*(l-x)-
(5.02800*cl)+(0.000150475 d4)+ (0.00042873 (e3-l))+0.78614;
fl:=wl ln); writeln("E ',esatg:7:4); writeln('e actual=',eactg:7:4); writeln('R=',ur:5:2); writeln('d=',ds:7:4); writeln('td= td:7:4); readln; end;
(Programul principal) begln repeat clrscr; writelnfdati valoarea termometrulul
uscat); readln(tt); writeln('datl valoarea termometrului
umed'); readln tprim); writeln('dati presiunea); readln pp);
writeln('dati codul unitatii de masura a presiunii); writeln('l=mm Hg, 2=dyn/cmp,
3=hPa (mbari) ); readln (co); case co of
l:p:=pp*(4/3); 2:p:=pp/1000; 3:p:=pp; else
exit end; writeln;
writeln( valoarea presiunii în milibari (hPa)=',p:7:3); writeln; writeln;
writeln('doriti calcul pentru apa <cod(l)> sau);
writelnCpentru gheata <cod (2)>? ; readln (cod); case cod of l:tensapa; 2:tensgheata; else exit
end;
until tt+ 00; se calculeaza utilizând formula de recurenta
(x, - x . )a _ +2 (( x - x . ) + (x - x )) a, +
yi+i-yi yi-yn
(xi+i~xi) ai+i~-
xi*i ~ xi xi ~ xi-j
pentru =1,2..., (n-1). La acest sistem se adauga egalitatile a^a^O, din conditia a 4-a. sirul (a) este unic determinat pentru o retea data [10],
Cercetari Speologice, Voi. 6/1996, paq. 70 82
rezultând un sistem de n+ ecuatii cu n+1 necunoscute.
Modalitati de rezolvare: se
realizeaza o unitate de program în limbajul Turbo Pascal (sau într-un limbaj de programare) ce calculeaza inversa unei matrici. Elementele sirului a) (matrice coloana cuprinzând necunoscutele) se determina înmultind inversa matricii astfel obtinute cu matricea coloana a constantelor rezultate din formula de recurenta a membrului drept, în care =1,2..., n- .
Acest sir va fi memorat într-o variabila vector, apelata de un program sursa ce va calcula expresia functiei în punctul x. Alegându-se o diviziune care printr-un ciclu va relua calculul functiei, rezultând un numar suficient de mare de valori succesive, astfel încât unindu-se doua câte doua printr-o dreapta sa aproximeze cât mai bine alura curbei, nu va mai fl necesara precizarea explicita a fiecarei variabile în x. O alta posibilitate este calcularea inversei unei functii în programul MathCad care are implementata o procedura ce face acest lucru, simplificând rezolvarea sistemelor algebrice de ecuatii liniare 7], pag. 33-34). Atentie însa: în graficele de repartitie a valorilor de-a lungul galeriei cercetate, aceasta abordare este buna. Daca însa dorim trasarea unei izoplete, este posibil ca (datorita formelor mai complicate pe care acestea este posibil sa le îmbrace) atât cât si (y) sa nu fie siruri strict crescatoare sau descrescatoare, impun ndu-se abordarea parametrica a problemei ([10] voi I, pag. 182-190). Aceasta semnifica selectarea unui sir de valori |b) strict crescator a unei variabile independente continue si rezolvarea a doua probleme de interpolare, una pentru sirul absciselor {(bj.xjl, si una pentru sirul ordonatelor {(bj.y )), rezultând doua functii interpolatoare x(b) si y(b) cu b apartinând [bo,bn] astfel încât x(b )=x, si y(b )=y (i=0,l...,n), care definesc parametric curba ce trebuie efectiv trasata, punctul cautat având coordonatele (x(b), y(b)). Un mod simplu si practic de depasire a acestei piedici este redat în 4.3. O alta problema care apare rezulta din conditiile de limita: f (xo)=f (x )=0, de "at rnare libera" a curbei interpolatoare în x si x . În speoclimatologie aceasta conditie este în general valabila numai pentru x , punct situat în exterior, în dreptul intrarii în cavitatea
naturala. X fiind situat (printr-o alegere judicioasa a amplasarii punctelor de observatie) la limita între meroclimatul de tranzitie si cel de stabilitate, unde se cunoaste valoarea constanta a parametrului luat în studiu si, prin urmare, panta curbei interpolatoare în acest punct de frontiera. Fie aceasta fn . Sistemul de ecuatii va contine o noua expresie, particulara:
(x" - xn_! )an_! +2 (xn - xn_! )an = - in
xn - xn_i
Scopul capitolului 4 este de a oferi varianta mai simpla, dar precisa, de trasare efectiva a graficelor si de aceea intrarea în amanunte teoretice ca si expunerea programelor care sa utilizeze acesti algoritmi nu este necesara. Construirea unor asemenea programe Constituie însa o buna modalitate de a învata limbajele enumerate si aplica considerentele teoretice bazate pe bibliografia citata. Este lasata la latitudinea cititorului hotarârea de a se lansa într-o asemenea activitate. În urmatorul subcapitol se va vedea ca problema interpolarii prin functii spline cubice si trasarea graficelor este extrem de simpla utilizând sistemul de programe MathCad.
5.2. Trasarea graficelor de distributie a valorilor parametrilor climatici În meroclimatul de instabilitate cu ajutorul sistemului de programe MathCad
MathCad este un produs înregistrat al firmei MathSoft Inc. Cambridge M , SUA, utilizabil pe calculatoare compatibile IBM-PC Acest sistem de programe constituie un instrument extrem de util în rezolvarea unor modele matematice, proiectare asistata de calculator si orice necesita calcule matematice laborioase. Problemele teoretice amintite pe scurt în 4.1, destul de dificil de rezolvat în limbaje de programare de tipul Turbo Pascal sau Turbo C, devin extrem de simple utilizând functii si facilitati oferite de mediul MathCad. Simplitatea scrierii formulelor si functiilor implicite orientate pe interpolare, modul grafic usor de utilizat si prelucrat, iesirea pe imprimanta, sunt numai câteva exemple care fac ca MathCad-ul sa fie extrem de util în studiile de speoclimatologie.
Sa ne întoarcem însa la problema enuntata în 4.1. Intrarea
în mediul MathCad se face tastând în directorul corespunzator mcad. Adaptând cazul concret prezentat problemei 3.8 din [7], pag. 88-90, se va putea tasta secventa prezentata în anexa 8. Graficul din figura 2 (corespunzând secventei prezentate în anexa mentionata) reprezinta rezolvarea problemei care a facut introducerea în acest capitol. Pe abscisa este redata distanta în metri fata de intrare, iar pe ordonata valorile medii termice diurne, curba corespunzând trasarii functiei interpolatoare spline cubica.
Wl^
Deschiderea unei reprezentari grafice plane se face tastând @ si se completeaza de catre utilizator spatiile rezervate marcate prin bara orizontala, precizându-se astfel domeniile de variatie pentru flecare axa, variabilele si functiile corespunzatoare (vezi grafic din fig. 2). Datorita conditiilor de editare a lucrarii de fata, graficul iesit la imprimanta a fost recopiat în tus pe hârtie de calc. În practica se recomanda utilizarea graficului fara a fi reprodus, pentru a înlatura orice posibila eroare. De asemenea, cei care poseda (sau au acces) la o imprimanta laser, pot scoate aceste desene la o calitate corespunzatoare conditiilor de publicare. Se mai poate calcula aria si lungimea graficului. În anexa 9, respectiv figura 3, este redata rezolvarea aceleiasi probleme utilizând polinomul de interpolare Lagrange de asemenea prin intermediul MathCad. O simpla comparatie vizuala (sau
H-3
matematica, vizând ariile delimitate si lungimile graficelor) adevereste cele enuntate în 4.2 si anume ca aceasta metoda formeaza un model nefiresc; oscilatiile sunt mai mari si nejustificate în surpriderea unui
Cercetari Speologice, i/oi VI996, paq. 70-82
fenomen natural. Graficele se pot mari sau micsora printr-un mediu de gestiune al ferestrei, potrivit scopului urmarit. Prin tastarea de noi valori în vectorul vy (ce contine valorile parametrilor climatici) si modificând corespunzator domeniul de variatie de pe ordonata, se obtin grafice analoage fara a reface restul programului. În sistemul MathCad, calcularea coeficientilor functiei spline cubice de interpolare determinati de vectorii vx si vy se realizeaza prin intermediul functiilor implicite:
cspline(vx.vy): când functia este cubica la extremitatile intervalului definit de vx
lspline(vx,vy): când este liniara si pspltne(vx,vy): când este parabolica la extremitati.
În definirea variabilei x (distanta fata de intrare) se tasteaza: x:=prima valoare, prima valoa-re+incrementul.. ultima valoare.
Alegerea unui increment cât mai mic contribuie la cresterea preciziei trasarii. Valoarea de 0 01 este suficienta pentru a asigura o fidelitate optima de modelare a fenomenului.
Returnarea valorii în x a functiei spline cubica de interpolare determinata de vectorii vx si vy este data de functia:
interp(vs,vx,vy,x), în care vs reprezinta vectorul cu coeficientii functiei spline calculat în cspline, lspline sau pspline.
Trasarea graficelor izopletare
Graficul izopletar este tridimensional, reprezentând forma curbei ce reuneste puncte echipo-tentiale sub aspect valoric pentru un parametru dat, functie de timp (ore) pe abcisa si distanta (metri) fata de intrare. Toata teoria amintita în capitolele precedente si aplicatia de trasare efectiva din 4.2 ramâne valabila si pentru aceste grafice, cu mici modificari de interpretare. În general observatiile sunt efectuate la orele climatologice ale zilei (1,7, 13, 19) la care se adauga eventual observatii suplimentare. La o anumita ora vom avea un sir de valori determinate, a caror distributie în spatiu este data prin coordonate spatiu - timp. Gasirea unei valori anumite a parametrului, ce nu a fost "prinsa" exact în urma masuratorilor, dar care este situata undeva în acest sir la o anumita ora, face obiectul unei interpolari prealabile. Astfel se recomanda întocmirea înainte de a se trece la izoplete, a graficelor de variatie a valorilor parametrului studiat cu
distanta fata de intrare, analog cu exemplul 4.2, singura deosebire fiind aceea ca nu se mai lucreaza cu valori medii ci cu cele obtinute empiric pentru o ora data, la care s-au realizat observatii pe teren. În acest fel se gasesc valorile specifice viitoarelor izoplete, care se vor reda prin coordonate (vx si vy) în noul grafic, iar parametrul va fi surprins în dinamica acestuia. Rezultând un nou sir de ore exacte ale producerii valorii si distributia spatiala a acestora (vy), se aplica o noua interpolare, care va trasa curba distributiei spatio-temporale a punctelor echipotentiale sub aspectul valorilor date ale parametrului climatic. Functia interpolatoare va evalua valoarea spatiului functie de timp si urmând schema din anexa 8 va rezulta forma izopletei cautate. Aceluiasi vector vx i se pot asocia mai multi vectori vy, bineînteles utilizând identificatori diferiti, care despartiti prin virgula si plasati în fereastra grafica în pozitia specifica, vor determina trasarea mai multor izoplete.
Daca graficul izopletar este mai complicat se recomanda trasarea si scoaterea pe imprimata a fiecarei izoplete în parte, la aceeasi scara, urmând ca reunirea lor într-un tablou unitar sa fie realizata de catre utilizator. În acest mod descris calculatorul nu va accepta o "întoarcere" a unei izoplete, deoarece ar însemna ca unui argument îi corespund doua imagini, ceea ce este exclus din însasi definitia functiei. Aceasta piedica poate fi "aranjata" prin considerarea segmentului de curba ce se suprapune, ca un vector separat, independent supus procedurii de interpolare si trasare, dar care ia valori egale în ambele capete cu cele ale segmentelor limitrofe, întregind astfel desenul. Prin aceasta "jonglare" cu mai multi vectori, care însa definesc una si aceeasi izopleta se pot trasa grafice oricât de complicate.
Fara a mai detalia aici cele redate, avem convingerea ca orice persoana care a înteles modul de utilizare a produsului MathCad din 4.3, va reusi sa adapteze aceste facilitati altor cazuri reale oricât de variate ar fi, fara a întâmpina mari greutati.
CAP. 6 CONCLUZII
Capitolul 5.3. încheie succesiunea logica a programelor care intervin în asistarea studiilor de speoclimatologie. Cartarea merocli-matului de tranzitie prin graficele izopletare constituie ultimul
segment ce va oferi obiectul si totodata instrumentul analizei si interpretarii cazului particular studiat. Calculatorul a intervenit în aceasta lucrare în "munca de jos", oricât de complex, precis si sigur ar actiona, si oricât ar usura si optimiza eficienta muncii cercetatorului. Tot omul este chemat sa gândeasca si sa analizeze rezultatele neînsufletite oferite de acest creier artificial, dar indispensabil. Desigur aplicatiile calculatorului în speoclimatologice nu au fost epuizate. De asemenea utilizarea unor limbaje mai performante sau abordari teoretice si algoritmi mai eficienti pot oricând oferi cai noi de asistare a acestor studii.
7. Bibliografie
1. CRISTEA, V., KALISZ, E., ATHANASIU, I., PÂNOIU, A, Turbo Pascal 6.0, Ed. Teora, Bucuresti, 1993
2. DISSESCU, C. A., LUCA, I., TUDOR, M., DĂBULEANU, M.L., GEORGESCU, D., sOLTUZ. U., Fizici si climatologie agricola, Ed. Didactica si Pedagogica, Bucuresti, 1971
3. HEROVANU, M., Introducere în fizica Atmosferei, Ed. Tehnica, Bucuresti, 1957
4. MORARU, A., FoxBase+ Ghid de utilizare, Ed. Microinformatica, Cluj-Napoca, 1993
5. NEGREA. M., SÂRBU, I., MACREA R., Pestera Polovragi: studiu de clinii, ape, micro-biologie Contributii la cunoasterea carstului, vol.l, Baia Mare, 1993
8. PĂVĂLOIU, I. Rezolvarea ecuatiilor prin interpolare, Ed. Dacia, Cluj-Napoca, 19
7. SCHREIBER E., LIXÂN-DROIU, D., Mathcad - Prezentare si probleme rezolvate, Ed. Tehnica, Bucuresti, 1994
8. SHUMAN, J., Instructor'» Manual to accompany QUATTRO Student Edition McGrow - Hill Publishing Company 1990
9. TIsTEA D., Ghid pentru efectuarea observatiilor microme-teorologice si prelucrarea datelor pentru cartarea microclimatici, Institutul de Meteorologie si Hidrologie, Bucuresti, 1977
10. VLADA, M., POSEA, A., NISTOR, I., CONSTANTINESCU, C, Grafici pe calculator în limbajele Pascal si C, voi. 1 si 2, Ed. Tehnica, Bucuresti, 1992
. ***, Tabele psihrometrice, Institutul de Meteorologie si Hidrologie Bucuresti, 1986
ANEXAI
ÎNREGISTRĂRILE INCLUSE ÎN
BAZA DE DATE DIN CAP. 2
data 1.05.94 ora 19.00; p=687 mm Hg
cod t E e R d td
pO 17.2 19.61 13.99 71.37 5.61 11.96
pi 10.2 12.43 12.14 97.68 0.29 9.83
p2 11.6 13.65 12.45 91.22 1.20 10.20
p3 9.6 11.94 11.16 97.64 0.28 9.23
p4 9.2 11.63 11.07 95.22 0.55 8.46
p5 10.4 12.60 12.60 100.00 0.00 10.38
p6 10.4 12.60 12.02 95.41 0.58 9.68
data 2.05.94 ora 1.00; p=689 mm Hg
pO 11.8 13.83 12.33 89.12 1.50 10.05
pi 8.8 11.31 11.04 97.57 0.27 8.42
p2 8.8 11.31 11.04 97.57 0.27 8.42
p3 8.4 11.01 10.74 97.53 0.27 8.01
p4 8.2 10.86 10.86 100.00 0.00 8.18
p5 10.2 12.43 11.86 95.37 0.57 9.48
p6 9.4 11.78 .22 95.25 0.56 8.66
ora 7.00; p=690 mm
pO 8.0 10.72 10.45 97.50 0.26 7.61
pi 8.4 11.01 10.74 97.53 0.27 8.02
p2 8.2 10.86 10.86100.00 0.00 8.18
p3 8.2 10.86 10.86100.00 0.00 8.18
p4 8.2 10.86 10.59 97.52 0.27 7.82
p5 9.2 11.63 11.63100.00 0.00 9.18
p6 9.2 11.63 11.35 97.59 0.28 8.82
ora 13.00; p=692 mm Hg
pO 6.6 9.74 9.48 97.37 0.26 6.20
pi 8.8 11.31 11.04 97.56 0.27 8.42
p2 9.4 11.78 11.50 97.61 0.28 9.03
p3 8.8 11.32 10.77 95.14 0.55 8.05
p4 8.4 11.01 10.74 97.53 0.27 8.02
p5 9.8 12.11 12.11 100.00 0.00 9.78
p6 9.4 11.78 11.78100.00 0.00 9.38
ora 19.00; p=694 mm Hg
pO 6.0 9.34 9.09 97.30 0.25 5.59
pi 8.6 11.16 10.89 97.54 0.27 8.22
p2 8.8 11.32 11.04 97.56 0.27 8.42
p3 8.4 11.01 10.74 97.53 0.27 8.01
p4 8.2 10.87 10.87100.00 0.00 8.18
p5 9.4 11.78 11.7 00.00 0.00 9.38
p6 9.2 11.63 11.6 00.00 0.00 9.18
ANEXA 2, MENIU PRINCIPAL
set echo off set talk off set headlng off set status off set safety off set scoreboard off set menu off set confirm on clear all clear dlmension m(3,2)
m(l l)= "ACTUALIZARE"
m(2 l)= "LIST RI"
m(3,l)= "IEsIRE"
m(l,2)= " "
m(2.2)= " "
m(3,2)= " "
dlmension 11(2)
11(1)= "VALORI MEDII"
li(2)= "AMPLITUDINI"
dimension ac(3)
ac(l)= "AD UGARE"
ac(2)= "MODIFICARE"
ac{3)= "sTERGERE"
dimension tr(l)
tr(l)= "EXIT"
menu bar m,3
menu l,ac,3
menu 2,1 ,2
menu 3,tr, 1
continua=.t.
i=0
j=o
clear
do while continua
read menu bar to i,j
do case
case i=l .and. j=l
do adspeo
case i=l .and. j=2
do modspeo
case i=l .and. j=
do stspeo
case i=2 .and. j=l
do llspeo
case i=2 and. j=2
do a2speo
case i=3 .and. j=l
continua=.f.
exit
endcase
enddo
set confirm off
set menu on
set scoreboard on
set safety on
set status on
set heading on
set talk on
set echo on
ANEXA 3
AD UGARE DE ARTICOLE LA BAZA DE DATE
CLEAR
USE SPEOCL1
INDEX ON NROBS TO PNROBS
EZ=DATE( )
RES=0
HR=0
Y=SPACE (3)
B0=0
Bl=0
B2=0
B3=0
B4=0
B5=0
B6=0
STORE A' TO A
DO WHILE A='A-
@1,1 TO3,35DOUBLE
V=0
@2,5 SAY "DAŢI NUM RUL
OBSERVAŢIEI" GET V PICTURE
"99"
READ
SEEK V
IFFOUND( )
15 TO 24 40 DOUBLE
20 20 SAY "EROARE"
,20 SAY "OBSERVAŢIA EXISTA"
WAIT""
RELEASE V
ELSE
APPEND BLANK
8,5 SAY "DATA: "GET EZ PICTURE
" @d"
8,45 SAY "PRESIUNEA ": "GET
RES PICTURE "999.99"
10,5 SAY "ORA : "GET HR
PICTURE "99"
10,45 SAY "CODUL :"GET Y
PICTURE "aaa"
12,5 SAY "PO :" GET BO PICTURE
"999.99"
14,5 SAY "PI :" GET Bl PICTURE
"999.99"
16,5 SAY "P2 :" GET B2 PICTURE
"999.99"
18,5 SAY "P3 :" GET B3 PICTURE
"999.99"
20,5 SAY "P4 :" GET B4 PICTURE
"999.99"
22,5 SAY "P5 :" GET B5 PICTURE
"999.99"
24,5 SAY "P6 :" GET B6 PICTURE
"999.99"
READ
REPLACE NROBS WTTH V, DATAZ
WITH EZ, PRESIUNE WITH RES,
ORAWITH
hr cod wrra y, po wrra bo, pi
WITH Bl, P2 WTTH B2, P3 WTTH B3
P4 WITH B4, P5 WITH B5, P6 WTTH
B6
RELEASEZ
ENDIF
CLEAR
18,18 TO 22,65 DOUBLE
20,20 SAY "DACA DORIŢI SA
CONTINUAŢI AP SA I A :" GET A
FUNCTION
"!"
READ
CLEAR
ENDDO
Cercetari Speologice, Voi. i/1996, pag. 70-82
@10 28TO 14,52 DOUBLE
, SAY "TERMINAT
AD UGAREA"
WATT""
USE
CLEAR
RETURN
ANEXA 4
MODIFICA ÎNREGISTRĂRILE DINTR-O BAZA DE DATE SPEOCLIMATOLOGICA
CLEAR
USE SPEOCL1
INDEX ON NROBS TO PNROBS
EZ=DATE()
RES=O
HR=O
Y=SPACE (3)
B0=0
B1=O
B2=0
B3=0
B4=0
B5=0
B6=0
STORE A' TO A
DO WHILE A='A
@1,1TO 3,35 DOUBLE
V=0
@2,5 SAY "DAŢI NUM RUL
OBSERVAŢIEI" GET V PICTURE
"99"
READ
SEEKV
IF FOUND ()
@8,5 SAY "DATA :" GET EZ
PICTURE "@d"
@8,45 SAY "PRESIUNEA :" GET
RES PICTURE "999.99"
@10,5 SAY "ORA :" GET HR
PICTURE "99"
10 45 SAY " CODUL : " GET Y
PICTURE "aaa"
@12,5 SAY "P0: " GET B0 PICTURE
"999.99"
@14 5 SAY "PI: " GET Bl PICTURE
"999.99"
@16,5 SAY "P2: " GET B2 PICTURE
"999.99"
@18,5 SAY "P3: " GET B3 PICTURE
"999.99"
@20,5 SAY "P4: " GET B4 PICTURE
"999.99"
@22,5 SAY "P5: " GET B5 PICTURE
"999.99"
@24,5 SAY "P6: " GET B6 PICTURE
"999.99"
READ
REPLACE DATAZ WITH EZ,
PRESIUNE WITH RES, ORA WITH
HR COD WTTH Y, P0 WITH BO, PI
WITH Bl, P2 WITH B2, P3 WTTH B3,
P4 WITH B4, P5 WITH B5, P6 WTTH
B6
RELEASEV
ELSE
@10, 5 TO 14,40 DOUBLE
, SAY "AC EASTA
OBSERVAŢIE NU EXISTA!"
WATT""
RELEASEV
ENDIF
CLEAR
@18,18 TO 22,62 DOUBLE
@20,20 SAY "DACA DORIŢI SA
CONTINUAŢI AP SA I A: " GET A
FUNCTION "!"
READ
CLEAR
ENDDO
TO 14,52 DOUBLE
12,31 SAY "TERMINAT
MODIFICAREA"
WATT""
USE
CLEAR
RETURN
ANEXA 5
*STERGE ARTICOLE DIN BAZA DE DATE SPEOCLIMATOLOGICA
CLEAR
USE SPEOCL1
INDEX ON NROBS TO PNROBS
STORE D' TO R
STORE A' TO A
DO WHILE A='A'
1,1 TO 3,35 DOUBLE
V=O
2,5 SAY "DAŢI NUM RUL
OBSERVAŢIEI" GET V PICTURE
"99"
READ
SEEKV
IF FOUND ()
8,5 TO 10,60 DOUBLE
9,7 SAY "EsTI SIGUR CA VREI SA
sTERGI OBSERVAŢIA (D/N)?"
GET R FUNCTION "!"
READ
IF R="D"
DELETE
PACK
TO 16,48 DOUBLE
15,10 SAY "ÎNREGISTRAREA A
FOST sTEARSA"
WATT""
RELEASEV
ELSE
RELEASEV
CLEAR
LOOP
ENDIF
ELSE
10,5 TO 14,40 DOUBLE
SAY "AC EASTA
OBSERVAŢIE NU EXISTAI"
WATT""
RELEASEV
ENDIF
CLEAR
18,18 TO 22,62 DOUBLE
20,20 SAY "DACA DORIŢI SA
CONTINUAŢI AP SA I A :" GET A
FUNCTION "!"
READ
CLEAR
ENDDO
10,28 TO 14,52 DOUBLE
12,31 SAY "TERMINAT
sTERGEREA"
WATT""
USE
CLEAR
RETURN
ANEXA 6
LISTEAZ VALORILE MEDII ALE PARAMETRILOR CLIMATICI
CLEAR
USE SPEOCL1
SORTTO SS1 ON NROBS
USESS1
SETTALKOFF
W=0
NRl=0
NR2=0
3,3 SAY "NR. OBSERVAŢIE 1: "
GET NR 1 PICTURE "99"
5,3 SAY "NR. OBSERVAŢIE 2: "
GET NR. 2 PICTURE "99"
READ
CLEAR
LOCATE FOR NROBS=NR1
AVERAGE PO,P1,P2,P3,P4,P5,P6 TO
LO,L1,L2,L3,L4 L5,L6 FOR COD="t"
WHILE NROBS <=NR2
LOCATE FOR NROBS NR1
AVERAGE PO,P1,P2,P3,P4,P5,P6 TO
DO,D1,D2,D3,D4,D5,D6 FOR
COD="et"
WHILE NROBS <=NR2
LOCATE FOR NROBS=NR1 AVERAGE PO,P1,P2,P3,P4,P5,P6 TO AO,A1,A2,A3,A4,A5,A6 FOR COD="ae"
WHILE NROBS <=NR 2
LOCATE FOR NROBS=NR1 AVERAGE PO,P1,P2,P3,P4,P5,P6 TO QO,Q1,Q2,Q3,Q4,Q5,Q6 FOR COD="r"
WHILE NROBS <=NR2
LOCATE FOR NROBS=NR1 AVERAGE PO,P1,P2,P3,P4,P5,P6 TO CO.C1,C2,C3,C4,C5,C6 FOR COD="d"
WHILE NROBS <=NR2
LOCATE FOR NROBS=NR1 AVERAGE PO,P1,P2,P3,P4,P5,P6 TO XO,X1,X2,X3,X4,X5,X6 FOR COD "pr"
WHILE NROBS <=NR2
W+ , 2 SAY "TABEL CU
Cercetari Speologice, tfot. b 1996, pag. 70 82
VALORILE MEDII ALE"
@W+3,5 SAY "PARAMETRILOR
CLIMATICI, IN PERIOADA
CONSIDERATA"
W+5,10 SAY "DE-A LUNGUL
GALERIEI CERCETATE"
@W+7,10SAYT"
@W+7,18SAY"E"
@W+7,24 SAY "E-act"
@W+7,34 SAY "R"
OW+7 43 SAY "D"
W+7 50 SAY "PR"
OW+8.1 SAY REPLICATE ('_', 55)
@W+ 0 3 SAY "PO"
@W+10,8 SAY LO PICTURE "99.99"
W+ 0, 6 SAY DO PICTURE "99.99"
@W+ 0,24 SAY AO PICTURE "99.99"
@W+ 0,32 SAY QO PICTURE
"999.99"
@W+ 0, SAY CO PICTURE "99.99"
@W+ 0,49 SAYXO PICTURE "99.99"
@W+11,3SAY"P1"
@W+11,8 SAY LI PICTURE "99.99"
@W+11, 6 SAY Dl PICTURE "99.99"
@W+ 1,24 SAY Al PICTURE "99.99"
@W+ 1,32 SAY Ql PICTURE
"999.99"
@W+11,41 SAY CI PICTURE "99.99"
@W+ 1,49 SAY XI PICTURE "99.99"
@W+ 2,3 SAY "P2"
@W+12,8 SAY L2 PICTURE "99.99"
W+ 2, 6 SAY D2 PICTURE "99.99"
@W+ 2,24 SAY A2 PICTURE "99.99"
@W+ 2,32 SAY Q2 PICTURE
"999.99"
W+ 2,4 SAY C2 PICTURE "99.99"
@W+ 2,49 SAYX2 PICTURE "99.99"
@W+ 3,3 SAY "P3"
W+13,8 SAY L3 PICTURE "99.99"
@W+13,16 SAY D3 PICTURE "99.99"
@W+ 3,24 SAY A3 PICTURE "99.99"
@W+ 3,32 SAY Q3 PICTURE
"999.99"
@W+13,41 SAY C3 PICTURE "99.99"
@W+13,49 SAYX3 PICTURE "99.99"
@W+ 4,3 SAY "P4"
@W+14,8 SAY L4 PICTURE "99.99"
@W+14,16 SAY D4 PICTURE "99.99"
@W+ 4,24 SAY A4 PICTURE "99.99"
@W+ 4,32 SAY Q4 PICTURE
"999.99"
W+ 4,4 SAY C4 PICTURE "99.99"
@W+ 4,49 SAYX4 PICTURE "99.99"
@W+ 5,3 SAY "P5"
W+15,8 SAY L5 PICTURE "99.99"
@W+15, 6 SAY D5 PICTURE "99.99"
@W+ 5,24 SAY A5 PICTURE "99.99"
W+ 5,32 SAY Q5 PICTURE
"999.99"
@W+15,41 SAY C5 PICTURE "99.99"
@W+ 5,49 SAYX5 PICTURE "99.99"
@W+16,3SAY"P6"
@W+16,8 SAY L6 PICTURE "99.99"
@W+16,16 SAY D6 PICTURE "99.99"
@W+ 6,24 SAY A6 PICTURE "99.99"
@W+ 6,32 SAY Q6 PICTURE
"999.99"
@W+16,41 SAY C6 PICTURE "99.99"
@W+ 6,49 SAYX6 PICTURE "99.99"
@W+17,1 SAY REPLICATE ( _', 55)
WATT""
RELEASE ALL
CLEAR
USE
USE
RETURN
ANEXA 7
CALCULEAZ sI AFIsEAZ AMPLITUDINILE OSCILA IILOR TERMICE
CLEAR
SETTALKOFF
USESPEOCL1
W=0
NRl=0
NR2=0
@3,3 SAY "NR OBSERVAŢIE 1:" GET
NR1 PICTURE "99"
@5,3 SAY "NR OBSERVAŢIE 2:" GET
NR2 PICTURE "99"
READ
CLEAR
SORT TO TEX1 ON NROBS >= NR1 .
AND. NROBS <=NR2
USE
USETEX1
SORT TO TEX2 ON PO FOR COD="t"
FIELDS PO
SORT TO TEX3 ON PI FOR COD="t"
FIELDS PI
SORT TO TEX4 ON P2 FOR COD="t"
FIELDS P2
SORT TO TEX5 ON P3 FOR COD="t"
FIELDS P3
SORT TO TEX6 ON P4 FOR COD="t"
FIELDS P4
SORT TO TEX7 ON P5 FOR COD="t"
FIELDS P5
SORT TO TEX8 ON P6 FOR COD="t"
FIELDS P6
USE
USETEX2 STOREP0TOT01 GOBOTTOM STORE PO TO T02 USE
USETEX3 STORE PITO ŢII GOBOTTOM
STORE PI TOT12
USE
USETEX4
STORE P2TOT21
GOBOTTOM
STORE P2 TO T22
USE
USE TEX5
STORE P3TOT31
GOBOTTOM
STORE P3 TO T32
USE
USETEX6
STORE P4TOT41
GOBOTTOM
STORE P4 TO T42
USE
USE TEX7
STORE P5TOT51
GOBOTTOM
STORE P5 TO T52
USE
USE TEX8
STORE P6TOT61
GOBOTTOM
STORE P6 TO T62
USE
A=T02-T01
B=T12-T11
C=T22-T21
D=T32-T31
F=T42-T41
G=T52-T51
J=T62-T61
@W+1,16 SAY "TABEL CU
AMPLITUDINEA VARIAŢIEI"
W+3,10 SAY "VALORILOR
TERMICE, IN PERIOADA
CONSIDERATA"
@W+5,15 SAY "DE-A LUNGUL
GALERIEI CERCETATE"
@W+7,5 SAY "PO"
@W+7,13SAY"P1"
@W+7,23 SAY "P2"
@W+7,31 SAY"P3"
W+7,39 SAY "P4"
@W+7,47 SAY "P5"
W+7,55 SAY "P6"
@W+9,1 SAY REPLICATE ('_', 60)
@W+12,4 SAY A PICTURE "99.99"
@W+12,12 SAY B PICTURE "99.99"
@W+ 2,20 SAY C PICTURE "99.99"
@W+ 2,28 SAY D PICTURE "99.99"
@W+ 2,36 SAY F PICTURE "99.99"
@W+ 2,44 SAY G PICTURE "99.99"
@W+ 2,54 SAY J PICTURE "99.99"
@W+14,1 SAY REPLICATE ("_'. 60)
WAIT""
RELEASE ALL
CLEAR
USE
RETURN
Cercetari Speologice, Hol. 6 1996, pag. 70-82
ORIGIN -l n:=ll i: =1 n
vx := vy :=
i i
ANEXA 8
s := cspline (vx, vy)
fix) := Interp (s, vx, vy, x)
t:= 0.0,0.1 ..227.23
ANEXA 9
i n J : = 1 n
^==n**"[i .-j. vxj-vxj.i]
w.:= -
Uz):=
vyi
w,
z-vx
fz-vx
k := 1 ..452
pas := 0.5038
zk := 0.01 + (k- 1) pas
TABEL NR.1 VALORILE MEDD ALE PARAMETRILOR CLIMATICI
TEMPERATURA |
TENS. MAXIMA |
TENS. ACTUALA |
UMEZEALA |
DEFICIT |
PUNCT ROUA |
|
(°C) |
hPa) |
(hPa) |
(hPa) |
(°C) |
||
PO | ||||||
PI | ||||||
P2 | ||||||
P3 | ||||||
P4 | ||||||
P5 | ||||||
P6 |
TABEL NR. 2 AMPLITUDINILE OSCILAŢIILOR PARAMETRILOR CLIMATICI
TEMPERATURA |
TENS. MAXIMA |
TENS. ACTUALA |
UMEZEALA |
DEFICIT |
PUNCT ROUA |
|
(°C) |
(hPa) |
(hPa) |
(hPa) |
(°C) |
||
PO | ||||||
PI | ||||||
P2 | ||||||
P3 | ||||||
P4 | ||||||
P5 | ||||||
P6 |
|