BSc Thesis / Πτυχιακη διατριβη
-
Upload
babis-paraskevas -
Category
Documents
-
view
261 -
download
13
description
Transcript of BSc Thesis / Πτυχιακη διατριβη
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΓΕΩΠΟΝΙΑΣ
ΤΟΜΕΑΣ ΕΓΓΕΙΩΝ ΒΕΛΤΙΩΣΕΩΝ ΕΔΑΦΟΛΟΓΙΑΣ ΚΑΙ ΓΕΩΡΓΙΚΗΣ ΜΗΧΑΝΙΚΗΣΕΡΓΑΣΤΗΡΙΟ ΓΕΝΙΚΗΣ ΚΑΙ ΓΕΩΡΓΙΚΗΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΒΕΛΤΙΩΣΕΩΝ
θΕΣΣΑΛΟΝΙΚΗ 2005
ΓΡΑΦΙΚΗ ΑΠΕΙΚΟΝΙΣΗ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ SWBACROS
ΣΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ MATLAB
liquid
liquid
liquidliquidliquid / |lIkwId /n [C,U] a substance that flows freely eg water , milk or oil
ΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗΠΑΡΑΣΚΕΥΑΣ ΧΑΡΑΛΑΜΠΟΣ
ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣΜΠΑΜΠΑΤΖΙΜΟΠΟΥΛΟΣ ΧΡΗΣΤΟΣ
ΚΑΘΗΓΗΤΗΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ
ΤΜΗΜΑ ΓΕΩΠΟΝΙΑΣ ΤΟΜΕΑΣ ΕΓΓΕΙΩΝ ΒΕΛΤΙΩΣΕΩΝ ΕΔΑΦΟΛΟΓΙΑΣ ΚΑΙ ΓΕΩΡΓΙΚΗΣ ΜΗΧΑΝΙΚΗΣ
ΕΡΓΑΣΤΗΡΙΟ ΓΕΝΙΚΗΣ ΚΑΙ ΓΕΩΡΓΙΚΗΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΒΕΛΤΙΩΣΕΩΝ
ΓΡΑΦΙΚΗ ΑΠΕΙΚΟΝΙΣΗ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ SWBACROS ΣΤΟ
ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ MATLAB
liquid / |lIkwId /n [C,U] a substance that flows freely eg water , milk or oil
ΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ ΠΑΡΑΣΚΕΥΑΣ ΧΑΡΑΛΑΜΠΟΣ
ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΜΠΑΜΠΑΤΖΙΜΟΠΟΥΛΟΣ ΧΡΗΣΤΟΣ
ΚΑΘΗΓΗΤΗΣ Α.Π.Θ.
ΘΕΣΣΑΛΟΝΙΚΗ 2005
στους γονείς μου
στο μέτωπο σου μια θάλασσα αναπαύεται . του φόβου οι σταγόνες, δελφίνια που παίζουν μέρα με τη μέρα δυναμώνει το κύμα της, αναριγά, τα αρμυρίκια δαγκώνει
καταλαβαίνει πως ήρθε η ώρα της, ήρθε η ώρα να πει την αλήθεια «νυν απολύεις τον δούλο σου, δέσποτα» και σε σκεπάζει, όπως η μάνα τη νύχτα.
θανάσης παπακωνσταντίνου, liquid
Πρόλογος i
Πρόλογος
Το υδατικό ισοζύγιο της ακόρεστης ζώνης του εδάφους αποτελεί σημαντικό
αντικείμενο μελέτης για το γεωπόνο των εγγείων βελτιώσεων. Με την ακριβέστερη
κατανόηση των φυσικών διαδικασιών που το επηρεάζουν, ο γεωπόνος των εγγείων
βελτιώσεων θα μπορεί να παρέχει τις καταλληλότερες συμβουλές στον παραγωγό με
σκοπό τη μεγιστοποίηση της παραγωγής. Επίσης, η μελέτη του υδατικού ισοζυγίου
συμβάλλει και στην ορθολογική διαχείριση των υδατικών πόρων, οι διαθέσιμες
ποσότητες των οποίων βρίσκονται παγκοσμίως σε καθοδική πορεία. Αυτό οφείλεται
στην αλματώδη αύξηση της ζήτησης του νερού για οικιακή, βιομηχανική και
αρδευτική χρήση.
Οι αριθμητικές λύσεις της εξίσωσης κίνησης του νερού στην ακόρεστη ζώνη
του εδάφους, οι οποίες ξεκίνησαν να χρησιμοποιούνται τη δεκαετία του 60, έδωσαν
τη θέση τους σε πιο εξελιγμένα μαθηματικά μοντέλα. Τα μοντέλα αυτά καλούνται να
περιγράψουν το υδατικό ισοζύγιο του εδάφους λαμβάνοντας υπόψη διάφορες
παραμέτρους εισόδου όπως αρδεύσεις, βροχοπτώσεις, κλιματικές συνθήκες και
χαρακτηριστικά του εδάφους.
Το μαθηματικό μοντέλο SWBACROS, το οποίο αναπτύχθηκε από τον
καθηγητή Χρήστο Μπαμπατζιμόπουλο, βασίζεται στην αριθμητική επίλυση της
εξίσωσης Richards. Έχει τη δυνατότητα του υπολογισμού με μεγάλη ακρίβεια του
υδατικού ισοζυγίου του εδάφους, παρέχοντας τις βασικές πληροφορίες που
απαιτούνται για τον προγραμματισμό των αρδεύσεων. Ειδικότερα, λαμβάνει υπόψη
την ποσότητα του νερού που εισάγεται στο έδαφος με άρδευση ή βροχόπτωση και
υπολογίζει, μεταξύ των άλλων, την υγρασία σε σχέση με το βάθος κατά τη διάρκεια
της καλλιεργητικής περιόδου, καθώς και τη βαθιά διήθηση ή την προς τα επάνω
κίνηση του εδαφικού νερού από το ριζικό σύστημα των φυτών.
Η εργασία αυτή πραγματοποιήθηκε στα πλαίσια του προπτυχιακού κύκλου
σπουδών της κατεύθυνσης Εγγείων Βελτιώσεων, Εδαφολογίας και Γεωργικής
Μηχανικής του Τμήματος Γεωπονίας της Σχολής Γεωτεχνικών Επιστημών του
Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης.
Πρόλογος ii
Σκοπός της εργασίας αυτής ήταν η ανάπτυξη ενός προγράμματος
ηλεκτρονικού υπολογιστή στο περιβάλλον της MATLAB με τη βοήθεια του οποίου
γίνεται η γραφική απεικόνιση των αποτελεσμάτων του μαθηματικού μοντέλου
SWBACROS, καθώς και η εισαγωγή δεδομένων σε αυτό.
Η διατριβή αυτή έχει την παρακάτω διάρθρωση :
Στο πρώτο κεφάλαιο παρουσιάζεται μία ανασκόπηση της σύγχρονης
βιβλιογραφίας που υπάρχει γύρω από τα μαθηματικά μοντέλα.
Στο δεύτερο κεφάλαιο γίνεται μία παρουσία της μαθηματικής προσομοίωσης
της κίνησης του εδαφικού νερού καθώς και μία αναλυτική αναφορά στο μαθηματικό
μοντέλο SWBACROS.
Το τρίτο κεφάλαιο χωρίζεται σε δύο μέρη. Στο πρώτο μέρος γίνεται μια
σύντομη αναφορά στο περιβάλλον της MATLAB, στις εντολές της και στη
δημιουργία εφαρμογών με γραφικό περιβάλλον εργασίας (GUI εφαρμογές). Στο
δεύτερο μέρος παρουσιάζεται το πρόγραμμα LIQUID και γίνεται εκτενής αναφορά
στο κάθε βήμα του προγράμματος.
Αμέσως μετά παρουσιάζεται, η βιβλιογραφία που χρησιμοποιήθηκε για την
συγγραφή της εργασίας αυτής και το παράρτημα με τον πηγαίο κώδικα και τα αρχεία
δεδομένων του προγράμματος LIQUID κάθως και ένα παράδειγμα το οποίο
περιγράφει τη σύνδεση μεταξύ MATLAB και Visual Fortran.
Η εργασία αυτή γράφτηκε σε δύο υπολογιστές. Σε έναν Pentium 4 1.7 GHz
και στο φορητό υπολογιστή του αδερφού μου Αργύρη, τον οποίο ευχαριστώ πολύ
για την παραχώρηση του, ένα Pentium 4 3.0 GHz. Το κείμενο αυτό είναι γραμμένο
στο Microsoft Word XP, ενώ το LIQUID δημιουργήθηκε στο περιβάλλον της
MATLAB 7 (R14). Οι παρεμβάσεις στο κώδικα του SWBACROS έγιναν στη
DIGITAL Visual Fortran Professional Edition v6.0a και τα capture των διάφορων
εικόνων του LIQUID και της MATLAB έγιναν με τη χρήση του προγράμματος
TechSmith SnagΙt v7. Oι μαθηματικές εξισώσεις έγιναν με το πρόγραμμα
MathType v5.2. Τέλος το εξώφυλλο της εργασίας αυτής σχεδιάστηκε με το
πρόγραμμα Adobe Illustrator CS.
Πρόλογος iii
Η εργασία αυτή ολοκληρώθηκε με τις υποδείξεις του επιβλέποντα καθηγητή κ.
Χρήστου Μπαμπατζιμόπουλου, του Εργαστηρίου Γενικής και Γεωργικής
Υδραυλικής και Βελτιώσεων, τον οποίο ευχαριστώ θερμά τόσο για το ενδιαφέρον
θέμα διατριβής που μου ανάθεσε – αναπτερώνοντας τη θέληση μου για ακαδημαϊκή
αναζήτηση – όσο και για τη συνεχή βοήθεια και στήριξη που χρειάστηκα για να την
ολοκληρώσω.
Ακόμη, ιδιαίτερες ευχαριστίες θα ήθελα να δώσω στον κ. Αριστοτέλη
Μπαμπατζιμόπουλο, διδακτορικό φοιτητή του πανεπιστημίου του Michigan, όχι
μόνο για την ιδέα πραγματοποίησης της εργασίας αυτής στο περιβάλλον της
MATLAB αλλά και για τις συμβουλές και τη βοήθεια που μου παρείχε κατά τη
διάρκεια της εκπόνησής της.
Θα ήθελα να ευχαριστήσω ακόμη τον κ. Κωνσταντίνο Παπαρρίζο, καθηγητή
του Τμήματος Εφαρμοσμένης Πληροφορικής του Πανεπιστήμιου Μακεδονίας και
τον κ. Άγγελο Σιφαλέρα υποψήφιο διδάκτορα του τμήματος Εφαρμοσμένης
Πληροφορικής του Πανεπιστημίου Μακεδονίας, καθώς η προθυμία τους και η
βοήθεια που μου παρείχαν χωρίς καμία οπισθοβουλία συνέβαλλαν σημαντικά στη
διεκπεραίωση της παρούσας διατριβής. Τον κ. Χαράλαμπο Γεωργούση,
επιστημονικό συνεργάτη του Εργαστηρίου Γενικής και Γεωργικής Υδραυλικής και
Βελτιώσεων, τον κ. Πανταζή Γεωργίου, μέλος Ειδικού και Εργαστηριακού
Διδακτικού Προσωπικού του Εργαστηρίου Γενικής και Γεωργικής Υδραυλικής και
Βελτιώσεων και τον κ. Βασίλη Λίτσκα, μεταπτυχιακό φοιτητή του Τμήματος
Γεωπονίας, για τις συμβουλές που μου παρείχαν κατά τη διάρκεια της εκπόνησης της
εργασίας αυτής. Όλους τους διδάσκοντες της κατεύθυνσης Εγγείων Βελτιώσεων,
Εδαφολογίας και Γεωργικής Μηχανικής για τις γνώσεις που μου πρόσφεραν κατά τη
διάρκεια της φοίτησης μου στο πρόγραμμα των προπτυχιακών σπουδών του
Τμήματος Γεωπονίας. Ευκαιρίας δοθείσης, – αν και δε συνέβαλαν άμεσα στη
εκπόνηση της εργασίας αυτής – θα ήθελα να ευχαριστήσω τους καθηγητές μου στο
φροντιστήριο πληροφορικής Data Station, όχι τόσο για τις πολλές γνώσεις και
εμπειρίες που μου προσέφεραν αλλά γιατί έκαναν πάρα πολλούς ανθρώπους, μαζί και
εμένα να αγαπήσουν τον προγραμματισμό.
Πρόλογος iv
Τέλος, θα ήταν αδύνατο να μην ευχαριστήσω του γονείς μου, που όλα τα
χρόνια της ζωής μου με στηρίζουν με όλες τους τις δυνάμεις.
Θεσσαλονίκη, Σεπτέμβριος 2005
Χαράλαμπος Γ. Παρασκευάς
Περιεχόμενα v
Κεφάλαιο 1 Εισαγωγή ..................................................................................................1 1.1 Γενικά ......................................................................................................................................... 1 1.2 Ανασκόπηση βιβλιογραφίας..................................................................................................... 2 Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού ......................9 2.1 Εξίσωση Richards ..................................................................................................................... 9 2.1.1 Περιγραφή της εξίσωσης Richards .................................................................................... 9 2.1.2 Περιγραφή του όρου S(h).................................................................................................10 2.1.2.1 Περιγραφή του όρου Smax............................................................................................11 2.1.2.2 Περιγραφή του όρου α(h)............................................................................................13
2.1.3 Περιγραφή της ακόρεστης υδραυλικής αγωγιμότητας και της υδραυλικής χωρητικότητας του εδάφους.......................................................................................................17
2.2 Το μαθηματικό μοντέλο SWBACROS................................................................................18 2.2.1 Γενικά ..................................................................................................................................18 2.2.2 Αριθμητική επίλυση ...........................................................................................................19 2.2.3 Οριακές συνθήκες ..............................................................................................................23 2.2.3.1 Επάνω οριακή συνθήκη................................................................................................23 2.2.3.2 Κάτω οριακές συνθήκες ...............................................................................................25
2.3 Επίλυση συστήματος εξισώσεων με τριδιαγωνικό σύστημα συντελεστών ........................30 2.4 Δομή SWBACROS................................................................................................................32 Κεφάλαιο 3 LIQUID.................................................................................................38 3.1 Περί MATLAB.......................................................................................................................38 3.1.1 Εισαγωγικά .........................................................................................................................38 3.1.2 Το περιβάλλον της MATLAB .........................................................................................38 3.1.3 Δημιουργία GUI εφαρμογών ...........................................................................................41 3.1.4 Ανάλυση εντολών MATLAB που χρησιμοποιούνται στο κώδικα του LIQUID.......43
3.2 Περί LIQUID.........................................................................................................................54 3.2.1 Γενικά – Δομή LIQUID ..................................................................................................54 3.2.2 Ανάλυση βημάτων LIQUID ............................................................................................57 3.2.2.1 Βήμα 1ο (liquid.m)........................................................................................................57 3.2.2.2 Βήμα 2ο (LIQUIDstep2.m)........................................................................................58 3.2.2.3 Βήμα 3ο (LIQUIDstep3.m)........................................................................................63 3.2.2.4 Βήμα 4ο (LIQUIDstep4.m)........................................................................................66 3.2.2.5 Βήμα 5ο (LIQUIDstep5.m)........................................................................................69 3.2.2.6 Μενού LIQUID (LIQUIDmenu.m).........................................................................72 3.2.2.6.1 Διαθέσιμες γραφικές παραστάσεις .........................................................................75 3.2.2.6.2 Hydraulic conductivity (m/day) of unsaturated soil per depth (Υδραυλική αγωγιμότητα του εδάφους (m/day) σε σχέση με το βάθος) ..............................................78 3.2.2.6.3 Negative pressure (m) of the soil water per depth (Αρνητική πίεση (m) του εδαφικού νερού σε σχέση με το βάθος) ................................................................................79 3.2.2.6.4 Initial moisture per depth (Αρχική υγρασία του εδάφους σε σχέση με το βάθος)........................................................................................................................................80 3.2.2.6.5 Initial Soil Profile data : 3 in one plots................................................................81 3.2.2.6.6 Soil cover (0.0-1.0) per day (Εδαφοκάλυψη σε σχέση με την ημέρα του έτους)83 3.2.2.6.7 Root depth (m) per day (Βάθος ριζικού συστήματος (m) σε σχέση με την ημέρα του έτους)......................................................................................................................84 3.2.2.6.8 Leaf Area Index per day (Δείκτης φυλλικής επιφάνειας σε σχέση με την ημέρα του έτους)..................................................................................................................................85 3.2.2.6.9 Minimum pressure (m) per day (Ελάχιστη πίεση (m) εδαφικού νερού)..........86
Περιεχόμενα vi
3.2.2.6.10 Soil Cover, Root Depth, Leaf Area Index, Minimum Pressure : 4 in one (4 plots) .........................................................................................................................................87 3.2.2.6.11 Water content (cm) of the soil profile at the end of day per day (Ποσότητα εδαφικού νερού (cm) στο τέλος της ημέρας σε σχέση με την ημέρα του έτους) .............89 3.2.2.6.12 Potential and actual evaporation (cm) per day (Δυναμική και πραγματική εξάτμιση (cm) από την επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους) ........90 3.2.2.6.13 Potential and actual transpiration (cm) per day (Δυναμική και πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους) ................................................................92 3.2.2.6.14 Precipitation/irrigation and intercepted rain (cm) per day (Βροχόπτωση / άρδευση και υδατοσυγκράτηση (cm) σε σχέση με την ημέρα του έτους) ........................93 3.2.2.6.15 Flux through top and bottom boundary (cm) per day (Ροή δια μέσου το επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα του έτους) .................................94 3.2.2.6.16 Water balance results : 5 in one (6 plots)..........................................................96 3.2.2.6.17 Incremental water balance error (Αυξητικό λάθος υδατικού ισοζυγίου) .......98 3.2.2.6.18 Cumulative water balance error (Αθροιστικό λάθος υδατικού ισοζυγίου) ....99 3.2.2.6.19 Water balance error : 2 in one (2 plots) ..........................................................100 3.2.2.6.20 Cum. precipitation/irrigation (cm) per day (Αθροιστική βροχόπτωση / άρδευση (cm) σε σχέση με την ημέρα του έτους) .............................................................102 3.2.2.6.21 Cum. potential and actual transpiration (cm) per day (Αθροιστική δυναμική και πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους) ..................................103 3.2.2.6.22 Cum. potential and actual evaporation (cm) per day (Αθροιστική δυναμική και πραγματική εξάτμιση (cm) από την επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους)................................................................................................................................104 3.2.2.6.23 Cum. flux through top and bottom boundary (cm) per day (Αθροιστική ροή δια μέσου το επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα του έτους)106 3.2.2.6.24 Cum. water balance results : 4 in one (5 plots)..............................................107 3.2.2.6.25 Potential evapotranspiration (mm/day) per day (Δυναμική εξατμισοδιαπνοή (mm/day) σε σχέση με την ημέρα του έτους) ...................................................................109 3.2.2.6.26 Reference crop evapotranspiration (mm/day) per day (Εξατμισοδιαπνοή αναφοράς (mm/day) σε σχέση με την ημέρα του έτους) .................................................110 3.2.2.6.27 Evapotranspiration : 2 in one (2 plots) ...........................................................111 3.2.2.6.28 Evapotranspiration : 2 in one (1 plot).............................................................113 3.2.2.6.29 Water content profile (3D) (Τρισδιάστατο προφίλ περιεχόμενης υγρασίας)114 3.2.2.6.30 Water content profiles at : ΗΜ/ΝΙΕΣ (Προφίλ περιεχόμενης υγρασίας σε συγκεκριμένες ημερομηνίες) ................................................................................................116
3.2.3 Μεταβλητές LIQUID .....................................................................................................119 3.2.4 Παρεμβάσεις LIQUID στον κώδικα του SWBACROS ............................................129 3.2.5 Αρχεία και εγκατάσταση του LIQUID ........................................................................135 3.2.6 Εξαγωγή – εκτύπωση γραφικών παραστάσεων.............................................................136 3.2.7 MATLAB Compiler .......................................................................................................140 Βιβλιογραφία ........................................................................................................... 146 Παράρτημα Ι .......................................................................................................... 156 Παράδειγμα σύνδεσης MATLAB και FORTRAN................................................................156 Παράρτημα ΙΙ ......................................................................................................... 160 Κώδικας των αρχείων του LIQUID (liquid.m, LIQUIDstep2.m, LIQUIDstep3.m, LIQUIDstep4.m, LIQUIDstep5.m και LIQUIDmenu.m) και τα αρχεία δεδομένων ....160
Κεφάλαιο 1 Εισαγωγή 1
Κεφάλαιο 1 Εισαγωγή
1.1 Γενικά
Η περιγραφή και η προσομοίωση της κίνησης του νερού στο σύστημα έδαφος
- φυτό - ατμόσφαιρα, είναι το αντικείμενο ενός μεγάλου αριθμού εργασιών κατά την
προηγούμενη δεκαετία. Το γεγονός αυτό έχει άμεση σχέση με την ανάγκη να δοθούν
λύσεις σε προβλήματα που αναφέρονται στον ορθολογικό προγραμματισμό των
αρδεύσεων, στον καλύτερο σχεδιασμό των στραγγίσεων, στην πρόβλεψη της τύχης
των αγροχημικών που εφαρμόζονται στο έδαφος, στην πρόβλεψη τους ύψους της
παραγωγής μιας καλλιέργειας καθώς και σε ένα πλήθος άλλων προβλημάτων
γενικότερης γεωργικής και περιβαλλοντικής διαχείρισης. Η δημιουργία όλων αυτών
των αναγκών και προβλημάτων οφείλεται στους διαρκώς αυξανόμενους ρυθμούς
εντατικοποίησης της γεωργίας. Δεδομένου ότι τα υδάτινα αποθέματα δεν είναι
ανεξάντλητα, ενώ ήδη παρατηρείται σε μεγάλο βαθμό ποιοτική υποβάθμιση των
χαρακτηριστικών τους, γίνεται φανερή η σπουδαιότητα της ανάπτυξης μεθόδων και
εργαλείων με τα οποία θα παρακολουθούνται και θα προβλέπονται οι επιπτώσεις των
ανθρωπογενών παρεμβάσεων στο περιβάλλον.
Τα παραπάνω προβλήματα επέβαλαν την ανάπτυξη μαθηματικών μοντέλων,
τα οποία αποτελούν σήμερα διεθνώς μια πολύ συνηθισμένη πρακτική για τον
ορθολογικό προγραμματισμό των αρδεύσεων και τον υπολογισμό σωστών πρακτικών
διαχείρισης του αρδευτικού νερού. Τα μοντέλα αυτά βασίζονται στην περιγραφή της
κίνησης του νερού του εδάφους με μαθηματικές εξισώσεις κάτω από διάφορες
συνθήκες πρόσληψης νερού με άρδευση, βροχόπτωση κ.ά. και απώλειας με εξάτμιση,
βαθιά διήθηση κ.ά. λαμβάνοντας υπόψη όλα τα χαρακτηριστικά του εδάφους.
Ωστόσο οι σχετικές δυνατότητες των υπαρχόντων μοντέλων καθώς και η
αξιοπιστία των αποτελεσμάτων τους απασχολούν ακόμα τους επιστήμονες. Αυτό
οφείλεται κυρίως στη μη διαθεσιμότητα κατάλληλων δεδομένων για την επαλήθευση
των μοντέλων και στην ανεπάρκεια απεικόνισης τους, όσον αφορά τις
αλληλεπιδράσεις και τις διεργασίες μεταξύ, εδάφους, νερού, φυτού και ατμόσφαιρας.
Κεφάλαιο 1 Εισαγωγή 2
Για αυτό το λόγο θα πρέπει να γίνει μια ευρεία δοκιμή και επαλήθευση των μοντέλων
υδατικής ροής πριν αυτά υιοθετηθούν για γεωργικές και περιβαλλοντικές εφαρμογές.
Η χρησιμοποίηση της δυνατότητας γραφικής απεικόνισης των δεδομένων και
των αποτελεσμάτων από τους υπολογιστές καθιστά πιο εύχρηστα τα μοντέλα, αφού
βοηθά στην εύκολη ανάλυση των αποτελεσμάτων και την ασφαλέστερη εξαγωγή
συμπερασμάτων.
1.2 Ανασκόπηση βιβλιογραφίας
Η περιγραφή της κίνησης του νερού μέσα στο έδαφος και κατά συνέπεια το
υγρασιακό καθεστώς της εδαφικής κατατομής, επιτυγχάνεται μέσω της εξίσωσης του
Richards. Η έντονη μη γραμμικότητα της εξίσωσης του Richards οφείλεται στο
γεγονός ότι τόσο η ακόρεστη υδραυλική αγωγιμότητα όσο και η εδαφική τάση είναι
συναρτήσεις της περιεχόμενης στο έδαφος υγρασίας. Αναλυτικές λύσεις της εξίσωσης
αυτής είναι δυνατές μόνο κάτω από εξιδανικευμένες συνθήκες. Ανασκόπηση
αναλυτικών λύσεων της εξίσωσης, κάτω από εξιδανικευμένες συνθήκες γίνεται, πέραν
των άλλων, από τον Αντωνόπουλο (1988) και τους Feddes et al. (1988).
Η ραγδαία ανάπτυξη των αριθμητικών μεθόδων, συνάρτηση της αντίστοιχης
ανάπτυξης στο χώρο της επιστήμης των υπολογιστών και της πάγιας ανάγκης για την
αντιμετώπιση προβλημάτων κάτω από φυσικές συνθήκες, απλούστευσε τη διαδικασία
της επίλυσης της εξίσωσης του Richards. Οι δύο κυρίαρχες χρησιμοποιούμενες
αριθμητικές μέθοδοι είναι αυτή των πεπερασμένων στοιχείων και αυτή των
πεπερασμένων διαφορών. Μερικές λύσεις της εξίσωσης του Richards με τη μέθοδο
των πεπερασμένων στοιχείων δίνονται από τους Bruch and Zyvoloski (1973),
Neuman (1973), Tzimopoulos (1978), Van Genuchten (1978), Huyakorn et al.
(1984), Khaleel and Yeh (1985), Kaluarachi and Parker (1987), Αντωνόπουλος
(1988), Feddes et al. (1988), Marino and Tracy (1988), Antonopoulos (1993),
Antonopoulos (1994).
Η αριθμητική μέθοδος των πεπερασμένων διαφορών είναι αυτή, που
χρησιμοποιείται κυρίως στη μελέτη της ακόρεστης ροής στο έδαφος (Nimah and
Κεφάλαιο 1 Εισαγωγή 3
Hanks, 1973 a, b, Feddes et al., 1974, Belmans et al., 1983, Wasseling et al., 1989,
Wagenet and Hutson, 1989, Govindaraju and Kavvas, 1992). Την μέθοδο αυτή
χρησιμοποιεί και το μοντέλο SWBACROS (Babajimopoulos, 1995). Είναι
σημαντικό να τονιστεί ότι η αριθμητική μέθοδος των πεπερασμένων διαφορών
υπερέχει συγκριτικά αυτής των πεπερασμένων στοιχείων όσο αφορά τη μελέτη της
κίνησης του νερού στην ακόρεστη ζώνη του εδάφους (Babajimopoulos, 1991).
Η αριθμητική επίλυση της εξίσωσης Richards παρουσιάζεται στη
βιβλιογραφία με δύο μορφές. Στην πρώτη χωρίς να λαμβάνεται υπ’ όψη η πρόσληψη
του νερού από τις ρίζες του φυτού και στη δεύτερη συμπεριλαμβάνοντας και το
φαινόμενο της πρόσληψης. Χαρακτηριστικές εργασίες της πρώτης μορφής είναι οι
εργασίες των Haverkamp et al. (1977), De Jong and Cameron (1979), Higuchi
(1984), Babajimopoulos (1991). Στην κατηγορία αυτή μπορούμε να κατατάξουμε
και την εργασία των Terzidis and Babajimopoulos (1987) όπου το εδαφικό προφίλ
χωρίζεται σε δύο ζώνες : στη ζώνη που αναπτύσσεται το ριζικό σύστημα του φυτού
και στη ζώνη που εκτείνεται κάτω από αυτή. Στην πρώτη ζώνη υπολογίζεται μία μέση
υγρασία χρησιμοποιώντας όλους τους όρους που υπεισέρχονται στην εξίσωση του
υδατικού ισοζυγίου και στη συνέχεια η υγρασία αυτή χρησιμοποιείται ως οριακή
συνθήκη για την αριθμητική επίλυση της εξίσωσης Richards στη δεύτερη ζώνη.
Στη δεύτερη μορφή η πρόσληψη νερού από τη ρίζα υπεισέρχεται στην
εξίσωση του Richards μέσω ενός μαθηματικού όρου που ονομάζεται όρος
πρόσληψης (Sink term ή Plant Root Extraction Term). Από τις πρώτες εργασίες
που συναντούμε αυτόν τον όρο είναι των Whisler et al. (1969), Molz and Remson
(1970), Nimah and Hanks (1973a) and (1973b), Feddes et al. (1974) και Rowse et
al. (1978).
Σταθμό αποτέλεσε η εργασία των Feddes et al. (1978), όπου παρουσιάζεται
το μοντέλο SWATR (Soil Water Actual Transpiration), το οποίο βασίζεται στην
αριθμητική επίλυση της εξίσωσης Richards με την πεπλεγμένη μέθοδο πεπερασμένων
διαφορών.
Κεφάλαιο 1 Εισαγωγή 4
Οι Morgan et al. (1980) παρουσίασαν ένα δυναμικό μοντέλο για την
παραγωγή του καλαμποκιού συναρτήσει της διαθέσιμης ημερήσιας εδαφικής
υγρασίας.
Οι Hoogland et al. (1981) βελτίωσαν το μοντέλο SWATR, όσον αφορά τον
υπολογισμό του προσλαμβανόμενου νερού από τις ρίζες. Θεωρήθηκε ότι η μέγιστη
πρόσληψη δεν είναι σταθερή αλλά μεταβάλλεται στο βάθος. Με τον τρόπο αυτό κατά
την έναρξη μίας ξηράς περιόδου οι ρίζες μπορούν να εκμεταλλεύονται τα ανώτερα
στρώματα αφήνοντας την υγρασία των κατωτέρων στρωμάτων αχρησιμοποίητη, ενώ
σε εδάφη με ξηρά επιφανειακά στρώματα και υψηλή υπόγεια στάθμη, η περισσότερη
υγρασία προσλαμβάνεται από τα στρώματα που είναι κοντά στην υπόγεια στάθμη.
Οι Van Wijk and Feddes (1982) χρησιμοποίησαν τα μοντέλα SWATR και
CROPR για να εκτιμήσουν το βάθος τοποθέτησης των στραγγιστικών σωλήνων στις
αποδόσεις των καλλιεργειών, για μια σειρά των ετών και για διάφορους τύπους
εδαφών.
Οι Belmans et al. (1983) βελτίωσαν το μοντέλο SWATR δημιουργώντας το
SWATRE (Soil Water Actual Transpiration Extended), το οποίο χρησιμοποιεί
διαφορετικό σχήμα επίλυσης (Crank – Nicolson) και αντιμετωπίζει μία ευρύτερη
κατηγορία οριακών συνθηκών.
Οι Warrick and Gardner (1983) υπολόγισαν την παραγωγή μιας καλλιέργειας
για διάφορους τύπους εδαφών και διαθέσιμων ποσοτήτων νερού.
Οι Feddes et al. (1984) συνδύασαν τα μοντέλα SWATRE και CROPR
δημιουργώντας το μοντέλο SWACRO που μπορεί να υπολογίζει την πραγματική
ανάπτυξη μιας πατατοκαλλιέργειας κάτω από ένα μεγάλο εύρος οριακών συνθηκών.
Οι Dinar et al. (1986) προσδιόρισαν ένα δυναμικό μοντέλο το οποίο
αποτελείται από μία συνάρτηση νερού-παραγωγής.
Οι Letey and Dinar (1986) παρουσίασαν συναρτήσεις παραγωγής-νερού και
πρότειναν ένα μοντέλο για την προσαρμογή τους όταν οι καλλιέργειες αρδεύονται με
αλατούχο νερό.
Οι Van Wijk and Feddes (1986) επεξέτειναν την εργασία τους του 1982,
χρησιμοποιώντας τα μοντέλα SWATRE και CROPR για να μελετήσουν τις
Κεφάλαιο 1 Εισαγωγή 5
επιδράσεις της στράγγισης του εδάφους στην ευκολία εκτέλεσης εργασιών στο
χωράφι με γεωργικά μηχανήματα την άνοιξη, στο χρόνο σποράς / φύτευσης, στο
χρόνο βλάστησης, στη διαπνοή και στην ανάπτυξη / παραγωγή ξηράς ουσίας των
καλλιεργειών για διάφορους τύπους εδαφών κάτω από διάφορες μετεωρολογικές
συνθήκες.
Ο Feddes (1987) περιγράφει αναλυτικά το μοντέλο SWACRO και δίνει
παραδείγματα από όπου φαίνεται η ισχύς των μοντέλων στην πρόβλεψη της
απόδοσης των καλλιεργειών κάτω από διάφορες πολύπλοκες συνθήκες ροής.
Οι Wasseling and Van der Boerk (1987) χρησιμοποίησαν το μοντέλο
SWATRE για τον ορθολογικό σχεδιασμό των αρδεύσεων και συμπέραναν ότι με τη
χρήση των σωστών δεδομένων το μοντέλο μπορεί να γίνει ένα πολύ χρήσιμο
εργαλείο στο σωστό προγραμματισμό των αρδεύσεων.
Οι Bresies and Dagan (1988) εκτίμησαν τις διακυμάνσεις της παραγωγής
συναρτήσει διαφόρων παραμέτρων που την επηρεάζουν. Επίσης προσπάθησαν να
ξεχωρίσουν εκείνες τις παραμέτρους που έχουν τη μεγαλύτερη επίδραση στην
παραγωγή μιας αρδευόμενης καλλιέργειας.
Οι Feddes et al. (1988) χρησιμοποίησαν το μοντέλο SWACRO για τον
υπολογισμό του υδατικού ισοζυγίου και της απόδοσης μιας πατατοκαλλιέργειας σ’
ένα ιλυοαμμώδες έδαφος κάτω από διάφορες συνθήκες συμπίεσης με πολύ καλά
αποτελέσματα.
Οι Ghali and Svehlik (1988) έδειξαν το σημαντικότατο ρόλο που παίζουν στη
διαμόρφωση της εδαφικής υγρασίας τα βαθύτερα στρώματα του εδάφους σε
καλλιεργούμενα και αρδευόμενα εδάφη.
Ο Prasad (1988) επέλεξε πέντε καλλιέργειες για προσομοίωση και πρότεινε
μια καινούργια συνάρτηση για τον υπολογισμό της πρόσληψης της υγρασίας του
εδάφους από το ριζικό σύστημα των φυτών.
Οι Hopmans and Guttierez-Rave (1988) χρησιμοποίησαν την ανάλυση
Monte Carlo και παρουσίασαν μία διαδικασία για τη ρύθμιση του μοντέλου
πρόσληψης υγρασίας από το ριζικό σύστημα λαμβάνοντας υπόψη τη μεταβλητότητα
των υδραυλικών ιδιοτήτων του εδάφους χρησιμοποιώντας το μοντέλο SWATRE.
Κεφάλαιο 1 Εισαγωγή 6
Οι Hopmans and Stricker (1989) χρησιμοποίησαν την ανάλυση Monte Carlo
και το μοντέλο SWATRE και πρότειναν ένα στοχαστικό-ντετερμινιστικό μοντέλο
που προσομοιώνει την ροή στην ακόρεστη ζώνη του εδάφους.
Οι Stockle and Campell (1989) πρότειναν ένα μοντέλο για την προσομοίωση
της επίδρασης του νερού και του αζώτου στην παραγωγή του σιταριού.
Οι De Jond and Kabat (1990) χρησιμοποίησαν το μοντέλο SWACROP για
την προσομοίωση του υδατικού ισοζυγίου και την παραγωγή στο γρασίδι.
Ο Wallach (1990) παρουσιάζει ένα δισδιάστατο μοντέλο, που προσομοιώνει
την κατανομή της εδαφικής υγρασίας σε ένα μη ομοιόμορφα αρδευόμενο αγρό,
συνυπολογίζοντας την πρόσληψη νερού από τις ρίζες.
Οι Brinson and Perrier (1991) πρότειναν ένα ημιεμπειρικό μοντέλο για την
εξάτμιση από την επιφάνεια του εδάφους το οποίο μπορεί να ενταχθεί σε μοντέλα
προσομοίωσης της παραγωγής.
Οι Singh et al. (1991) παρουσίασαν, για τον προγραμματισμό της άρδευσης
σε καλλιέργεια πατάτας το μοντέλο SimISP, το οποίο χρησιμοποιώντας κλιματικές
και εδαφικές παραμέτρους υπολογίζει εξάτμιση, διαπνοή και την ανάπτυξη της
καλλιέργειας.
Οι Vereecken et al. (1991) παρουσίασαν και επιβεβαίωσαν μία νέα έκδοση
του SWATRER, το μοντέλο SWATNIT, στο οποίο περιλαμβάνεται το μοντέλο
SUCROS που περιγράφει την ανάπτυξη της καλλιέργειας και τη μεταφορά της μάζας
και τους μετασχηματισμούς του αζώτου. Η επιβεβαίωση των μοντέλων έγινε με
πειραματικά δεδομένα χειμερινού σιταριού για διαφορετικές ποσοτικές λιπάνσεις.
Οι Bradford and Letey (1992) χρησιμοποίησαν το τροποποιημένο μοντέλο
Van Genuchten-Hanks για την προσομοίωση της παραγωγής του βαμβακιού, με
τρεις ή τέσσερις αρδεύσεις κατά τη καλλιεργητική περίοδο, τόσο υπό συνθήκες καλής
στράγγισης όσο και ύπαρξης υψηλής υπόγειας στάθμης.
Οι Rasiah et al. (1992) εκτίμησαν, σε καλλιέργεια σόγιας, την επίδραση που
έχουν οι διάφοροι μέθοδοι προσδιορισμού των παραμέτρων (γραμμικοί-μη
γραμμικοί) και οι διάφορες συναρτήσεις πρόσληψης νερού από τις ρίζες (συνεχείς-μη
Κεφάλαιο 1 Εισαγωγή 7
συνεχείς), στον προσδιορισμό των παραμέτρων και στην προσομοίωση της
πρόσληψης του νερού από τις ρίζες.
Οι Govindaraju and Kavvas (1993), επέλυσαν αναλυτικά την εξίσωση του
Richards υποθέτοντας ένα εδαφικό προφίλ υγρασίας παρόμοιο με αυτό των Green
and Ampt. Η λύση τους αν και ενδιαφέρουσα έχει τους περιορισμούς των αναλυτικών
λύσεων.
Οι Clemente et al. (1994) κάνουν μια σύγκριση μεταξύ τριών γνωστών
μοντέλων πρόβλεψης της μεταβολής της εδαφικής υγρασίας που συνυπολογίζουν και
το φαινόμενο της πρόσληψης (SWATRE, LEACHW και SWASIM) με δύο σετ
δεδομένων από δύο διαφορετικούς τύπους εδάφους. Δίνουν ταυτοχρόνως και τα
αποδεκτά (κατ’ αυτούς) επίπεδα της απόκλισης μεταξύ προβλέψεων και μετρήσεων.
Οι Babajimopoulos et al. (1995) παρουσιάζουν το μοντέλο SWBACROS,
που χρησιμοποιεί για την επίλυση της εξίσωσης Richards τη μέθοδο πρόβλεψης-
διόρθωσης των Douglas-Jones. Το μοντέλο μπορεί να επιλύσει και το αντίστροφο
πρόβλημα, δηλαδή να υπολογίσει τις εδαφικές παραμέτρους από γνωστές τιμές του
ύψους πίεσης ή της υγρασίας σε συγκεκριμένα βάθη και χρονικές στιγμές με τη
μέθοδο Rosenbrock. Η εφαρμογή του μοντέλου γίνεται σε αγρό καλλιεργημένο με
βαμβάκι.
Ο Μπίλας (1995) εφαρμόζει το μοντέλο SWBACROS στην πρόβλεψη της
εδαφικής υγρασίας, της παραγωγής και στον προγραμματισμό της άρδευσης του
βαμβακιού.
Οι Zhang and Elliot (1996) παρουσιάζουν το δισδιάστατο μοντέλο VS2D,
εφαρμόζοντάς το για μια καλλιεργητική περίοδο σε καλλιέργεια φιστικιού. Ο όρος
πρόσληψης είναι μία συνάρτηση της κατανομής πυκνότητας του ριζικού συστήματος.
Ο Antonopoulos (1997) παρουσιάζει, με τη βοήθεια αριθμητικού μοντέλου
που χρησιμοποιεί τη μέθοδο των πεπερασμένων στοιχείων, σύγκριση μεταξύ
αριθμητικών προβλέψεων και μετρημένων τιμών για τρεις διαφορετικές τιμές της
μέγιστης προσλαμβανόμενης ποσότητας νερού από τη ρίζα Smax (Feddes et al.,
1978, Prasad, 1988 και σταθερή τιμή) και για τρεις τιμές του κρίσιμου ύψους πίεσης
για δυο σετ δεδομένων από την περιοχή Θεσσαλονίκης και τη Θεσσαλία.
Κεφάλαιο 1 Εισαγωγή 8
Ο Αντωνόπουλος (1998) παρουσιάζει το μοντέλο WANISIM (Water and
Nitrogen SIMulation), που χρησιμοποιεί την αριθμητική μέθοδο των πεπερασμένων
στοιχείων για την επίλυση της εξίσωσης Richards. Το μοντέλο WANISIM
περιγράφει τη δυναμική του εδαφικού νερού και του αζώτου σε καλλιεργούμενο
έδαφος κάτω από συνθήκες μεταβαλλόμενης εισροής (λόγω βροχής και άρδευσης)
και διαφορετικών χρονικών και ποσοτικών αζωτούχων λιπάνσεων.
Απαραίτητος όμως, για την προσομοίωση της δυναμικής του εδαφικού νερού
σε ένα καλλιεργούμενο έδαφος, είναι και ο ακριβής υπολογισμός της δυναμικής
εξατμισοδιαπνοής. Θα πρέπει λοιπόν να αναφέρουμε τις ερευνητικές εργασίες των
Πανώρα και Μαυρουδή (1993, 1994, 1995) οι οποίοι έχουν ασχοληθεί εκτεταμένα
με το φαινόμενο της εξατμισοδιαπνοής και τον υπολογισμό της στην λεκάνη του
ποταμού Λουδία.
Τέλος αξίζει να σημειωθεί ότι εργασία ανάλογη με την παρούσα σε
περιβάλλον DOS πραγματοποιήθηκε το 1998 από τους Κυριακίδη Ιάκωβο και
Κωνσταντινίδη Χρήστο στα πλαίσια της προπτυχιακής διατριβής τους (Η χρήση
μαθηματικών μοντέλων στη μελέτη του υδατικού ισοζυγίου καλλιεργούμενων εδαφών
– Γραφική απεικόνιση των αποτελεσμάτων του μαθηματικού μοντέλου
SWBACROS)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 9
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού
2.1 Εξίσωση Richards
2.1.1 Περιγραφή της εξίσωσης Richards
Η χρήση μαθηματικών μοντέλων για την προσομοίωση της κίνησης του νερού
έχει διαδοθεί πολύ μεταξύ των ερευνητών τα τελευταία χρόνια. Τα μοντέλα που
περιγράφουν την κίνηση του νερού στο έδαφος βασίζονται στην επίλυση της
εξίσωσης Richards (2.1), η οποία περιγράφει τη μονοδιάστατη κίνηση του νερού
στην ακόρεστη ζώνη ενός καλλιεργούμενου εδάφους :
h hC(h) K( ) 1 S(h)t z z
∂ ∂ ∂⎡ ⎤⎛ ⎞= θ − −⎜ ⎟⎢ ⎥∂ ∂ ∂⎝ ⎠⎣ ⎦ (2.1)
όπου :
h = ύψος πίεσης του εδαφικού νερού [L],
t = χρόνος [T],
C(h) = υδραυλική χωρητικότητα του εδάφους (dθ/dh) [L-1],
θ = εδαφική υγρασία κατ’ όγκο [L3 L-3],
z = κατακόρυφη συντεταγμένη με θετική φορά προς τα κάτω και με αρχή την
επιφάνεια του εδάφους [L],
K(θ) = ακόρεστη υδραυλική αγωγιμότητα [L T-1],
S(h) = προσλαμβανόμενη από τις ρίζες του φυτού ποσότητα νερού [T-1]
Η πρόσληψη του νερού από τα φυτά είναι συνάρτηση πολλών παραγόντων
(όπως η πυκνότητα, η κατανομή και το μήκος των ριζών, το είδος του εδάφους καθώς
και από το είδος του φυτού) και η ακριβής επίδραση των οποίων είναι εξαιρετικά
δύσκολο να κατανοηθεί. Ο προσδιορισμός των επιδράσεων αυτών συνεπάγεται
χρονοβόρο και πολυδάπανο πειραματισμό, ο οποίος όμως με τη σειρά του δε θα
μπορούσε να οδηγήσει σε συμπεράσματα και ακριβείς περιγραφές των διαδικασιών
που περιλαμβάνονται στην πρόσληψη του νερού από τα φυτά. Για αυτό το λόγο
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 10
έχουν προταθεί απλούστερες εκφράσεις για την περιγραφή της πρόσληψης του νερού
από τα φυτά. Οι εκφράσεις αυτές δεν απαιτούν τη γνώση των πολύπλοκων φυσικών
διεργασιών που σχετίζονται με την απορρόφηση του εδαφικού νερού από τις ρίζες
εκφράζονται σε μια πιο μακροσκοπική κλίμακα, θεωρώντας το ριζικό σύστημα και το
έδαφος που το περιβάλλει σαν ένα ενιαίο κομμάτι. Σ’ αυτή την περίπτωση η
πρόσληψη του νερού από τα φυτά περιγράφεται από μία συνεχή συνάρτηση (sink
term, S(h)), η οποία προστίθεται απλά στην εξίσωση Richards. Ο όρος S(h)
περιγράφεται αναλυτικά στην επόμενη παράγραφο 2.1.2 .
2.1.2 Περιγραφή του όρου S(h)
Ο όρος S(h) της εξίσωσης Richards (2.1) μπορεί να προσεγγιστεί από μία
σχέση της μορφής (Feddes et al., 1978)
S(h)= α(h) Smax (2.2)
όπου :
Smax = η μέγιστη δυνατή πρόσληψη νερού από τις ρίζες και στη γενική περίπτωση
είναι συνάρτηση του βάθους του ριζοστρώματος,
α(h) = περιοριστικός παράγοντας και είναι μια αδιάστατη συνάρτηση του ύψους
πίεσης
Εκτενής αναφορά των α(h) και Smax γίνεται στις δύο επόμενες παραγράφους
(2.1.2.1 και 2.1.2.2)
Η διαπνεόμενη από το φυτό ποσότητα νερού Tα υπολογίζεται από τη σχέση :
Τα=L
0
S(h)dz∫ (2.3)
όπου :
L = το βάθος του ριζικού συστήματος
Όταν το έδαφος βρίσκεται στην υδατοϊκανότητα, τότε η πρόσληψη νερού από
το φυτό είναι μέγιστη - δηλαδή α(h)=1 - όπως και η διαπνοή του. Η μέγιστη λοιπόν
διαπνοή (δυναμική) TP υπολογίζεται από τη σχέση (2.3) για α(h)=1 :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 11
ΤΡ=L
max0
S (z)dz∫ (2.4)
Η δυναμική διαπνοή ΤΡ μπορεί να υπολογιστεί από τη σχέση :
ΤΡ = ΕΤΡ – EP (2.5)
όπου :
ΕΤΡ = η δυναμική εξατμισοδιαπνοή,
ΕΡ = η δυναμική εξάτμιση από την επιφάνεια του εδάφους, η οποία υπολογίζεται από
τη σχέση των Ritchie, 1972 και Al-Khafaf et al., 1978 : ( 0,623LAI )
P PE ET e −= ⋅ (2.6)
όπου :
LAI = ο δείκτης φυλλικής επιφάνειας (leaf area index)
Αν η άρδευση / βροχόπτωση είναι μικρότερη από 1cm/day, η εξάτμιση από
την επιφάνεια του εδάφους Eα μπορεί να υπολογιστεί από τη σχέση (Black et. al,
1969) : b bE t (t 1)α = σ − σ − (2.7)
όπου :
σ = παράμετρος εξαρτώμενη από το έδαφος με εύρος τιμών 3,34 με 5,8 (για
εξάτμιση σε mm/day) (Al-Khafaf et al., 1978, Ritchie, 1972),
t = χρόνος σε ημέρες,
b = εκθέτης (b=0,6 μετά από πειράματα των Al-Khafaf et al., 1978)
2.1.2.1 Περιγραφή του όρου Smax
Οι Molz and Remson (1970) πρότειναν ένα γραμμικό μοντέλο, σύμφωνα με
το οποίο γίνεται η παραδοχή ότι το 40% της κατανάλωσης νερού από το φυτό
πραγματοποιείται από το ανώτερο τεταρτημόριο του ριζικού συστήματος, το 30%
από το αμέσως κατώτερο τέταρτο και το 20% και 10% από τα υπόλοιπα δύο
τέταρτα αντίστοιχα. Σύμφωνα με τις παραδοχές αυτές η σχέση τους έχει τη μορφή :
P Pmax
1,6T 1,8TS (z) zL L
= − + (2.8)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 12
όπου :
L = το βάθος του ριζικού συστήματος,
ΤΡ = η δυναμική διαπνοή
Οι Feddes et al. (1978) στο μοντέλο που παρουσίασαν, θεώρησαν ότι ισχύει,
όσον αφορά την προσλαμβανόμενη ποσότητα νερού, η σχέση (2.2). Δέχθηκαν επίσης
ότι η ποσότητα Smax δεν μεταβάλλεται με το βάθος αλλά παραμένει σταθερή
εξαρτώμενη αποκλειστικά από τη δυναμική διαπνοή. Έτσι χρησιμοποίησαν την
ακόλουθη σχέση :
Smax = ΤΡ/L (2.9)
όπου :
L = το βάθος ριζικού συστήματος,
ΤΡ = η δυναμική διαπνοή
Οι Hoogland et al. (1981) σε μία προσπάθεια να βελτιώσουν το μοντέλο
SWATR, όσον αφορά τον υπολογισμό της προσλαμβανόμενης ποσότητας νερού και
σε αντίθεση με τους Feddes et al. (1978), θεώρησαν ότι το Smax κάτω από συνθήκες
δυναμικής διαπνοής, μειώνεται συναρτήσει του βάθους γραμμικά σύμφωνα με τη
σχέση :
Smax = a – b z , |z|≤ L
(2.10)
όπου :
a , b = σταθερές που υπολογίζονται από πειραματικά δεδομένα πρόσληψης νερού
Ο Prasad (1988) υιοθετώντας τη σχέση (2.10) των Hoogland et al. (1981) και
υποθέτοντας ότι η πρόσληψη νερού στο κατώτερο άκρο του ριζικού συστήματος
είναι μηδέν, καθώς και ότι η συνολική ποσότητα νερού που προσλαμβάνεται από τις
ρίζες ισούται με τη δυναμική διαπνοή, κατέληξε σε μία σχέση που είναι από τις
ευρύτερα αποδεκτές. Έτσι θεωρώντας ότι Smax=0 για z=L προκύπτει από τη (2.10)
ότι :
a-bL=0 (2.11)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 13
Η παραδοχή ότι η συνολική ποσότητα νερού που προσλαμβάνεται από τις
ρίζες ισούται με τη δυναμική διαπνοή, όταν υπάρχει πλήρης επάρκεια νερού,
περιγράφεται από τη σχέση (2.4) : L
max0
S (z)dz∫ = ΤΡ (2.12)
Σύμφωνα με τις εξισώσεις (2.10), (2.11), (2.12) παίρνουμε τις :
a=2 ΤΡ/z (2.13)
b=2 ΤΡ/z2 (2.14)
Με αντικατάσταση των δύο τελευταίων εξισώσεων (2.13), (2.14) στην (2.10)
οδηγούμαστε στη σχέση :
Pmax
2T zS (z) 1L L
⎛ ⎞= −⎜ ⎟⎝ ⎠
(2.15)
2.1.2.2 Περιγραφή του όρου α(h)
Σύμφωνα με τον Molz (1981), η μαθηματική περιγραφή των μοντέλων, που
λαμβάνουν ως καθοριστικό παράγοντα για τον υπολογισμό της προσλαμβανόμενης
από τη ρίζα ποσότητας νερού τη δυναμική διαπνοή (2.2), περιλαμβάνει πέραν του
Smax και τον περιοριστικό παράγοντα α(h). Ο περιοριστικός παράγοντας α(h), είναι
μία αδιάστατη συνάρτηση που εξαρτάται από το ύψος πίεσης (συνεπώς και την
υγρασία) και κυμαίνεται μεταξύ 0 και 1. Η φυσική σημασία του εκφράζει το λόγο
μεταξύ της πραγματικά προσλαμβανόμενης ποσότητας νερού από τις ρίζες (S(z)),
προς τη μέγιστη δυνατή (Smax), η οποία προκύπτει κάτω από συνθήκες υγρασίας, που
επιτρέπουν την απρόσκοπτη πρόσληψη νερού από τη ρίζα.
Οι Cowan (1965), Van Keulen (1975) και Nerpin et al. (1976) έδειξαν ότι η
δυνατότητα ενός φυτού να διατηρεί τη διαπνοή σε επίπεδο δυναμικής διαπνοής
αρχίζει να μειώνεται όταν η τιμή του ύψους πίεσης στο έδαφος πέσει κάτω από μια
τιμή, την οποία ονόμασαν κρίσιμη (hc). Οι Yang and De Jong (1971) έδειξαν ότι η
τιμή του hc εξαρτάται από την ζήτηση νερού από την ατμόσφαιρα, δηλαδή από τον
ρυθμό εξατμισοδιαπνοής. Οι Feddes et al. (1978), δέχθηκαν ότι η τιμή του hc,
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 14
ανάλογα με την καλλιέργεια κυμαίνεται μεταξύ -1000 και -500 cm όπως και το ότι η
τιμή του hc μπορεί να θεωρηθεί σταθερή χωρίς να προκύπτει μεγάλο σφάλμα κατά τη
μαθηματική προσομοίωση του φαινομένου. Ο Diels (1994) προτείνει μία
μεγαλύτερη κύμανση του hc μεταξύ -1000 και -100 cm.
Μία άλλη τιμή του ύψους πίεσης η οποία παίζει καθοριστικό ρόλο στην
παραμετροποίηση της συμπεριφοράς της ρίζας, είναι εκείνη, πέραν της οποίας
επικρατούν ακατάλληλες συνθήκες αερισμού στο ριζόστρωμα. Η τιμή αυτή της
πίεσης ονομάζεται σημείο αναεροβίωσης (hα). Τέτοιες συνθήκες έχουν ως
αποτέλεσμα την αναστολή της λειτουργίας της ρίζας σύμφωνα με τον Feddes et al.
(1978), άλλα και άλλους (Novak, 1987 και Prasad, 1988). Θα πρέπει ακόμα να
αναφερθεί το προφανές γεγονός, ότι πέραν του σημείου μόνιμης μάρανσης (hPWP), η
ρίζα δεν προσλαμβάνει το νερό. Σύμφωνα με τους De Jong et al. (1992) η τιμή του
hPWP κυμαίνεται μεταξύ -20000 και -15000 cm.
Στο σχήμα 2.1 φαίνεται η μεταβολή του όρου S(h) και α(h) σε σχέση με την
απόλυτη τιμή του ύψους πίεσης της εδαφικής υγρασίας σύμφωνα με τους Feddes et
al. (1978) και τον Novak (1987). Στο σχήμα αυτό, η τιμή του α(h) παραμένει μηδέν
για 0 < h ≤ hα , παίρνει τη μέγιστη τιμή της για hα < h ≤ hc και μεταβάλλεται
γραμμικά για hc < h ≤ hPWP
Σχήμα 2.1 Μεταβολή του όρου α(h) με το ύψος πίεσης (Feddes et al., 1978)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 15
Μία διαφορετική περιγραφή της παραμέτρου α(h) δίνεται από τον Prasad
(1988) (σχήμα 2.2). Σύμφωνα με αυτόν, η τιμή του α(h) παραμένει μηδέν για 0 < h
≤ hα , μεταβάλλεται γραμμικά από μηδέν έως ένα για hα<h≤ hFC, διατηρεί την τιμή
ένα για hFC < h ≤ hc και μεταβάλλεται γραμμικά από ένα έως μηδέν για hc < h ≤
hPWP. Ισχύουν δηλαδή οι παρακάτω σχέσεις :
α(h)=0 για hα ≤ h < 0 ή h ≤ hPWP
α(h)= a
FC a
h hh h
⎛ ⎞−⎜ ⎟−⎝ ⎠
για hα < h ≤ hFC
α(h)=1 για hc ≤ h < hFC
α(h)=( ) ( )PWP c PWPh h / h h− − για hPWP ≤ h < hc
Σχήμα 2.2 Μεταβολή του όρου α(h) με το ύψος πίεσης (Prasad, 1988)
Μία διαφορετική περιγραφή της παραμέτρου α(h) δίνεται από τους Wyseure
et al. (1994) (σχήμα 2.3). Σύμφωνα με αυτόν η τιμή του α(h) παραμένει μηδέν για 0
< h ≤ hα , μεταβάλλεται γραμμικά από μηδέν έως ένα για hα < h ≤ hFC , διατηρεί
την τιμή ένα για hFC < h ≤ hc και μεταβάλλεται υπερβολικά από ένα έως μηδέν για
hc < h ≤ hPWP (σχήμα 2.3). Ισχύουν δηλαδή οι παρακάτω σχέσεις :
α(h)=0 για hα ≤ h < 0 ή h ≤ hPWP
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 16
α(h)= a
FC a
h hh h
⎛ ⎞−⎜ ⎟−⎝ ⎠
για hα < h ≤ hFC
α(h)=1 για hc ≤ h < hFC
α(h)=PWP PWP c
1 1/h 1 h hh
⎛ ⎞⎜ ⎟ ⎛ ⎞
⎜ ⎟⎜ ⎟− −⎝ ⎠⎜ ⎟⎝ ⎠
για hPWP ≤ h < hc
Σχήμα 2.3 Μεταβολή του όρου α(h) με το ύψος πίεσης (Wyseure et al., 1994)
Στην περιγραφή αυτή η μεταβολή μεταξύ hc και hPWP είναι υπερβολική, καθώς
σύμφωνα με τους Mahey et al. (1984), η γραμμική μεταβολή, που υιοθετείται από τις
άλλες προσεγγίσεις του περιοριστικού παράγοντα α(h), έχει ως αποτέλεσμα τη
χαμηλή ευαισθησία του όσων αφορά το κρίσιμο σημείο πέραν του οποίου το φυτό
βρίσκεται σε κατάσταση στρες. Αν υιοθετηθεί λοιπόν η γραμμική μεταβολή το φυτό
θα προσλαμβάνει νερό με ευκολία μέχρι το σημείο μόνιμης μάρανσης, ενώ σύμφωνα
με την υπερβολική μεταβολή η δυνατότητα του φυτού να προσλαμβάνει νερό μεταξύ
hc και hPWP περιορίζεται κατά πολύ.
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 17
2.1.3 Περιγραφή της ακόρεστης υδραυλικής αγωγιμότητας και της υδραυλικής χωρητικότητας του εδάφους
Στο μαθηματικό μοντέλο η ακόρεστη υδραυλική αγωγιμότητα K(h)
περιγράφεται από την εξίσωση Van Genuchten (1978, 1980) :
( ) 2mn 1 n
m /2n
1 h 1 ( h)K(h) K(s)
1 ( h)
−− ⎡ ⎤− α + α⎣ ⎦=
⎡ ⎤+ α⎣ ⎦ (2.16)
όπου :
K(s) = η υδραυλική αγωγιμότητα στον κορεσμό ή κορεσμένη υδραυλική
αγωγιμότητα (saturated hydraulic conductivity),
α = συντελεστής προσδιοριζόμενος από την χαρακτηριστική καμπύλη [L-1],
n, m = εμπειρικές παράμετροι προσδιοριζόμενοι από την χαρακτηριστική καμπύλη
Η σχέση που συνδέει τα m,n είναι η :
1m 1n
= −
Ενώ η χαρακτηριστική καμπύλη περιγράφεται από τη σχέση :
rn m
s r
1[1 ( h) ]
θ − θΩ = =
θ − θ + α (2.17)
όπου :
θ = περιεχόμενη στο έδαφος υγρασία κατ’ όγκο [L3 L-3],
θr = υπολειμματική υγρασία [L3 L-3],
θs = υγρασία κορεσμού [L3 L-3]
Με παραγώγιση της τελευταίας σχέσης (2.17) ως προς h παίρνουμε την
υδραυλική χωρητικότητα C(h) :
( )m 1 n 1ns s
2mn
( )m 1 ( h) n hdC(h)dh 1 ( h)
− −⎡ ⎤− θ − θ + α α αθ ⎣ ⎦= =⎡ ⎤+ α⎣ ⎦
(2.18)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 18
2.2 Το μαθηματικό μοντέλο SWBACROS
2.2.1 Γενικά
Το μοντέλο SWBACROS (Simulation of the Water BAlance of a CROpped
Soil) αναπτύχθηκε το 1995 στο εργαστήριο Γενικής και Γεωργικής Υδραυλικής και
Βελτιώσεων από τον καθηγητή κ. Χρήστο Μπαμπατζιμόπουλο (Babajimopoulos et
al., 1995) και βασίζεται στην αριθμητική επίλυση της εξίσωση Richards με τη μέθοδο
πρόβλεψης διόρθωσης των Douglas-Jones (Douglas and Jones, 1963)
Το μοντέλο έχει εφαρμοστεί σε δύο αγρούς καλλιεργούμενους με βαμβάκι και
σε ένα αργό καλλιεργούμενο με ζαχαρότευτλα. Κατά την πρώτη εφαρμογή τα
πειραματικά δεδομένα ελήφθησαν σε πειραματικό αγρό στη Λάρισα το 1994
(Καλφούντζος, 1994). Κατά τη δεύτερη εφαρμογή τα δεδομένα ελήφθησαν στο
Ινστιτούτο Εγγείων Βελτιώσεων της Σίνδου το 1995 για τον προγραμματισμό μιας
καλλιέργειας βαμβακιού (Μπαμπατζιμόπουλος κ.ά., 1995). Στις δύο αυτές
εφαρμογές τα αποτελέσματα του SWBACROS συγκρίθηκαν με αυτά του γνωστού
μοντέλου SWATRE. Οι δύο αυτές εφαρμογές έδειξαν ότι το SWBACROS μπορεί
να περιγράψει πολύ ικανοποιητικά το υδατικό ισοζύγιο του εδάφους ενώ φάνηκε και
μία σταθερή υπεροχή του SWBACROS έναντι του SWATRE. Τα αποτελέσματα
συγκρίθηκαν με αυτά του κλασικού τρόπου προγραμματισμού των αρδεύσεων και
έδειξαν ότι το SWBACROS μπορεί να επιφέρει σημαντική οικονομία αρδευτικού
νερού και να εξελιχθεί σε ένα πολύ καλό μέσο για τον προγραμματισμό των
αρδεύσεων (Babajimopoulos et al., 1995). Κατά την τρίτη εφαρμογή το μοντέλο
εφαρμόστηκε σε έναν αγρό καλλιεργούμενο με ζαχαρότευτλα στην Κορυφή Ημαθίας
την καλλιεργητική περίοδο του έτους 1997 (Μπαμπατζιμόπουλος, 2000). Η
εφαρμογή αυτή έδειξε ότι το μοντέλο SWBACROS μπορεί να παίξει ένα πολύ
σημαντικό ρόλο στον ορθολογικό προγραμματισμό της άρδευσης των
ζαχαροτεύτλων.
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 19
2.2.2 Αριθμητική επίλυση
Το μαθηματικό μοντέλο SWBACROS βασίζεται στην αριθμητική επίλυση της
εξίσώσης Richards (2.1) με τη μέθοδο πρόβλεψης – διόρθωσης των Douglas-Jones
(Douglas and Jones, 1963). Η μέθοδος αυτή είναι μία πεπλεγμένη (implicit)
μέθοδος που έχει αποδειχθεί μία από τις πιο ικανοποιητικές, στην προσομοίωση της
μονοδιάστατης κίνησης του νερού στην ακόρεστη ζώνη του εδάφους (Haverkamp et
al., 1997, Babajimopoulos et al., 1991, Babajimopoulos, 2000).
Σχήμα 2.4 Δίκτυο πεπερασμένων διαφορών
Θεωρώντας το δίκτυο του σχήματος 2.5 η μέθοδος περιγράφεται από τις
παρακάτω εξισώσεις (Μπαμπατζιμόπουλος, 1991) :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 20
1 Δz1
…………...………............................................................. 2 Δz2
.……….…………………...…......................................... . . .
…………………………….............................................. j-1 Δzj-1
……….....…………………..………………..……… j Δzj
……….....…………………..………………..……… j+1 Δzj+1
……….....…………………..………………..……… . . .
(+)
Σχήμα 2.5 Δίκτυο υπολογισμών
Εξίσωση πρόβλεψης :
( )n 1/2 n
n n 1/2 n nz z
h hK h 1 S Ct/2
++ −⎡ ⎤δ δ − − =⎣ ⎦ Δ
(2.19)
Εξίσωση διόρθωσης :
( ) ( )n 1 n
n 1/2 n 1/2 n 1/2 n n 1/2 n 1/2z z z
1 h hK h 1 K h 1 S C2 t
++ + + + + −⎡ ⎤⎡ ⎤δ δ − + δ − − =⎣ ⎦⎣ ⎦ Δ
(2.20)
όπου :
δz = ο τελεστής των κεντρικών διαφορών,
n = η χρονική στιγμή. Έτσι Δt = tn+1 - tn
Αναλυτικότερα η εξίσωση πρόβλεψης (2.19) μπορεί να γραφεί :
n 1/2 n 1/2 n 1/2 n 1/2 n 1/2 nj 1 j j j 1 j jn n n n
j 1/2 j 1/2 j jj j 1 j 1 jj
h h h h h h1 K 1 K 1 S Cz z z zz t/22 2
+ + + + ++ −
+ −+ −
⎡ ⎤⎛ ⎞ ⎛ ⎞⎢ ⎥⎜ ⎟ ⎜ ⎟− − −
− − − − =⎢ ⎥⎜ ⎟ ⎜ ⎟Δ + Δ Δ + ΔΔ Δ⎢ ⎥⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎢ ⎥⎝ ⎠ ⎝ ⎠⎣ ⎦(2.21)
όπου :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 21
zj = η απόσταση μεταξύ δύο κομβικών σημείων j και (j+1) και
η υδραυλική αγωγιμότητα στο ενδιάμεσο κομβικό σημείο (j+1/2) και (j-1/2)
εκτιμάται σαν ο γεωμετρικός μέσος, δηλαδή θα έχουμε :
n n nj 1/2 j 1 jK K K− −= ⋅
n n nj 1/2 j j 1K K K+ += ⋅
Η εξίσωση (2.21) μετά την εκτέλεση των πράξεων και αναδιάταξη των όρων
γράφεται σε τριδιαγωνική μορφή ως εξής :
( ) ( ) ( )n n nj 1/2 j 1/2 j 1/2n 1/2
j 1n n nj j 1 j j j j 1 j j j 1 j j j
t K t K t Kh 1
z z z C z z z C z z z C+ + −+
++ + −
⎡ ⎤ ⎡ ⎤Δ ⋅ Δ ⋅ Δ ⋅− + + + ⋅⎢ ⎥ ⎢ ⎥
Δ + Δ Δ Δ + Δ Δ Δ + Δ Δ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( ) ( )nj 1/2n 1/2 n 1/2 n n n n
j j 1 j 1/2 j 1/2 j jn nnj j jj 1 j j j
t K t th h K K h S2 z C 2Cz z z C
−+ +− − +
−
⎡ ⎤Δ ⋅ Δ Δ+ − = − + −⎢ ⎥
ΔΔ + Δ Δ⎢ ⎥⎣ ⎦
(2.22)
Η εξίσωση (2.22) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1/2 n 1/2 n 1/2
j j 1 j j j j 1 jA h B h C h D+ + ++ −+ + =
όπου :
( )nj 1/2
j nj j 1 j j
t KA
z z z C+
+
Δ ⋅= −
Δ + Δ Δ ,
( ) ( )n nj 1/2 j 1/2
j n nj j 1 j j j 1 j j j
t K t KB 1
z z z C z z z C+ −
+ −
Δ ⋅ Δ ⋅= + +
Δ + Δ Δ Δ + Δ Δ
( )nj 1/2
j nj 1 j j j
t KC
z z z C−
−
Δ ⋅= −
Δ + Δ Δ ,
( )n n n nj j 1/2 j 1/2 j jn n
j j j
t tD K K h S2 z C 2C− +Δ Δ
= − + −Δ
Αναλυτικότερα η εξίσωση διόρθωσης (2.20) μπορεί να γραφεί ως εξής :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 22
n 1 n 1 n 1 n 1j 1 j j j 1n 1/2 n 1/2
j 1/2 j 1/2j j 1 j 1 jj
h h h h1 2 K 1 K 1z z z z2 z2 2
+ + + ++ −+ +
+ −− −
⎡ ⎡ ⎛ ⎞ ⎛ ⎞⎢ ⎢ ⎜ ⎟ ⎜ ⎟− −
− − − +⎢ ⎢ ⎜ ⎟ ⎜ ⎟Δ + Δ Δ + ΔΔ⎢ ⎢ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎢ ⎢ ⎝ ⎠ ⎝ ⎠⎣⎣
n n n 1 nj 1 j j jn 1/2 n 1/2 n 1/2
j 1/2 j jj j 1
h h h hK 1 S Cz z t
2
+++ + +
−+
⎤⎤⎛ ⎞⎥⎥⎜ ⎟− −
+ − − =⎥⎥⎜ ⎟Δ + Δ Δ⎥⎥⎜ ⎟⎜ ⎟ ⎥⎥⎝ ⎠⎦⎦
(2.23)
όπου :
zj = η απόσταση μεταξύ δύο κομβικών σημείων j και (j+1) και
η υδραυλική αγωγιμότητα στο ενδιάμεσο κομβικό σημείο (j+1/2) και (j-1/2)
εκτιμάται σαν ο γεωμετρικός μέσος με τον τρόπο που υπολογίστηκε στην εξίσωση
πρόβλεψης.
Η εξίσωση (2.23) μετά την εκτέλεση των πράξεων και αναδιάταξη των όρων
γράφεται σε τριδιαγωνική μορφή ως εξής :
( ) ( ) ( )n n 1/2 n 1/2j 1/2 j 1/2 j 1/2n 1
j 1n n 1/2 n 1/2j j 1 j j j j 1 j j j 1 j j j
t K t K t Kh 1
z z z C z z z C z z z C
+ ++ + ++
+ + ++ + −
⎡ ⎤ ⎡ ⎤Δ ⋅ Δ ⋅ Δ ⋅− + + + ⋅⎢ ⎥ ⎢ ⎥
Δ + Δ Δ Δ + Δ Δ Δ + Δ Δ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( ) ( )n 1/2j 1/2n 1 n 1 n 1/2 n 1/2
j j 1 j 1/2 j 1/2n 1/2n 1/2j jj j 1 j j
t K th h K Kz Cz z z C
+−+ + + +
− − +++−
⎡ ⎤Δ ⋅ Δ+ − = − +⎢ ⎥
ΔΔ + Δ Δ⎢ ⎥⎣ ⎦
( ) ( ) ( ) ( )n 1/2 n 1/2j 1/2 j 1/2n n n n
j 1 j j j 1n 1/2 n 1/2j j 1 j j j j 1 j j
t K t Kh h h h
z z 1 z C z z z C
+ ++ −
+ −+ ++ −
Δ ⋅ Δ ⋅+ − − − +
Δ + Δ + Δ Δ + Δ Δ
n n 1/2j jn 1/2
j
th SC
++
Δ+ − (2.24)
Η εξίσωση (2.24) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1/2 n 1/2 n 1/2
j j 1 j j j j 1 jA h B h C h D+ + ++ −+ + =
όπου :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 23
( )n 1/2j 1/2
j n 1/2j j 1 j j
t KA
z z z C
++
++
Δ ⋅= −
Δ + Δ Δ ,
( ) ( )n 1/2 n 1/2j 1/2 j 1/2
j n 1/2 n 1/2j j 1 j j j 1 j j j
t K t KB 1
z z z C z z z C
+ ++ +
+ ++ −
Δ ⋅ Δ ⋅= + +
Δ + Δ Δ Δ + Δ Δ,
( )nj 1/2
j nj 1 j j j
t KC
z z z C−
−
Δ ⋅= −
Δ + Δ Δ,
( ) ( ) ( )n 1/2j 1/2n 1/2 n 1/2 n n
j j 1/2 j 1/2 j 1 jn 1/2 n 1/2j j j j 1 j j
t KtD K K h hz C z z 1 z C
+++ +
− + ++ ++
Δ ⋅Δ= − + − −Δ Δ + Δ + Δ
( ) ( )n 1/2j 1/2 n n n n 1/2
j j 1 j jn 1/2n 1/2jj j 1 j j
t K th h h SCz z z C
+− +
− ++−
Δ ⋅ Δ− − + −Δ + Δ Δ
2.2.3 Οριακές συνθήκες
2.2.3.1 Επάνω οριακή συνθήκη
Η οριακή συνθήκη στην επιφάνεια του εδάφους είναι γνωστή εισροή και
δίνεται από τη σχέση :
hP K 1z∂⎛ ⎞= − −⎜ ⎟∂⎝ ⎠
(2.25)
Η εισροή Ρ υπολογίζεται από τη σχέση :
Ρ = R – Eα – INT (2.26)
όπου :
R = η άρδευση / βροχόπτωση,
ΙΝΤ = η υδατοσυγκράτηση,
Eα = η πραγματική εξάτμιση από την επιφάνεια του εδάφους που δίνεται από τις
σχέσεις (2.6) και (2.7)
Η αντικατάσταση της (2.25) στην εξίσωση πρόβλεψης (2.19) δίνει τελικά :
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 24
n 1/2 n 1/2 n 1/2 nj 1 j j jn n 1/2 n n
j 1/2 j j jj j 1j
h h h h1 K 1 P S Cz zz t/22
+ + ++ +
++
⎡ ⎤⎛ ⎞⎢ ⎥⎜ ⎟− −
− − − =⎢ ⎥⎜ ⎟Δ + ΔΔ Δ⎢ ⎥⎜ ⎟⎜ ⎟⎢ ⎥⎝ ⎠⎣ ⎦
Η εξίσωση (2.21) μετά την εκτέλεση των πράξεων και αναδιάταξη των όρων
γράφεται σε τριδιαγωνική μορφή ως εξής :
( ) ( )n nj 1/2 j 1/2n 1/2 n 1/2
j 1 jn nj j 1 j j j j 1 j j
t K t Kh 1 h
z z z C z z z C+ ++ +
++ +
⎡ ⎤ ⎡ ⎤Δ ⋅ Δ ⋅− + + =⎢ ⎥ ⎢ ⎥
Δ + Δ Δ Δ + Δ Δ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( )n 1/2 n n nj j 1/2 j jn n
j j j
t tP K h Sz C 2C
++
Δ Δ= − + −Δ
(2.27)
Η εξίσωση (2.27) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1/2 n 1/2
j j 1 j j jA h B h D+ ++ + =
όπου :
( )nj 1/2
j nj j 1 j j
t KA
z z z C+
+
Δ ⋅= −
Δ + Δ Δ ,
( )nj 1/2
j nj j 1 j j
t KB 1
z z z C+
+
Δ ⋅= +
Δ + Δ Δ ,
( )n 1/2 n n nj j j 1/2 j jn n
j j j
t tD P K h S2 z C 2C
++
Δ Δ= − + −
Δ
Η εξίσωση διόρθωσης (2.20) αντίστοιχα γράφεται μετά την εκτέλεση των
πράξεων και αναδιάταξη των όρων σε τριδιαγωνική μορφή ως εξής :
( ) ( )n 1/2 n 1/2j 1/2 j 1/2n 1 n 1
j 1 jn 1/2 n 1/2j j 1 j j j j 1 j j
t K t Kh 1 h
z z z C z z z C
+ ++ ++ +
++ ++ +
⎡ ⎤ ⎡ ⎤Δ ⋅ Δ ⋅− + + =⎢ ⎥ ⎢ ⎥
Δ + Δ Δ Δ + Δ Δ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( ) ( )n n 1 n 1/2j j j 1/2n 1/2 n n n
j 1/2 j 1 j jn 1/2 n 1/2j j j j 1 j j
P P t Kt K h h hz C 2 z z z C
+ +++
− ++ ++
⎛ ⎞− Δ ⋅Δ= − + + − + −⎜ ⎟⎜ ⎟Δ Δ + Δ Δ⎝ ⎠
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 25
n 1/2jn 1/2
j
t SC
++
Δ− (2.28)
Η εξίσωση (2.28) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1 n 1
j j 1 j j jA h B h D+ ++ + =
όπου :
( )n 1/2j 1/2
j n 1/2j j 1 j j
t KA
z z z C
++
++
Δ ⋅= −
Δ + Δ Δ ,
( )n 1/2j 1/2
j n 1/2j j 1 j j
t KB 1
z z z C
++
++
Δ ⋅= +
Δ + Δ Δ ,
( ) ( )n n 1 n 1/2j j j 1/2n 1/2 n n n
j j 1/2 j 1 j jn 1/2 n 1/2j j j j 1 j j
P P t KtD K h h hz C 2 z z z C
+ +++
− ++ ++
⎛ ⎞− Δ ⋅Δ= − + + − + −⎜ ⎟⎜ ⎟Δ Δ + Δ Δ⎝ ⎠
n 1/2jn 1/2
j
t SC
++
Δ−
2.2.3.2 Κάτω οριακές συνθήκες
Το μοντέλο SWBACROS είναι έτσι γραμμένο ώστε να δέχεται μία από τις
ακόλουθες κάτω οριακές συνθήκες :
A. Γνωστή υπόγεια στάθμη
B. Ελεύθερη στράγγιση
Γ. Μηδενική ροή
Α. Γνωστή υπόγεια στάθμη
Όταν ο τελευταίος κόμβος του δικτύου βρίσκεται στο όριο της υπόγειας
στάθμης του νερού τότε το ύψος πίεσης στο σημείο αυτό θα τείνει προς το μηδέν
αφού το έδαφος θα είναι κορεσμένο. Έτσι με γνωστή την τιμή του ύψους πίεσης στον
τελευταίο κόμβο Ν, η λύση σταματά στον κόμβο Ν-1.
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 26
Η εξίσωση πρόβλεψης (2.19) για j=N-1 γράφεται : n 1/2 n 1/2j j j j 1h F G h+ +
+= +
Αντίστοιχα η εξίσωση διόρθωσης (2.20) για j=N-1 γράφεται : n 1 n 1j j j j 1h F G h+ +
+= +
Οι συντελεστές Fj και Gj εκφράζονται από τις σχέσεις :
j j j 1j
j j j 1
D C FF
B C G−
−
−=
+
jj
j j j 1
AG
B C G −
−=
+
όπου οι F1 και G1 προσδιορίζονται από την επάνω οριακή συνθήκη.
Β. Ελεύθερη στράγγιση Κατά την ελεύθερη στράγγιση, η ροή στο κάτω όριο qb ισούται με K(h). Έτσι
η εξίσωση πρόβλεψης (2.19) στο κάτω όριο (j=N) γράφεται σε τριδιαγωνική μορφή
ως εξής:
( ) ( )n nj 1/2 j 1/2n 1/2 n 1/2
j j 1n nj 1 j j j j 1 j j j
t K t K1 h h
z z z C z z z C− −+ +
−− −
⎡ ⎤Δ ⋅ Δ ⋅+ − =⎢ ⎥
Δ + Δ Δ Δ + Δ Δ⎢ ⎥⎣ ⎦
( )n n n nj 1/2 j 1/2 j jn n
j j j
t tK K h S2 z C C− +Δ Δ
= − + −Δ
(2.29)
Η εξίσωση (2.29) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1/2 n 1/2
j j j j 1 jB h C h D+ +−+ = (2.30)
όπου :
( )nj 1/2
j nj 1 j j j
t KB 1
z z z C−
−
Δ ⋅= +
Δ + Δ Δ ,
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 27
( )nj 1/2 n 1/2
j j 1nj 1 j j j
t KC h
z z z C− +
−−
Δ ⋅= −
Δ + Δ Δ ,
( )n n n nj j 1/2 j 1/2 j jn n
j j j
t tD K K h S2 z C C− +Δ Δ
= − + −Δ
Η εξίσωση (2.30) δίνει τελικά :
j j j 1n 1/2j j
j j j 1
D C Fh F
B C G−+
−
−= =
+
Αντίστοιχα η εξίσωση διόρθωσης (2.20) γράφεται σε τριδιαγωνική μορφή ως
εξής :
( ) ( )n 1/2 n 1/2j 1/2 j 1/2n 1 n 1
j j 1n 1/2 n 1/2j 1 j j j j j 1 j j
t K t K1 h h
z z z C z z z C
+ +− −+ +
−+ +− −
⎡ ⎤Δ ⋅ Δ ⋅+ − =⎢ ⎥
Δ + Δ Δ Δ + Δ Δ⎢ ⎥⎣ ⎦
( ) ( ) ( )n 1/2j 1/2n 1/2 n 1/2 n n n
j 1/2 j 1/2 j j 1 jn 1/2 n 1/2j j j j 1 j j
t Kt K K h h hz C z z z C
+−+ +
− + −+ +−
Δ ⋅Δ= − − − + −Δ Δ + Δ Δ
n 1/2jn 1/2
j
t SC
++
Δ− (2.31)
Η εξίσωση (2.31) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1 n 1
j j j j 1 jB h C h D+ +−+ = (2.32)
όπου :
( )n 1/2j 1/2
j n 1/2j 1 j j j
t KB 1
z z z C
+−
+−
Δ ⋅= +
Δ + Δ Δ ,
( )n 1/2j 1/2 n 1/2
j j 1n 1/2j 1 j j j
t KC h
z z z C
+− +
−+−
Δ ⋅= −
Δ + Δ Δ ,
( ) ( ) ( )n 1/2j 1/2n 1/2 n 1/2 n n n
j j 1/2 j 1/2 j j 1 jn 1/2 n 1/2j j j j 1 j j
t KtD K K h h hz C z z z C
+−+ +
− + −+ +−
Δ ⋅Δ= − − − + −Δ Δ + Δ Δ
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 28
n 1/2jn 1/2
j
t SC
++
Δ−
Η εξίσωση (2.32) δίνει τελικά :
n 1j jh F+ = = j j j 1
j j j 1
D C FB C G
−
−
−
+
Γ. Μηδενική ροή Όταν η ροή είναι μηδενική στο κάτω όριο (j=N) τότε σύμφωνα με το νόμο
του Darcy :
j N
hP K 1 0z =
∂⎛ ⎞= − − =⎜ ⎟∂⎝ ⎠
Oπότε η εξίσωση πρόβλεψης (2.19) γράφεται τελικά σε τριδιαγωνική μορφή
ως εξής :
( ) ( )n n nj 1/2 j 1/2 j 1/2n 1/2 n 1/2 n
j j 1 jnn nj jj 1 j j j j 1 j j j
t K t K t K1 h h h
2 z Cz z z C z z z C− − −+ +
−− −
⎡ ⎤Δ ⋅ Δ ⋅ Δ ⋅+ − = + −⎢ ⎥
ΔΔ + Δ Δ Δ + Δ Δ⎢ ⎥⎣ ⎦
njn
j
t S2CΔ
− (2.33)
Η εξίσωση (2.33) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) :
n 1/2 n 1/2j j j j 1 jB h C h D+ +
−+ = (2.34)
όπου :
( )nj 1/2
j nj 1 j j j
t KB 1
z z z C−
−
Δ ⋅= +
Δ + Δ Δ ,
( )nj 1/2
j nj 1 j j j
t KC
z z z C−
−
Δ ⋅= −
Δ + Δ Δ ,
nj 1/2 n n
j j jn nj j j
t K tD h S2 z C 2C
−Δ ⋅ Δ= + −
Δ
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 29
Από την εξίσωση (2.34) προκύπτει τελικά ότι :
n 1/2j jh F+ = = j j j 1
j j j 1
D C FB C G
−
−
−+
Αντίστοιχα η εξίσωση διόρθωσης (2.20) γράφεται σε τριδιαγωνική μορφή ως
εξής :
( ) ( )n 1/2 n 1/2j 1/2 j 1/2n 1 n 1
j j 1n nj 1 j j j j j 1 j j
t K t K1 h h
z z z C z z z C
+ +− −+ +
−− −
⎡ ⎤ ⎡ ⎤Δ ⋅ Δ ⋅+ − =⎢ ⎥ ⎢ ⎥
Δ + Δ Δ Δ + Δ Δ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( ) ( )n 1/2 n 1/2j 1/2 j 1/2 n n n n 1/2
j j 1 j jn 1/2 n 1/2n 1/2j j jj j 1 j j
t K t K th h h Sz C Cz z 1 z C
+ +− − +
−+ ++−
Δ ⋅ Δ ⋅ Δ= − − + −Δ Δ + Δ + Δ
(2.35)
Η εξίσωση (2.35) είναι γραμμένη με την ακόλουθη μορφή, η οποία και
επιλύεται με τον αλγόριθμο του Thomas (παράγραφος 2.3) : n 1 n 1
j j j j 1 jB h C h D+ +−+ = (2.36)
όπου :
( )n 1/2j 1/2
j nj 1 j j j
t KB 1
z z z C
+−
−
Δ ⋅= +
Δ + Δ Δ ,
( )n 1/2j 1/2
j nj 1 j j j
t KC
z z z C
+−
−
Δ ⋅= −
Δ + Δ Δ ,
( ) ( )n 1/2 n 1/2j 1/2 j 1/2 n n n n 1/2
j j j 1 j jn 1/2 n 1/2n 1/2j j jj j 1 j j
t K t K tD h h h Sz C Cz z 1 z C
+ +− − +
−+ ++−
Δ ⋅ Δ ⋅ Δ= − − + −Δ Δ + Δ + Δ
Από την εξίσωση (2.36) παίρνουμε τελικά :
n 1j jh F+ = = j j j 1
j j j 1
D C FB C G
−
−
−+
(2.37)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 30
2.3 Επίλυση συστήματος εξισώσεων με τριδιαγωνικό σύστημα συντελεστών
Όπως είδαμε και στη προηγούμενη παράγραφο συστήματα εξισώσεων με
τριδιαγωνικό πίνακα συντελεστών των αγνώστων εμφανίζονται πολύ συχνά κατά την
αριθμητική επίλυση μερικών διαφορικών εξισώσεων, όπως επίσης και σε διάφορες
άλλες εφαρμογές της αριθμητικής ανάλυσης.
Τα συστήματα έχουν τη μορφή :
b1x1 + c1x2 = d1
a2x1 + b2x2 + c2x3 = d2
a3x2 + b3x3 + c3x4 = d3
……
…… (2.38)
aixi-1+bixi +cixi+1 = di
……
an-1xn-2 + bn-1xn-1 + cn-1xn = dn-1
anxn-1 + bnxn = dn
Είναι προφανές ότι από την πρώτη εξίσωση μπορούμε να εκφράσουμε το x1
ως συνάρτηση του x2. Αν αντικαταστήσουμε την τιμή αυτή του x1 στη δεύτερη
εξίσωση, θα μας δώσει το x2 ως συνάρτηση του x3. Επαναλαμβάνοντας αυτές τις
αντικαταστάσεις μέχρι την τελευταία εξίσωση θα πάρουμε απ’ αυτήν την τιμή του xn
και με αντίστροφη αντικατάσταση όλους τους υπόλοιπους αγνώστους.
Για να αναπτύξουμε λοιπόν τον αλγόριθμο για τη λύση του συστήματος (2.38),
πρέπει να χρησιμοποιήσουμε ένα τύπο επαναφοράς της μορφής :
xi=Gixi+1+Fi (2.39)
όπου :
Gi , Fi = συντελεστές που πρέπει να προσδιορισθούν
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 31
Αντικαθιστώντας την (2.39) στη γενική εξίσωση του συστήματος (2.38)
παίρνουμε :
( )i i 1 i i 1 i i i i 1 ia G x F b x c x d− − ++ + + =
ή
i i i 1 ii i 1
i i 1 i i i 1 i
c a F dx xa G b a G b
−+
− −
− − += +
+ +
απ’ όπου συμπεραίνουμε ότι :
ii
i i 1 i
cGa G b−
−=
+ (2.40)
i i 1 ii
i i 1 i
a F dFa G b
−
−
− +=
+ (2.41)
Η εφαρμογή των (2.40) και (2.41) απαιτεί τις τιμές των Gi και Fi. Από την
πρώτη εξίσωση του συστήματος (2.38) παίρνουμε :
i 11 2
i 1
c dx xb b−
= +
απ’ όπου συνάγουμε ότι
i1
i
cGb−
=
και
11
1
dFb
=
Απομένει η εύρεση του xn για να μπορέσουμε να εφαρμόσουμε τον τύπο
επαναφοράς (2.39) για τον υπολογισμό των αγνώστων. Αντικατάσταση της (2.39)
στην τελευταία εξίσωση του (2.38) δίνει :
( )n n 1 n n 1 n n na G x F b x d− −+ + =
ή
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 32
n n 1 nn n
n n 1 n
a F dx Fa G b
−
−
− += =
+
Ο παραπάνω αλγόριθμος, που ονομάζεται αλγόριθμος του Τhomas
συνοψίζεται από τις παρακάτω σχέσεις :
xn=Fn
xi=Gixi+1+Fi , i=n-1,n-2,…,1
όπου : 11
1
cGb
= − ,
11
1
dFb
=
ii
i i 1 i
cGa G b−
= −+
, i=2,3,4,…,n
i i 1 ii
i i 1 i
a F dFa G b
−
−
− +=
+ , i=2,3,4,…,n
2.4 Δομή SWBACROS
Το πρόγραμμα SWBACROS είναι γραμμένο στη γλώσσα προγραμματισμού
FORTRAN. Το κυρίως πρόγραμμα αποτελείται από τα εξής τέσσερα αρχεία :
Sink1e.f90
Το αρχείο Sink1e.f90 είναι το βασικό αρχείο του SWBACROS και περιέχει
τις υπορουτίνες του προγράμματος που το όνομα τους ξεκινά από τα γράμματα Α-Ε.
Sinkff.f90
Το αρχείο Sinkff.f90 περιέχει τις υπορουτίνες του προγράμματος που το
όνομα τους ξεκινά από το γράμμα F.
Sinkip.f90
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 33
Το αρχείο Sinkip.f90 περιέχει τις υπορουτίνες του προγράμματος που το
όνομα τους ξεκινά από τα γράμματα I-P.
Sinkp9.f90
Το αρχείο Sinkp9.f90 περιέχει τις υπορουτίνες του προγράμματος που το
όνομα τους ξεκινά από τα γράμματα R-W.
Τα αρχεία εισόδου (input files) που χρειάζονται για την εισαγωγή δεδομένων
είναι τα ακόλουθα 4 (τέσσερα) :
gndata
Το GNDATA είναι το βασικό αρχείο δεδομένων του SWBACROS. Στον
παρακάτω πίνακα βλέπουμε τις μεταβλητές του GNDATA μαζί με τη σημασία τους.
Μεταβλητή
SWBACROS
Σημασία
IDIN Αρχική ημέρα υπολογισμών (Initial Day)
IMIN Αρχικός μήνας υπολογισμών (Initial Month)
IYIN Αρχικό έτος υπολογισμών (Initial Year)
IDLAST Τελική ημέρα υπολογισμών (Last Day)
IMLAST Τελικός μήνας υπολογισμών (Last Month)
IYLAST Τελικό έτος υπολογισμών (Last Year)
IDTDAY Τρέχουσα ημέρα (Today, Current Day)
IMTDAY Τρέχων μήνας (Current Month)
IYTDAY Τρέχον έτος (Current Year)
METHOD Επιλογή της αριθμητικής μεθόδου που θα χρησιμοποιήσει το
SWBACROS (Douglas – Jones predictor ή Implicit method)
MAXITER Μέγιστος αριθμός επαναλήψεων (η μεταβλητή χρησιμοποιείται
μόνο κατά την Implicit μέθοδο)
JMAX Μέγιστος αριθμός κόμβων (Nodal points)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 34
DEPTH Βάθος ακόρεστης ζώνης εδάφους (σε m)
DTPAR
Επιλογή του χρονικού βήματος που χρησιμοποιεί το SWBACROS
(σταθερό ή μεταβλητό χρονικό βήμα)
DT Αρχικό βήμα (για σταθερό ή μεταβλητό χρονικό βήμα) (σε min)
DTMIN Ελάχιστο βήμα για το μεταβλητό χρονικό βήμα (σε min)
DTMAX Μέγιστο βήμα για το μεταβλητό χρονικό βήμα (σε min)
ZETA Παράμετρος σύγκλισης για το μεταβλητό χρονικό βήμα (σε min)
OPT Επιλογή είδους εκτέλεσης του SWBACROS (Βελτιστοποιημένη ή
Κανονική εκτέλεση)
LAYER Αριθμός εδαφικών οριζόντων
OUT1 Αρχείο που περιέχει τα αποτελέσματα του υδατικού ισοζυγίου του
εδάφους
OUT2 Αρχείο που περιέχει τα αποτελέσματα των χαρακτηριστικών του
εδαφικού προφίλ
IBBC Επιλογή για την κάτω οριακή συνθήκη
IRWUT Ενεργοποίηση / απενεργοποίηση της πρόσληψης υγρασίας από τις
ρίζες του φυτού
MODUPT Επιλογή για χρήση του μοντέλου για τη μέγιστη δυνατή πρόσληψη
νερού από τις ρίζες (Feddes ή Prasad)
PSI1 Σημείο αναεροβίωσης (σε m) για τον υπολογισμό της πρόσληψης
νερού από τις ρίζες
PSI2 Κρίσιμο ύψος πίεσης (σε m)
PSI3 Ύψος πίεσης στην υδατοϊκανότητα (σε m)
IΤBC Επιλογή για την πάνω οριακή συνθήκη
UDFLUX Ροή δοσμένη από τον χρήστη για την πάνω οριακή συνθήκη (σε
m/day)
SIGMA Coefficient in actual evaporation function
PETIND Επιλογή για χρήση της μεθόδου υπολογισμού της δυναμικής
εξατμισοδιαπνοής (τροποποιημένης μεθόδου Penman ή από αρχείο
εισόδου)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 35
IPETC Επιλογή για εξαγωγή ή μη των παραμέτρων που χρησιμοποιήθηκαν
στον υπολογισμό της εξατμισοδιαπνοής στο αρχείο OUT1
IAVER Επιλογή για τον υπολογισμό της δυναμικής εξατμισοδιαπνοής
(κάνοντας χρήση καθημερινών δεδομένων ή παίρνοντας τον μέσο
όρο των κλιματολογικών δεδομένων για 10 ημέρες)
IRS Επιλογή για τον υπολογισμό της ηλιακής ακτινοβολίας (από το
αρχείο δεδομένων PNMETEO ή από το SWBACROS)
VRATIO Λόγος της ταχύτητας του ανέμου κατά τη διάρκεια της ημέρας και
της νύχτας
LFIRST Οι τιμές για το πρώτο σημείο κάθε κόμβου του κάθε εδαφικού
ορίζοντα
LLAST Οι τιμές για το τελευταίο σημείο κάθε κόμβου του κάθε εδαφικού
ορίζοντα
AKS Οι τιμές της κορεσμένης υδραυλικής αγωγιμότητας κάθε εδαφικού
ορίζοντα
THETS Οι τιμές της υπολειμματικής υγρασίας (θs) κάθε εδαφικού ορίζοντα
THETD Οι τιμές της περιεχόμενης στο έδαφος υγρασίας κατ’ όγκο (θ) κάθε
εδαφικού ορίζοντα
AV Συντελεστής α προσδιοριζόμενος από την χαρακτηριστική καμπύλη
στην εξίσωση Van Genuchten κάθε εδαφικού ορίζοντα
ANV Εμπειρική παράμετρος n προσδιοριζόμενη από την χαρακτηριστική
καμπύλη στην εξίσωση Van Genuchten κάθε εδαφικού ορίζοντα
DELZ Οι τιμές του μεγέθους (σε m) κάθε κελιού
Y Οι τιμές των αρχικών τιμών της αρνητικής πίεσης (σε m) κάθε
κόμβου
pldata
Το αρχείο PLDATA περιέχει τα δεδομένα για τον υπολογισμό της
πρόσληψης της υγρασίας από το ριζικό σύστημα. Απαραίτητα προϋπόθεση για την
χρήση αυτών των δεδομένων είναι η ενεργοποίηση από τον χρήστη της πρόσληψης
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 36
της υγρασίας από τις ρίζες του φυτού (μεταβλητή IRWUT του αρχείου GNDATA).
Οι μεταβλητές που περιέχονται σε αυτό το αρχείο φαίνονται στον παρακάτω πίνακα :
Μεταβλητή SWBACROS Σημασία
SC Εδαφοκάλυψη (0.0-1.0)
ROOTDP Βάθος ριζικού συστήματος (σε m)
CF1 Φυτικός συντελεστής καλλιέργειας
pnmeteo
Το αρχείο PNMETEO περιέχει τα μετεωρολογικά στοιχεία τα οποία είναι
απαραίτητα για τον υπολογισμό της εξατμισοδιαπνοής μέσω της τροποποιημένης
μεθόδου του Penman. Απαραίτητα προϋπόθεση για την χρησιμοποίηση των
δεδομένων του αρχείο είναι να επιλεγεί η μέθοδος αυτή από το χρήστη μέσω της
μεταβλητής PETIND. Στον παρακάτω πίνακα βλέπουμε της μεταβλητές που
περιέχονται στο αρχείο αυτό.
Μεταβλητή
SWBACROS
Σημασία
ALT Υψόμετρο μετεωρολογικού σταθμού (σε m)
PLAT Γεωγραφικό πλάτος μετεωρολογικού σταθμού (σε μοίρες)
STNAME Όνομα μετεωρολογικού σταθμού
TM Μέση ημερήσια θερμοκρασία
RME Πίεση κορεσμού υδρατμών
RMA Πραγματική πίεση υδρατμών
ALH Πραγματική καθημερινή ηλιοφάνεια (σε ώρες)
V24 Ταχύτητα ανέμου (σε m/sec)
RAIN Αρδευση / βροχόπτωση κατά τη διάρκεια της ημέρας (σε mm/day)
RS Ηλιακή ακτινοβολία (σε mm/day)
Κεφάλαιο 2 Μαθηματική προσομοίωση της κίνησης του εδαφικού νερού 37
optim
Το αρχείο OPTIM περιέχει δεδομένα για την εκτίμηση των παραμέτρων. Τα
δεδομένα αυτά χρησιμοποιούνται όταν επιλεγεί από τον χρήστη η εκτέλεση
βελτιστοποιημένη εκτέλεση, μέσω της μεταβλητής OPT.
Τα αρχεία εξόδου (output files), αν και ορίζονται από τον χρήστη (OUT1
και OUT2), είναι συνήθως τα εξής:
profile.out
water.bal
Για περισσότερες πληροφορίες, όσον αφορά τη δομή του προγράμματος
SWBACROS, ο αναγνώστης παραπέμπεται στο εγχειρίδιο οδηγιών του
(Babajimopoulos, SWBACROS Simulation of the water balance of a cropped soil,
Thessaloniki, June 1996)
Κεφάλαιο 3 LIQUID 38
Κεφάλαιο 3 LIQUID
3.1 Περί MATLAB
3.1.1 Εισαγωγικά
Η MATLAB είναι ένα ολοκληρωμένο περιβάλλον προγραμματισμού και
ταυτόχρονα μία υψηλού επιπέδου γλώσσα προγραμματισμού. Οι δυνατότητές της
είναι τόσες πολλές που τόμοι ολόκληροι δεν θα ήταν αρκετοί για να τις περιγράψουν.
Η MATLAB χρησιμοποιείται κυρίως για τεχνικό προγραμματισμό και αυτό γιατί
έχει μεγάλες γραφικές δυνατότητες, ευκολία και ταχύτητα υλοποίησης αλγορίθμων
καθώς και πάρα πολλές έτοιμες συναρτήσεις. Ακόμη εντυπωσιακές λειτουργίες της
είναι ο αντικειμενοστρεφής προγραμματισμός, η δημιουργία GUI (Graphical User
Interfaces) καθώς και η δημιουργία μαθηματικών μοντέλων. Η τελευταία έκδοση της
MATLAB 7 (R14) είναι και αυτή στην οποία γράφτηκε το πρόγραμμα LIQUID.
3.1.2 Το περιβάλλον της MATLAB
Ο χώρος εργασίας της ΜΑΤLAB, όπως αυτό φαίνεται στην εικόνα 3.1.1,
χωρίζεται σε τρία μέρη. Στη μέση και αριστερά βλέπουμε τα περιεχόμενα (αρχεία)
του τρέχοντος καταλόγου Current directory (Τρέχων κατάλογος). Έτσι στο
Current directory – C:\LIQUID βλέπουμε τα αρχεία του καταλόγου LIQUID το
οποίο περιέχει το αρχεία του προγράμματος LIQUID. Στο δεξί μέρος της οθόνης
υπάρχει το Command Window (παράθυρο εντολών) είναι ο χώρος στον οποίο
δίνει ο χρήστης τις εντολές. Και τέλος στο κάτω αριστερό μέρος, υπάρχει το
Command History (ιστορικό εντολών) το οποίο περιέχει το ιστορικό των εντολών
που ο χρήστης πληκτρολόγησε στο προηγούμενο μέρος.
Κεφάλαιο 3 LIQUID 39
Εικόνα 3.1.1 – Επιφάνεια εργασίας της MATLAB
Η γραμμή του παραθύρου εντολών στην οποία γράφεται οτιδήποτε εισάγεται
από το πληκτρολόγιο ονομάζεται γραμμή εντολών (command line). Είναι η
τελευταία γραμμή στην οποία εμφανίζεται το σύμβολο προτροπής (prompt) της
ΜΑΤLAB. Το σύμβολο προτροπής είναι το σύμβολο >> για την επαγγελματική
έκδοση της MATLAB. Δεξιά του συμβόλου προτροπής αναβοσβήνει ο δρομέας, μια
κάθετη | γραμμή. Το αναβόσβημα του δρομέα αποτελεί ένδειξη ότι η MATLAB
είναι έτοιμη να δεχθεί εντολές. Συνήθως οι εντολές τελειώνουν με το πάτημα του
πλήκτρου enter. Όπως σ’ όλες τις γλώσσες προγραμματισμού, έτσι και στη
MATLAB, κάθε εντολή είναι μια διαταγή προς εκτέλεση. Οι εντολές έχουν
αυστηρότατους κανόνες σύνταξης, κάθε παραβίαση των οποίων οδηγεί σε μηνύματα
λάθους.
Τα αρχεία της MATLAB χαρακτηρίζονται από τη προέκταση .m, για τη
δημιουργία των οποίων κάνουμε χρήση του M-file editor, οπού σε κάθε σειρά
γράφουμε μία εντολή.
Μερικά γενικά χαρακτηριστικά της MATLAB είναι και τα παρακάτω :
1) Η MATLAB δουλεύει με διπλή ακρίβεια. Κάνει διάκριση μεταξύ κεφαλαίων
και πεζών. Όλες οι εντολές του εισάγονται με πεζά. Όλες οι παράμετροι
Κεφάλαιο 3 LIQUID 40
εντολών εισάγονται με το μείον -ΠΑΡΑΜΕΤΡΟΣ (π.χ. save LIQUID -
append)
2) Οι μεταβλητές αρχίζουν πάντα με γράμμα (ποτέ με αριθμό ή σύμβολο)
3) Οι δείκτες αρχίζουν από το 1 (και όχι από το 0)
4) Το ελληνικό ερωτηματικό (;) μετά από μία δήλωση, έχει ως αποτέλεσμα να
μην παρουσιαστούν τα αποτελέσματα της δήλωσης αυτής στην οθόνη της
MATLAB
5) Το βασικό στοιχείο της MATLAB είναι ο πίνακας. Τα διανύσματα
εκφράζονται ως πίνακας διάστασης 1xN ενώ οι αριθμοί ως πίνακες διάστασης
1x1
6) Τα σχόλια (που ακολουθούν το σύμβολο %) δεν εκτελούνται
7) Για να σταματήσουμε την εκτέλεση μιας εντολής ή την εμφάνιση των
αποτελεσμάτων στην οθόνη, πατάμε Ctrl+C
8) Οι σχεσιακοί συντελεστές της ΜΑΤLAB είναι για την ισότητα == και για την
ανισότητα ~=
9) Οι πράξεις είναι + πρόσθεση, - αφαίρεση, * πολλαπλασιασμός, / ή \
διαίρεση, ^ ύψωση σε δύναμη
Βοήθημα στη κατανόηση των παρακάτω εντολών καθώς και πολλά
παραδείγματα, μπορεί να δώσει η βοήθεια της MATLAB (Matlab Help) (από το τη
γραμμή μενού Help Matlab Help, ή πατώντας το πλήκτρο F1 από οποιοδήποτε
σημείο της MATLAB). Ακόμη σημαντικότατο βοήθημα κατανόησης της MATLAB
αποτελεί και το εγχειρίδιο χρήσης της, το Matlab Reference Book, το οποίο
βρίσκεται στο δικτυακό τόπο της κατασκευάστριας εταιρείας της MATLAB,
MathWorks (MATLAB Documentation) (σε HTML και PDF μορφή). Για την
HTML μορφή του Matlab Reference Βook ο αναγνώστης παραπέμπεται στην
ηλεκτρονική διεύθυνση της εταιρείας MathWorks
www.mathworks.com/access/helpdesk/techdoc/matlab.html , ενώ για την PDF
μορφή στην www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/
Κεφάλαιο 3 LIQUID 41
Για περισσότερες πληροφορίες για τα πρώτα βήματα στη MATLAB ο
αναγνώστης παραπέμπεται στο Matlab Reference Book : Getting Started with
MATLAB
3.1.3 Δημιουργία GUI εφαρμογών
Η MATLAB προσφέρει στο χρήστη τη δυνατότητα να κατασκευάσει δικές
του γραφικές διεπιφάνειες GUI (Graphical User Interfaces). Η χρησιμότητα αυτής
της λειτουργίας είναι μεγάλη, επειδή τα προγράμματα – εφαρμογές τα οποία
περιέχουν γραφική διεπιφάνεια γίνονται πιο φιλικές στον τελικό χρήστη. Η
εργαλειοθήκη η οποία δημιουργεί τις GUI εφαρμογές ονομάζεται GUIDE και
περιέχει μια πληθώρα χρήσιμων εργαλείων όπως κουμπιά, πλαίσια κ.ά.
Μια GUI εφαρμογή συνήθως αποτελείται από διάφορα παράθυρα τα οποία
περιέχουν ποικίλα στοιχεία ελέγχου όπως πεδία κειμένου, γραμμές κύλισης κ.ά.. Τα
παράθυρα αυτά είναι δυνατόν να καλούν το ένα το άλλο, να δέχονται δεδομένα από
τον χρήστη, να μεταβιβάζουν δεδομένα από το ένα παράθυρο στο άλλο και γενικά να
επιτελούν διάφορες λειτουργίες. Το GUIDE για να το πετύχει αυτό δημιουργεί για
κάθε νέο παράθυρο, δύο αρχεία. Τα αρχεία αυτά είναι ένα FIG – αρχείο και ένα m
– αρχείο.
To FIG αρχείο, ουσιαστικά είναι το παράθυρο – figure (φόρμα) όπου το
MATLAB αποθηκεύει τα στοιχεία ελέγχου και την ακριβή τους θέση. Στο αρχείο
αυτό ο προγραμματιστής σχεδιάζει την εμφάνιση του παραθύρου.
Στο m αρχείο, στο οποίο ο προγραμματιστής πρέπει να γράψει τον κώδικα
που θα ενσωματωθεί στα στοιχεία ελέγχου (π.χ. κουμπιά ή φόρμες εισαγωγής
δεδομένων), ώστε αυτά να εκτελούν τις επιθυμητές λειτουργίες.
Πρέπει να σημειωθεί ότι κάθε αρχείο fig πρέπει να συνοδεύεται από το
αντίστοιχο αρχείο m με το ίδιο όνομα (για παράδειγμα το αρχείο liquid.fig
συνοδεύεται από το liquid.m). Αν για κάποιο λόγο, χαθεί ή καταστραφεί το m
αρχείο, τότε το fig παράθυρο δεν θα είναι πλέον λειτουργικό. Κάθε φορά που ο
Κεφάλαιο 3 LIQUID 42
χρήστης δημιουργεί ένα νέο παράθυρο (figure), το GUIDE δημιουργεί αυτομάτως
και τους δύο προαναφερθέντες τύπους αρχείων.
Η εκκίνηση του GUIDE (εικόνα 3.1.2) γίνεται εύκολα με τρεις τρόπους.
• με τη κλήση της ομώνυμης συνάρτησης από τη γραμμή εντολών της
MATLAB
>> guide
• επιλέγοντας από τη γραμμή μενού File New GUI , και
• επιλέγοντας από τη επιλογή Start (της ΜΑΤLAB) MATLAB GUIDE
(Gui Builder)
Εικόνα 3.1.2 – Αρχικός οδηγός του GUIDE
Για την επεξεργασία / αλλαγή κάποιου αρχείου που κατασκευάστηκε με την
εργαλειοθήκη του GUIDE, αρκεί να πληκτρολογήσουμε στη γραμμή εντολών
>> guide ΟΝΟΜΑ_ΑΡΧΕΙΟΥ
(π.χ. >> guide LIQUIDmenu )
Για περισσότερες πληροφορίες για τη δημιουργία GUI εφαρμογών και την
εργαλειοθήκη GUIDE ο αναγνώστης παραπέμπεται στο Matlab Reference Book :
Creating Graphical Users Interfaces
Κεφάλαιο 3 LIQUID 43
3.1.4 Ανάλυση εντολών MATLAB που χρησιμοποιούνται στο κώδικα του LIQUID
Στο κεφάλαιο αυτό γίνεται μια αναφορά στις εντολές της ΜΑΤLAB που
χρησιμοποιούνται στον κώδικα του LIQUID (βλέπε Παράρτημα).
save
Η εντολή save έχει τη δυνατότητα να αποθηκεύει τις μεταβλητές της MATLAB σε
αρχεία της επιλογής μας, είτε σε ASCII, είτε σε binary μορφή.
Η σύνταξη της είναι η ακόλουθη : save ONOMA_ΑΡΧΕΙΟΥ ΜΕΤΑΒΛΗΤΗ1 ΜΕΤΑΒΛΗΤΗ2 … ΠΑΡΑΜΕΤΡΟΙ
Στο LIQUID επιλέχθηκε η δεύτερη μορφή, η binary. Η εντολή save βρίσκει χρήση
στον κώδικα του LIQUID στα βήματα 2,3,4,5 (παράρτημα LIQUIDstep2.m,
LIQUIDstep3.m, LIQUIDstep4.m, LIQUIDstep5.m), βήματα κατά τα οποία
αποθηκεύουμε τις μεταβλητές που δίνει ο χρήστης. Χαρακτηριστικά στο βήμα 4 του
LIQUID γίνεται αποθήκευση των μεταβλητών SizeNodalPoints1 και InitialY1 στο
αρχείο LIQUIDvars (αν παραλειφθεί η προέκταση του αρχείου και το είδος του,
αυτόματα η MATLAB επιλέγει τη binary μορφή δίνοντας τη προέκταση .mat MAT-
files). Η παράμετρος –append ορίζει στη save ότι θα γίνει προσθήκη των
μεταβλητών μας στο αρχείο (και όχι επαναδημιουργία του αρχείου του και εγγραφή
μόνο των δύο μεταβλητών). save LIQUIDvars SizeNodalPoints1 InitialY1 -append
load
Η εντολή load συνδυάζεται με τη μεταβλητή save. Η εντολή load φορτώνει στη
μνήμη τις μεταβλητές ενός αρχείου.
Η σύνταξη της είναι η ακόλουθη : load ONOMA_ΑΡΧΕΙΟΥ
Κεφάλαιο 3 LIQUID 44
Η ακόλουθη εντολή φορτώνει στη μνήμη όλες τις μεταβλητές του αρχείου
LIQUIDvars.mat (αν παραλειφθεί η προέκταση, αυτόματα η MATLAB επιλέγει την
.mat) που θα χρησιμοποιήσουμε στο πρόγραμμα μας load LIQUIDvars
fopen, fprintf, fclose
Οι τρεις αυτές εντολές συνδυάζονται και μας βοηθάνε στη δημιουργία ascii αρχείων
και στην αποθήκευση μεταβλητών με συγκεκριμένο format μέσα σε αυτά. Με την
εντολή fopen ορίζουμε το όνομα του αρχείου που επιθυμούμε να αποθηκεύσουμε
τις μεταβλητές μας καθώς και το είδος του (ascii, binary). Η εντολή fprintf
αποθηκεύει στο αρχείο, που ορίσαμε στην εντολή fopen, κάποιες μεταβλητές με ένα
συγκεκριμένο format. Τέλος η εντολή fclose κλείνει το αρχείο.
Η σύνταξη τους fid=fopen(‘ΟΝΟΜΑ_ΑΡΧΕΙΟΥ’,’ΠΑΡΑΜΕΤΡΟΙ’)
fprintf (fid,format,ΜΕΤΑΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,…)
.
.
.
status=fclose(fid)
(η επιλογή των ονομάτων των μεταβλητών status, fid έγινε τυχαία)
Οι εντολές αυτές βρίσκουν χρήση στο 6ο βήμα του LIQUID (παράρτημα
LIQUIDmenu.m), βήμα κατά το οποίο δημιουργούμε το αρχείο GNDATA
(παράγραφος 3.2.5) από τις μεταβλητές που έδωσε ο χρήστης στα βήματα 2,3,4.
Έτσι έχουμε στο LIQUIDmenu.m :
fid=fopen('GNDATA','w');
fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDIN,IMIN,IYIN);
fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDLAST,IMLAST,IYLAST);
Κεφάλαιο 3 LIQUID 45
fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDTDAY,IMTDAY,IYTDAY);
.
.
fprintf(fid,'%s\n',OUTPUTFILE1);
fprintf(fid,'%s\n',OUTPUTFILE2);
.
. status = fclose(fid)
Με την πρώτη εντολή ανοίγουμε το αρχείο GNDATA. Με την παράμετρο ‘w’
ορίζουμε ότι το αρχείο GNDATA προορίζεται για εγγραφή και τα περιεχόμενά του
θα διαγραφούν.
Με τις τρεις επόμενες εντολές γράφουμε στο αρχείο GNDATA τις μεταβλητές
IDIN, IMIN, IYIN, IDLAST, IMLAST, IYLAST, IDTDAY, IMTDAY,
IYTDAY. Τα formats εγγραφής δίνονται με την ακόλουθη μορφή :
%ΕΛΑΧΙΣΤΟ_ΜΗΚΟΣ_ΠΕΔΙΟΥ.ΑΡΙΘΜΟΣ_ΔΕΚΑΔΙΚΩΝ_ΨΗΦΙΩΝf
το f σημαίνει ότι το πεδίο θα είναι αριθμητικής μορφής, το κόμμα (,) ανάμεσα στα
δύο formats δείχνει ότι θα τα χωρίζει το κόμμα (,) ενώ το \n σημαίνει ότι μετά την
εγγραφή των μεταβλητών πηγαίνει στο επόμενο record.
Έτσι αν οι τιμές των μεταβλητών είναι IDIN=1, IMIN=4, IYIN=2005,
IDLAST=16, IMLAST=4, IYLAST=2005, IDTDAY=29, IMTDAY=5,
IYTDAY=2005 οι τρείς πρώτες γραμμές του αρχείου GNDATA θα είναι :
1,4,2005
16,4,2005
29,5,2005
Η διαφορά των δύο επόμενων fprintf, με όλα τα προηγούμενα fprintf, είναι το s το
οποίο δείχνει ότι οι μεταβλητές που γράφουμε (OUTPUTFILE1, OUTPUTFILE2)
είναι αλφαριθμητικής μορφής (string).
Κεφάλαιο 3 LIQUID 46
Με την ολοκλήρωση των εγγραφών μας, στην τελευταία εντολή, κλείνουμε το αρχείο
GNDATA και αποθηκεύουμε το αποτέλεσμα της εγγραφής στη μεταβλητή status (η
μεταβλητή status μπορεί να παραλειφθεί, μπορούμε δηλαδή απλά να γράψουμε
fclose(fid)).
plot
Η βασικότερη και πιο δημοφιλής εντολή γραφικών της MATLAB είναι η plot με την
οποία γίνονται δισδιάστατες γραφικές παραστάσεις καμπυλών.
Η σύνταξη της εντολής plot έχει παραπάνω από μία μορφές. Ενδεικτικά γίνεται
αναφορά σε εκείνες που συναντώνται στον κώδικα του LIQUID (παράρτημα
LIQUIDmenu.m):
plot(METABΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,ΠΑΡΑΜΕΤΡΟΣ1)
Η εντολή αυτή ενώνει τα διαδοχικά σημεία των
(ΜΕΤΑΒΛΗΤΗ1i,METABΛΗΤΗ2i) , i=1,2,…, ενώ η ΠΑΡΑΜΕΤΡΟΣ1 ορίζει
το στυλ, χρώμα και το είδος των σημαδιών της γραφικής παράστασης
plot(ΜΕΤΑΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,ΠΑΡΑΜΕΤΡΟΣ1,ΜΕΤΑΒΛΗΤΗ3,ΜΕΤΑΒΛΗΤΗ4,Π
ΑΡΑΜΕΤΡΟΣ2)
Η εντολή αυτή ενώνει τα διαδοχικά σημεία των (ΜΕΤΑΒΛΗΤΗ1i,
METABΛΗΤΗ2i) , i=1,2,… με ΠΑΡΑΜΕΤΡΟΣ1 (στυλ, χρώμα) και
(ΜΕΤΑΒΛΗΤΗ3i,METABΛΗΤΗ4i) , i=1,2,… με ΠΑΡΑΜΕΤΡΟΣ2 (στυλ,
χρώμα)
plot(METAΒΛΗΤ1,ΜΕΤΑΒΛΗΤ2,ΜΕΤΑΒΛΗΤ3,ΜΕΤΑΒΛΗΤ4,ΜΕΤΑΒΛΗΤ5,ΜΕΤΑΒΛΗ
Τ6)
Η εντολή αυτή ενώνει τα διαδοχικά σημεία των (ΜΕΤΑΒΛΗΤΗ1i,
METABΛΗΤΗ2i), (ΜΕΤΑΒΛΗΤΗ3i,METABΛΗΤΗ4i), (ΜΕΤΑΒΛΗΤΗ5i,
METABΛΗΤΗ6i) , i=1,2,…
Κεφάλαιο 3 LIQUID 47
Στον παρακάτω πίνακα φαίνονται όλες οι διαθέσιμες επιλογές για αλλαγή των
χρωμάτων, στυλ γραμμής και είδους σημαδιών των γραφικών παραστάσεων.
Χρώμα Σημάδια Μορφή γραμμής
Y (κίτρινο) . (τελεία) - (συνεχής)
M (ιώδες) o (κύκλος) : (τελείες)
C (κυανό) x (σημείο x) -. (τελείες και παύλες)
R (κόκκινο) + (σημείο +) -- (διακεκομένη)
G (πράσινο) * (αστερίσκος)
B (γαλάζιο) s (τετράγωνο)
W (άσπρο) d (ρόμβος)
K (μαύρο) v (βέλος κάτω)
^ (βέλος πάνω)
< (βέλος αριστερά)
> (βέλος δεξιά)
p (πεντάγωνο)
h (εξάγωνο)
Στην παρακάτω εντολή γίνεται ένα παράδειγμα χρήσης του παραπάνω πίνακα (για
την αλλαγή του χρώματος, του στυλ γραμμής καθώς και του σημαδιού των γραφικών
παραστάσεων) plot(x,y,’ro-.‘,x1,y1,’k*-‘)
Ετσι η εντολή αυτή εμφανίζει σε μία γραφική παράσταση τα (xi,yi) με κόκκινες
τελείες και παύλες, με κύκλους για σημεία και τα (x1i,y1i) με μαύρη συνεχή γραμμή
με αστερίσκους για σημεία
Η αλλαγή του πάχους της γραμμής των γραφικών παραστάσεων γίνεται με την
παράμετρο LineWidth (‘LineWidth’,ΜΕΓΕΘΟΣ), δηλαδή plot(x,y,’y.-‘,’LineWidth’,3)
Κεφάλαιο 3 LIQUID 48
Η εντολή plot χρησιμοποιείται σχεδόν σε όλες τις functions γραφικών του LIQUID
(LIQUIDmenu). Μαζί με την εντολή plot χρησιμοποιούμε και κάποιες άλλες
εντολές που μας βοηθάνε στην καλύτερη απεικόνιση των δεδομένων μας.
subplot (x,y,N)
Η εντολή subplot χρησιμοποιείται κατά την περίπτωση που επιθυμούμε να
χωρίσουμε την γραφική μας παράσταση σε περισσότερες από μία. Η εντολή αυτή
χωρίζει τη σελίδα μας σε x επι y γραφικές παραστάσεις και κάνει ενεργή την Ν-
ιοστή (βλέπε παράρτημα LIQUIDmenu.m τη function THREEinONE)
xlabel (‘Ονομα άξονα x’)
Με την εντολή xlabel ορίζουμε το όνομα του άξονα xx’
ylabel (‘Ονομα άξονα y’)
Με την εντολή ylabel ορίζουμε το όνομα του άξονα yy’
title (‘Τίτλος γραφικής παράστασης’,’fontsize’,Mέγεθος)
Με την εντολή title ορίζουμε τον τίτλο της γραφικής παράστασης καθώς και το
μέγεθος της μέσω της παραμέτρου ‘fontsize’
figure (‘Name’,’Όνομα γραφικής παράστασης’)
Η εντολή figure ορίζει όνομα στην γραφική μας παράσταση (όνομα του
παράθυρου) (εμφανίζεται πάνω αριστερά στο παράθυρό της γραφικής)
legend (‘Όνομα υπομνήματος’)
Με την εντολή legend ορίζουμε το όνομα του υπομνήματος μας. Για την
περίπτωση κατά την οποία έχουμε να εμφανίσουμε παραπάνω από δύο ζευγάρια
μεταβλητών για παράδειγμα plot(METABΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,ΜΕΤΑΒΛΗΤΗ3,
ΜΕΤΑΒΛΗΤΗ4,ΜΕΤΑΒΛΗΤΗ5,ΜΕΤΑΒΛΗΤΗ6) και θέλουμε υπομνήματα και για τα
τρία ζευγάρια, αυτό γίνεται με την εντολή
Κεφάλαιο 3 LIQUID 49
legend(‘Υπόμνημα των 1,2’,’Υπόμνημα των 3,4’,‘Υπόμνημα των
5,6’)
Η αλλαγή της θέσης του υπομνήματος μπορεί να γίνει είτε χειροκίνητα σέρνοντάς
το με τον δείκτη του ποντικιού στη θέση που εμείς επιθυμούμε, είτε με την
παράμετρο ‘Location’ όπως παρακάτω : legend(‘Όνομα υπομνήματος’,’Location’,No)
Οι τιμές της No για την θέση του υπομνήματος φαίνονται στον παρακάτω πίνακα :
Τιμή Νο Θέση υπομνήματος
-1 Δεξιά έξω από την γραφική παράσταση
0 Επιλέγεται από η MATLAB θέση μέσα στη γραφική παράσταση ώστε
να υπάρχουν οι ελάχιστες δυνατές επικαλύψεις
1 Πάνω δεξιά γωνία μέσα στην γραφική παράσταση
2 Πάνω αριστερή γωνία μέσα στην γραφική παράσταση
3 Κάτω αριστερή γωνία μέσα στην γραφική παράσταση
4 Κάτω δεξιά γωνία μέσα στην γραφική παράσταση
grid on / off
Η εντολή grid εμφανίζει (on) ή δεν εμφανίζει (off) τις γραμμές του πλέγματος της
γραφικής μας παράστασης. Η MATLAB έχει ως προεπιλογή την μη εμφάνιση των
γραμμών του πλέγματος (grid off)
clf
Η εντολή clf καθαρίζει τον χώρο της γραφικής μας παράστασης
bar(ΜΕΤΑΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,’ΧΡΩΜΑ_ΜΠΑΡΑΣ’)
Η εντολή bar εμφανίζει σε ραβδόγραμμα (μπάρα) τη ΜΕΤΑΒΛΗΤΗ2 και τη
ΜΕΤΑΒΛΗΤΗ1. Το χρώμα της μπάρας (’ΧΡΩΜΑ_ΜΠΑΡΑΣ’) είναι ανάλογο με
αυτό που χρησιμοποιούμε στην εντολή plot.
Κεφάλαιο 3 LIQUID 50
Έτσι για να έχουμε πράσινο χρώμα μπάρας για το συγκεκριμένο παράδειγμα θα
χρησιμοποιήσουμε την παράμετρο ’g’ bar(METAΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,’g’)
Η μόνη εφαρμογή της εντολής bar γίνεται στην παράγραφο 3.2.2.6.14 (Precipitation
/ Irrigation and intercepted rain per day)
surfc(ΜΕΤΑΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ2,ΜΕΤΑΒΛΗΤΗ3)
H εντολή surfc εμφανίζει σε τρισδιάστατο σύστημα συντεταγμένων τις
ΜΕΤΑΒΛΗΤΗ3, ΜΕΤΑΒΛΗΤΗ2 και ΜΕΤΑΒΛΗΤΗ1.
Η μόνη εφαρμογή της εντολής surfc γίνεται στην παράγραφο 3.2.2.6.29 (Water
content profile (3D))
textread
Η εντολή textread χρησιμοποιείται για να διαβάσουμε από αρχεία ascii δεδομένα
συγκεκριμένου format.
Η σύνταξη της : [ΜΕΤΑΒΛΗΤΗ1 ΜΕΤΑΒΛΗΤΗ2 ΜΕΤΑΒΛΗΤΗ3 …]=textread(‘ONOMA_AΡΧΕΙΟΥ’,
’format’ ,’ΠΑΡΑΜΕΤΡΟΙ’)
Παράδειγμα χρήσης της εντολής textread
Έστω ότι θέλουμε να διαβάσουμε από το αρχείο INPUT.TXT τις μεταβλητές
MEGETHOS και XRONOS που βρίσκονται με τη μορφή στηλών μέσα σε αυτό,
όπως παρακάτω :
Μέγεθος Χρόνος
1 1.4
2 2.3
3 3.5
4 3.6
Κεφάλαιο 3 LIQUID 51
Το αρχείο αυτό έχει μία γραμμή για επικεφαλίδα και τα δεδομένα που θέλουμε είναι
αριθμητικά και βρίσκονται σε δύο στήλες. Η μορφή που θα έχει η εντολή textread
για να διαβάσει τα δεδομένα αυτά και να τα αποθηκεύει στους πίνακες MEGETHOS
και XRONOS θα είναι η : [MEGETHOS XRONOS]=textread('INPUT.TXT','%f %f','headerlines',
1)
Το '%f %f' σημαίνει ότι έχουμε αριθμητικά δεδομένα σε δύο στήλες (για την εντολή
textread δεν έχει σημασία σε πόση απόσταση (χαρακτήρες) βρίσκονται τα δεδομένα
αρκεί να βρίσκονται σε μορφή στηλών) και το 'headerlines',1 δηλώνει ότι
παραλείπεται η ανάγνωση της πρώτης σειράς.
Το περιεχόμενο των MEGETHOS και XRONOS μετά την εντολή textread θα είναι
MEGETHOS = [1 2 3 4] και XRONOS=[1.4 2.3 3.5 3.6]
Η εντολή textread χρησιμοποιείται στο LIQUIDmenu για να διαβάζει από τα text
αρχεία, που δημιουργούνται μετά την εκτέλεση του SWBACROS, τα δεδομένα που
θα εμφανίσει γραφικά το LIQUID
closereq
Η εντολή closereq κλείνει το ενεργό παράθυρο μας. Χρησιμοποιείται στο
LIQUID, όταν αλλάζουμε βήμα καθώς και όταν επιλέγουμε την έξοδο από αυτό.
global METABLHTH1 METABLHTH2 …
Η εντολή global κάνει τις μεταβλητές ΜΕΤΑΒLHTH1, METABLHTH2, … ,
κοινές για όσες συναρτήσεις κάνουν χρήση της εντολής αυτής. Συνηθίζεται να
χρησιμοποιούμε την εντολή στην αρχή του προγράμματος, όπου και ορίζουμε όλες
τις μεταβλητές που θα χρησιμοποιήσουμε και σε κάθε function ξεχωριστά καλούμε
την εντολή μόνο με τις μεταβλητές χρειαζόμαστε.
Κεφάλαιο 3 LIQUID 52
Ένα παράδειγμα χρήσης της εντολής global βλέπουμε στις παρακάτω εντολές. Στο
κυρίως πρόγραμμα στο οποίο ορίζουμε πέντε μεταβλητές global και δύο υπορουτίνες
στις οποίες χρησιμοποιούμε τέσσερις μεταβλητές από αυτές. Στη πρώτη υπορουτίνα
ADD_METABLHTES χρησιμοποιούμε τις μεταβλητές ΜΕΤΑBLHTH1 και
METABLHTH2 τις οποίες αθροίζουμε, ενώ στη δεύτερη DIV_METABLHTES
διαιρούμε τη METABLHTH3 με την METABLHTH4.
% Αρχή του προγράμματος
global METABLHTH1 METABLHTH2 METABLHTH3 METABLHTH4 METABLHTH5
.
.
.
% Υπορουτίνα ADD_METABLHTES
function [result]=ADD_METABLHTES
global METABLHTH1 METABLHTH2
result= METABLHTH1+METABLHTH2;
.
.
.
% Υπορουτίνα DIV_METABLHTES
function [result1]=ADD_METABLHTES
global METABLHTH3 METABLHTH4
result1= METABLHTH3/METABLHTH4;
str2num, num2str
Οι δύο αυτές functions έχουν αντίθετες λειτουργίες. Η πρώτη, η str2num (string to
number) μετατρέπει μία αλφαριθμητική τιμή σε αριθμητική.
Η σύνταξη της : METABLHTH_ARITHMITIKH=str2num(METABLHTH_ALFARITHMITIKH)
Για παράδειγμα αν έχουμε μια αλφαριθμητική τιμή ‘15’ για την μεταβλητή Α
(Α=’15’) και επιθυμούμε να την μετατρέψουμε σε αριθμητική τιμή και να την
Κεφάλαιο 3 LIQUID 53
αποθηκεύσουμε στη μεταβλητή Β, τότε η εντολή που θα χρησιμοποιήσουμε θα είναι
η : Β=str2num(A)
Η δεύτερη function, num2str (number to string) μετατρέπει μια αριθμητική τιμή
σε αλφαριθμητική.
Η σύνταξη της : METABLHTH_ALFARITHMITIKH =str2num(METABLHTH_ARITHMITIKH)
Για παράδειγμα αν έχουμε μια αριθμητική τιμή 15 για την μεταβλητή C (C=15) και
επιθυμούμε να την μετατρέψουμε σε αλφαριθμητική τιμή και να την αποθηκεύσουμε
στη μεταβλητή D, τότε η εντολή που θα χρησιμοποιήσουμε θα είναι η : D=num2str(C)
Η function str2num βρίσκει χρήση στο LIQUID, όταν λαμβάνουμε στοιχεία από
τη φόρμα μας (τα οποία τα παίρνουμε πάντα σε αλφαριθμητική μορφή) και θέλουμε
να τα μετατρέψουμε σε αριθμητικά στοιχεία για να τα επεξεργαστούμε. Και
αντίστοιχα η function num2str βρίσκει χρήση στο LIQUID, όταν θέλουμε να
εμφανίσουμε στοιχεία στη φόρμα μας που έχουμε αποθηκευμένα σε αριθμητική
μορφή.
get, set
Οι δύο αυτές εντολές έχουν αντίθετη λειτουργία. Η πρώτη, η get, χρησιμοποιείται
στην περίπτωση που θέλουμε να πάρουμε από τις φόρμες τα στοιχεία που
καταχώρησε ο χρήστης, ενώ η δεύτερη, η set, χρησιμοποιείται για να ορίσουμε την
τιμή κάποιου text box ή κουμπιού στις φόρμες μας.
Η σύνταξη της εντολής get είναι η παρακάτω : METABLHTH1=get(handles.METABLHTHFORMAS,’String’)
Κεφάλαιο 3 LIQUID 54
Κατά τη δημιουργία του αρχείου fig ορίζουμε για κάθε κουμπί, text box που
δημιουργούμε μία μεταβλητή callback. Για να πάρουμε για παράδειγμα στο βήμα 2
του LIQUID από το text box του Maximum number of soil layers την μεταβλητή
LAYER (παράγραφος 3.2.2.2) χρησιμοποιούμε την εντολή : LAYER=get(handles.LAYER,’String’)
Η σύνταξη της εντολής set είναι η παρακάτω : set(handles.METABLHTHFORMAS,’String’,’TIMH_METABLHTHS’)
Για να ακολουθήσουμε ένα αντίστροφο παράδειγμα και να θέσουμε την τιμή ‘5’ στο
Maximum number of soil layers χρησιμοποιούμε την εντολή set με την ακόλουθη
μορφή set(handles.LAYER,’String’,’5’)
Για περισσότερες πληροφορίες για τις παραπάνω εντολές της MATLAB ο
αναγνώστης παραπέμπεται στα Matlab Reference Book: Getting started with
MATLAB, Programing, Programming Tips, Creating Graphical User Interfaces,
Using MATLAB Graphics, Function Reference Volume 1 A-E, Function
Reference Volume 2 F-O, Function Reference Volume 3 P-Z και MAT-file
Format
3.2 Περί LIQUID
3.2.1 Γενικά – Δομή LIQUID
Σκοπός της παρούσας εργασίας είναι η δημιουργία ενός προγράμματος
φιλικού προς τον χρήστη, στo περιβάλλον της ΜATLAB, με τη βοήθεια του οποίου
γίνεται η γραφική απεικόνιση των αποτελεσμάτων του μαθηματικού μοντέλου
SWBACROS καθώς και η εισαγωγή δεδομένων σε αυτό.
Κεφάλαιο 3 LIQUID 55
Το LIQUID είναι ένα πρόγραμμα το οποίο, αναπτύχθηκε στα πλαίσια της
διατριβής αυτής, συνδυάζει τη Visual Fortran και τη MATLAB με μία αμφίδρομη
σχέση. Η αμφίδρομη αυτή σχέση περιγράφεται στα παρακάτω τρία βήματα.
Στο πρώτο βήμα γίνεται η εισαγωγή των δεδομένων του SWBACROS
μέσω του περιβάλλοντος της MATLAB και η αποθήκευση τους στο αρχείο εισόδου
δεδομένων του SWBACROS (GNDATA).
Στο δεύτερο βήμα εκτελείται το μοντέλο SWBACROS (μέσω του αρχείου
sink1e.exe) με τα δεδομένα που του δώσαμε στο προηγούμενο βήμα.
Στο τρίτο βήμα, αφού έχουν δημιουργηθεί από το SWBACROS τα αρχεία
αποτελεσμάτων, το LIQUID διαβάζει τα δεδομένα από τα αρχεία αυτά και τα
εμφανίζει γραφικά στη MATLAB.
Ένα απλό παράδειγμα το οποίο περιγράφει την αμφίδρομη σχέση μεταξύ
Visual Fortran και MATLAB περιγράφεται στο πρώτο μέρος του παραρτήματος.
Αποσκοπώντας στη δημιουργία ενός προγράμματος φιλικού προς τον χρήστη,
το LIQUID πραγματώθηκε με την μορφή wizard. Είναι δηλαδή χωρισμένο στα
εξής βήματα (steps) τα οποία είναι και ξεχωριστά αρχεία :
1ο βήμα, αρχείο liquid.m
Στο βήμα αυτό εμφανίζονται κάποιες εισαγωγικές πληροφορίες για το
πρόγραμμά μας (όνομα δημιουργού, επιβλέποντα καθηγητή και το έτος
δημιουργίας) (παράγραφος 3.2.2.1),
2ο βήμα, αρχείο LIQUIDstep2.m
Στο βήμα αυτό εισάγονται οι βασικές μεταβλητές για την εκτέλεση του
SWBACROS (για το αρχείο εισαγωγής δεδομένων GNDATA) (παράγραφος
3.2.2.2),
3ο βήμα, αρχείο LIQUIDstep3.m
Στο τρίτο βήμα εισάγουμε τον αρχικό και τον τελικό κόμβο του κάθε
ορίζοντα καθώς και την κορεσμένη υδραυλική αγωγιμότητα Ks, την υγρασία
Κεφάλαιο 3 LIQUID 56
κορεσμού, την υπολειμματική υγρασία καθώς και τους συντελεστές α,n για την
εξίσωση του Van Genuchten, για κάθε εδαφικό ορίζοντα (παράγραφος 3.2.2.3),
4ο βήμα, αρχείο LIQUIDstep4.m
Στο βήμα αυτό εισάγουμε το μέγεθος (σε m) και την αρχική τιμή της
αρνητικής πίεσης κάθε κελιού (παράγραφος 3.2.2.4).
Με την ολοκλήρωση του τέταρτου βήματος έχουμε εισάγει όλες τις
μεταβλητές για το αρχείο GNDATA (παράγραφος 2.4),
5ο βήμα, αρχείο LIQUIDstep5.m
Στο βήμα αυτό εισάγουμε τις ημερομηνίες για τις οποίες επιθυμούμε το
πρόγραμμα να εμφανίσει το υδατικό προφίλ (παράγραφος 3.2.2.5),
6ο βήμα, αρχείο LIQUIDmenu.m
Το βήμα αυτό είναι το τελευταίο βήμα του LIQUID. Το LIQUIDmenu.m
είναι το βασικό μενού του προγράμματος, το οποίο περιέχει τις διαθέσιμες
γραφικές παραστάσεις (παράγραφος 3.2.2.6).
Για την εκτέλεση του LIQUID αρκεί να πληκτρολογήσουμε στο Command
Window (εικόνα 3.2.1)
>> liquid
Κεφάλαιο 3 LIQUID 57
Εικόνα 3.2.1 – Εκτέλεση LIQUID
3.2.2 Ανάλυση βημάτων LIQUID
3.2.2.1 Βήμα 1ο (liquid.m)
Το αρχείο liquid.m εμφανίζει στην οθόνη μας, μετά την εκτέλεσή του (εικόνα
3.2.1), το αρχικό interface (εικόνα 3.2.2) του προγράμματος. Εκτός από τις γενικές
πληροφορίες για το όνομα του δημιουργού, του επιβλέποντα καθηγητή, το έτος
δημιουργίας του, έχει και δύο κουμπιά (buttons) τα οποία είναι τα εξής :
Next > Step 2 Το κουμπί αυτό μας πηγαίνει στο δεύτερο βήμα (Step 2) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
NEXTSTEP2, η οποία μέσω της εντολής closereq κλείνει το
υπάρχων αρχείο liquid.m και καλεί το αρχείο
LIQUIDstep2.m,
Exit Το κουμπί αυτό εμφανίζει το dialog box της εικόνας 3.2.3.
Επιλέγοντας Yes το LIQUID κλείνει, μέσω της εντολής
Κεφάλαιο 3 LIQUID 58
closereq και επιστρέφουμε στο περιβάλλον των Windows. Αν
επιλεγεί από το χρήστη, το No, επιστρέφουμε στο LIQUID. H
function που αντιστοιχεί στο κουμπί αυτό είναι η
EXITTOWINDOWS.
Εικόνα 3.2.2– Πρώτο βήμα LIQUID
Εικόνα 3.2.3– Ερώτηση για έξοδο από το LIQUID
3.2.2.2 Βήμα 2ο (LIQUIDstep2.m)
Το LIQUIDstep2.m αποτελεί το βασικό interface εισαγωγής δεδομένων
του προγράμματος (εικόνα 3.2.4). Στο βήμα αυτό εισάγουμε τα βασικότερα
δεδομένα για την εκτέλεση του SWBACROS.
Η φόρμα έχει τέσσερα κουμπιά :
Κεφάλαιο 3 LIQUID 59
< Back Το κουμπί αυτό μας πηγαίνει στο προηγούμενο βήμα (Step 1)
του LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι
η BACKSTEP1, η οποία μέσω της εντολής closereq κλείνει το
ενεργό αρχείο LIQUIDstep2.m και καλεί το αρχείο liquid.m,
Next > Step 3 Το κουμπί αυτό μας πηγαίνει στο τρίτο βήμα (Step 3) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
NEXTSTEP3, η οποία μέσω της εντολής closereq κλείνει το
ενεργό αρχείο LIQUIDstep2.m και καλεί το αρχείο
LIQUIDstep3.m. Πριν καλέσει το πρόγραμμά μας το αρχείο
LIQUIDstep3.m, γίνεται έλεγχος για τον αν συμπληρώθηκαν
όλες οι τιμές της φόρμας από το χρήστη,
Exit Η function ΕΧΙΤΤΟWINDOWS που αντιστοιχεί στο κουμπί
Exit είναι ίδια για όλα τα βήματα του LIQUID. Η περιγραφή
της έγινε στην προηγούμενη παράγραφο 3.2.2.1 (Βήμα 1ο
(liquid.m),
Load latest SWBACROS values Το κουμπί αυτό συμπληρώνει τη φόρμα
μας, με τις μεταβλητές που είχαμε
συμπληρώσει στην προηγούμενη εκτέλεση
του SWBACROS. Η function που
αντιστοιχεί στο κουμπί αυτό είναι η
LOADING (εικόνα 3.2.5).
Κεφάλαιο 3 LIQUID 60
Εικόνα 3.2.4– Δεύτερο βήμα LIQUID (άδεια φόρμα)
Κεφάλαιο 3 LIQUID 61
Εικόνα 3.2.5– Δεύτερο βήμα LIQUID (συμπληρωμένη φόρμα, μετά το Load latest SWBACROS
values)
Κεφάλαιο 3 LIQUID 62
Στο βήμα αυτό εισάγουμε τις μεταβλητές : IDIN, ΙMIN, IYIN, IDLAST,
IMLAST, IYLAST, ΜΕΤHOD1, METHOD2, MAXITER, JMAX, DTPAR1,
DTPAR2, DT2, DT1, DTMIN, DTMAX, ZETA1, OPT1, OPT2, LAYER,
OUTPUTFILE1, OUTPUTFILE2, IBBC1, IBBC2, IBBC3, IRWUT,
MODUPT1, MODUPT2, PSI1, PSI2, PSI3, DaysForWaterContentProfiles,
ITBC1, ITBC2, ITBC3, UDFLUX, SIGMA, IAVER1, IAVER2, IRS1, IRS2,
SIGMA, PETIND1, PETIND3, PETIND2, IPETC, VRATIO,
UNAVAILSW, EXCELEXPORT
Αναλυτική παρουσίαση όλων των μεταβλητών του προγράμματος μαζί με τη
σημασία τους γίνεται στην παράγραφο 3.2.3
Για κάθε μία από τις μεταβλητές που αναφέρονται παραπάνω υπάρχουν 2
functions. Η Callback που μας επιστρέφει τη τιμή που έχει επιλέξει ο χρήστης και η
CreateFcn η οποία περιέχει τις ρυθμίσεις για το πλαίσιο εισαγωγής στη φόρμα μας
(χρώμα πλαισίου, μέγεθος γραμματοσειράς κ.ά) (παράδειγμα για την μεταβλητή
IDIN υπάρχουν δύο functions η IDIN_Callback και η IDIN_CreateFcn)
Σε κάθε μεταβλητή που εισάγει ο χρήστης γίνεται λογικός έλεγχος της τιμής
αυτής και εμφανίζεται μήνυμα στην περίπτωση λάθους (π.χ. δεν μπορούμε να
εισάγουμε τιμή 32 για την αρχική ημέρα υπολογισμών (IDIN) (εικόνα 3.2.6α), ούτε
αρνητική τιμή για τον αριθμό των εδαφικών οριζόντων (LAYER) (εικόνα 3.2.6β))
Εικόνα 3.2.6α– Μήνυμα λάθους για την αρχική ημερομηνία υπολογισμών
Εικόνα 3.2.6β– Μήνυμα λάθους για τους διαφορετικούς εδαφικούς ορίζοντες
Κεφάλαιο 3 LIQUID 63
3.2.2.3 Βήμα 3ο (LIQUIDstep3.m)
Στο LIQUIDstep3.m συμπληρώνουμε δεδομένα για κάθε εδαφικό
ορίζοντα. Εισάγουμε τον αρχικό και τον τελικό κόμβο του κάθε ορίζοντα, τις τιμές
της κορεσμένης υδραυλικής αγωγιμότητας, της υγρασίας κορεσμού (θs), της
υπολειμματικής υγρασίας (θr), καθώς και τους συντελεστές α,n για την εξίσωση του
Van Genuchten για κάθε εδαφικό ορίζοντα (εικόνα 3.2.7)
Η φόρμα έχει τέσσερα κουμπιά :
< Back Το κουμπί αυτό μας πηγαίνει στο προηγούμενο βήμα (Step 2)
του LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι
η BACKSTEP2, η οποία μέσω της εντολής closereq κλείνει το
ενεργό αρχείο LIQUIDstep3.m και καλεί το αρχείο
LIQUIDstep2.m,
Next > Step 4 Το κουμπί αυτό μας πηγαίνει στο τέταρτο (Step 4) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
NEXTSTEP4, η οποία μέσω της εντολής closereq κλείνει το
ενεργό αρχείο LIQUIDstep3.m και καλεί το αρχείο
LIQUIDstep4.m. Πριν καλέσει το πρόγραμμά μας το αρχείο
LIQUIDstep4.m, γίνεται έλεγχος για το αν συμπληρώθηκαν
όλες οι τιμές της φόρμας από τον χρήστη,
Exit Η function ΕΧΙΤΤΟWINDOWS που αντιστοιχεί στο κουμπί
Exit είναι ίδια για όλα τα βήματα του LIQUID. Η περιγραφή
της έγινε στην προηγούμενη παράγραφο 3.2.2.1 (Βήμα 1ο
(liquid.m)),
Load latest SWBACROS values Το κουμπί αυτό συμπληρώνει τη φόρμα
μας, με τις μεταβλητές που είχαμε
Κεφάλαιο 3 LIQUID 64
συμπληρώσει στην προηγούμενη εκτέλεση
του SWBACROS. Η function που
αντιστοιχεί στο κουμπί αυτό είναι η
LOADING2 (εικόνα 3.2.8).
Εικόνα 3.2.7– Τρίτο βήμα LIQUID (άδεια φόρμα)
Κεφάλαιο 3 LIQUID 65
Εικόνα 3.2.8– Τρίτο βήμα LIQUID (συμπληρωμένη φόρμα, μετά το Load latest SWBACROS
values)
Στο βήμα αυτό εισάγουμε τις μεταβλητές : FirstNodalPoint1,
LastNodalPoint1, AKS1, THETS1, THETD1, AV1, ANV1
Αναλυτική παρουσίαση όλων των μεταβλητών του προγράμματος μαζί με τη
σημασία τους γίνεται στην παράγραφο 3.2.3
Σε κάθε μεταβλητή που εισάγει ο χρήστης γίνεται λογικός έλεγχος των τιμών
αυτών και εμφανίζεται μήνυμα στην περίπτωση λάθους (π.χ. δεν μπορούμε να
εισάγουμε αλφαριθμητική τιμή για το First Nodal Point. Στην εικόνα 3.2.9 βλέπουμε
Κεφάλαιο 3 LIQUID 66
το μήνυμα λάθους που εμφανίζεται αν ο χρήστης εισάγει την τιμή a για τον πρώτο
κόμβο του εδαφικού ορίζοντα 1).
Εικόνα 3.2.9– Μήνυμα λάθους για το πρώτο σημείο κάθε ορίζοντα
3.2.2.4 Βήμα 4ο (LIQUIDstep4.m)
Στο LIQUIDstep4.m συμπληρώνουμε τα απαραίτητα δεδομένα για κάθε
κελί (cell). Στο βήμα αυτά εισάγουμε το μήκος, καθώς και την αρχική τιμή της
αρνητικής πίεσης κάθε κελιού (εικόνα 3.2.9).
Η φόρμα έχει τέσσερα κουμπιά :
< Back Το κουμπί αυτό μας πηγαίνει στο προηγούμενο βήμα (Step 3)
του LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι
η BACKSTEP3, η οποία μέσω της εντολής closereq κλείνει το
υπάρχον αρχείο LIQUIDstep4.m και καλεί το αρχείο
LIQUIDstep3.m,
Next > Step 5 Το κουμπί αυτό μας πηγαίνει στο πέμπτο βήμα (Step 5) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
NEXTSTEP5, η οποία μέσω της εντολής closereq κλείνει το
ενεργό αρχείο LIQUIDstep4.m και καλεί το αρχείο
LIQUIDstep5.m. Πριν καλέσει το πρόγραμμά μας το αρχείο
LIQUIDstep5.m, γίνεται έλεγχος για τον αν συμπληρώθηκαν
όλες οι τιμές της φόρμας από τον χρήστη,
Κεφάλαιο 3 LIQUID 67
Exit Η function ΕΧΙΤΤΟWINDOWS που αντιστοιχεί στο κουμπί
Exit είναι ίδια για όλα τα βήματα του LIQUID. Η περιγραφή
της έγινε στην παράγραφο 3.2.2.1 (Βήμα 1ο (liquid.m)),
Load latest SWBACROS values Το κουμπί αυτό συμπληρώνει τη φόρμα
μας, με τις μεταβλητές που είχαμε
συμπληρώσει στην προηγούμενη εκτέλεση
του SWBACROS. Η function που
αντιστοιχεί στο κουμπί αυτό είναι η
LOADING3 (εικόνα 3.2.11).
Εικόνα 3.2.10– Τέταρτο βήμα LIQUID (άδεια φόρμα)
Κεφάλαιο 3 LIQUID 68
Εικόνα 3.2.11– Τέταρτο βήμα LIQUID (συμπληρωμένη φόρμα, μετά το Load latest
SWBACROS values)
Στο βήμα αυτό εισάγουμε τις μεταβλητές : SizeNodalPoints1, InitialY1
Αναλυτική παρουσίαση όλων των μεταβλητών του προγράμματος μαζί με τη
σημασία τους γίνεται στην παράγραφο 3.2.3
Για κάθε μεταβλητή που εισάγει ο χρήστης γίνεται εκτός του ελέγχου για
συμπλήρωση όλων των τιμών γίνεται και λογικός έλεγχος των τιμών αυτών και
εμφανίζεται μήνυμα στην περίπτωση λάθους (π.χ. δεν μπορούμε να εισάγουμε
αλφαριθμητική τιμή για το Size of each cell. Στην εικόνα 3.2.12 βλέπουμε το μήνυμα
Κεφάλαιο 3 LIQUID 69
λάθους που εμφανίζεται αν ο χρήστης εισάγει έστω την τιμή k για το μέγεθος του
κελιού).
Εικόνα 3.2.12– Μήνυμα λάθους για το μέγεθος του κελιού
3.2.2.5 Βήμα 5ο (LIQUIDstep5.m)
Το LIQUIDstep5 συμπληρώνουμε τις ημερομηνίες σε ημέρες του έτους για
τις οποίες επιθυμούμε να δούμε το εδαφικό προφίλ (εικόνα 3.2.13).
Η φόρμα έχει τρία κουμπιά :
< Back Το κουμπί αυτό μας πηγαίνει στο προηγούμενο βήμα (Step 4)
του LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι
η BACKSTEP4, η οποία μέσω της εντολής closereq κλείνει το
υπάρχον αρχείο LIQUIDstep5.m και καλεί το αρχείο
LIQUIDstep4.m,
Next > Menu Το κουμπί αυτό μας πηγαίνει στο τελευταίο βήμα (Menu) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
NEXTmainmenu, η οποία μέσω της εντολής closereq κλείνει
το ενεργό αρχείο LIQUIDstep5.m και καλεί το αρχείο
LIQUIDmenu.m. Πριν κλείσει το πρόγραμμά μας το αρχείο
LIQUIDstep5.m, γίνεται έλεγχος για τον αν συμπληρώθηκαν
όλες οι τιμές της φόρμας από τον χρήστη,
Κεφάλαιο 3 LIQUID 70
Exit Η function ΕΧΙΤΤΟWINDOWS που αντιστοιχεί στο κουμπί
Exit είναι ίδια για όλα τα βήματα του LIQUID. Η περιγραφή
της έγινε στην παράγραφο 3.2.2.1 (Βήμα 1ο (liquid.m)),
Εικόνα 3.2.13– Πέμπτο βήμα LIQUID (άδεια φόρμα)
Κεφάλαιο 3 LIQUID 71
Εικόνα 3.2.14– Πέμπτο βήμα LIQUID (η επιλογή των ημερών είναι τυχαία)
Στο βήμα αυτό εισάγουμε τις τιμές για τις : DAYSPROFILES1
Αναλυτική παρουσίαση όλων των μεταβλητών του προγράμματος μαζί με τη
σημασία τους γίνεται στην παράγραφο 3.2.3
Εκτός από τις τρεις functions που δημιουργούνται από τα τρία κουμπιά
υπάρχει και μία ακόμη η Gr2Jul. Η Gr2Jul μετατρέπει τις ημερομηνίες, που
δόθηκαν στο 2ο βήμα, από τη γρηγοριανή ημερομηνία σε αύξοντα αριθμό της
συγκεκριμένης ημέρας από την αρχή του έτους.
Για κάθε μέρα που εισάγει ο χρήστης το LIQUID ελέγχει τα νούμερα που
δόθηκαν για το αν βρίσκονται ανάμεσα στην αρχική και τελική ημερομηνία
υπολογισμών και εμφανίζει μήνυμα στην περίπτωση λάθους (π.χ. αν εισάγουμε για
την εκτέλεση που βλέπουμε στην εικόνα 3.2.14 την ημερομηνία 99 το πρόγραμμα
Κεφάλαιο 3 LIQUID 72
εμφανίζει το μήνυμα λάθους της εικόνας 3.2.15, αφού η αρχική ημερομηνία
υπολογισμών είναι η ημέρα 100).
Εικόνα 3.2.15– Μήνυμα λάθους για τις ημέρες για τις οποίες επιθυμεί ο χρήστης να δει το εδαφικό
προφίλ
3.2.2.6 Μενού LIQUID (LIQUIDmenu.m)
Το LIQUIDmenu.m είναι το μενού του προγράμματος στο οποίο
εμφανίζονται όλες οι προς εμφάνιση γραφικές παραστάσεις (εικόνα 3.2.16). Στην
αρχή του βήματος αυτού δημιουργείται το αρχείο GNDATA (παράγραφος 2.4)
και τρέχει στο background το μοντέλο SWBACROS μέσω του αρχείου
sink1e.exe. Αφού έχουν δημιουργηθεί από το SWBACROS τα αρχεία
αποτελεσμάτων, το LIQUID διαβάζει τα δεδομένα από αυτά και τα εμφανίζει
γραφικά στη MATLAB.
Η φόρμα έχει δύο κουμπιά :
< Back Το κουμπί αυτό μας πηγαίνει στο προηγούμενο βήμα (Step 5) του
LIQUID. H function που αντιστοιχεί στο κουμπί αυτό είναι η
BACKSTEP5, η οποία μέσω της εντολής closereq κλείνει το υπάρχον
αρχείο LIQUIDmenu.m και καλεί το αρχείο LIQUIDstep5.m,
Exit Η function FINALEXIT που αντιστοιχεί στο κουμπί Exit είναι
αντίστοιχη με την ΕΧΙΤΤΟWINDOWS που είδαμε σε όλα τα
προηγούμενα βήματα. Η περιγραφή της έγινε στην παράγραφο 3.2.2.1
(Βήμα 1ο (liquid.m)),
Κεφάλαιο 3 LIQUID 73
Εικόνα 3.2.16– Μενού LIQUID
Κεφάλαιο 3 LIQUID 74
Εκτός από τις δύο functions που αντιστοιχούν στα δύο κουμπιά (<Back,
Next) και τις functions των γραφικών παραστάσεων υπάρχουν και έξι άλλες τις
οποίες βλέπουμε παράκατω.
• VIEWINITSOIL (View data files : Initial Soil profile data). Η function
αυτή εμφανίζει το αρχείο INITSOIL.TXT
• VIEWEVAPOTRANS (View data files : Evapotranspiration). Η function
αυτή εμφανίζει το αρχείο EVAPOTRANS.TXT
• VIEWSCRD (View data files : SC, RD, LAI, Ymin). Η function αυτή
εμφανίζει το αρχείο DAYSCRDetc.TXT
• VIEWCONTENTPROFILE (View data files : Water content profiles).
Η function αυτή εμφανίζει το αρχείο PROFILE.TXT
• VIEWWATERBAL (View data files : Water balance results). Η οποία
εμφανίζει το αρχείο WATERBAL.TXT
Ολες οι παραπάνω functions εμφανίζουν τα αρχεία δεδομένων μέσω του
σημειωματαρίου των windows (notepad). Τα πέντε αρχεία δεδομένων του LIQUID
παρουσιάζονται αναλυτικά στην παράγραφο 3.2.4
• Jul2Gr . Η Jul2Gr παρουσιάστηκε στο προηγούμενο βήμα του LIQUID
(παράγραφος 3.2.2.5).
Στο βήμα αυτό γίνεται και η εξαγωγή των αποτελεσμάτων του SWBACROS
σε excel αρχείο. Απαραίτητη προϋπόθεση για αυτό είναι να ενεργοποιήσει ο
χρήστης στο βήμα 2 την επιλογή Export results of SWBACROS in Excel (XLS)
files (εικόνα 3.2.4 και 3.2.5). Το πρόγραμμα αποθηκεύει όλα τα δεδομένα που
διαβάζει από το αρχεία δεδομένων σε ένα αρχείο excel. Η αποθήκευση γίνεται μέσω
της εντολής xlswrite.
Κεφάλαιο 3 LIQUID 75
Το αρχείο excel που δημιουργείται έχει όνομα της μορφής liquidXXX-
YYY.xls, όπου ΧΧΧ είναι η αρχική ημερομηνία των υπολογισμών και YYY είναι η
τελική ημερομηνία των υπολογισμών σε ημέρες του έτους.
Στην περίπτωση κατά την οποία στο φάκελο του LIQUID υπάρχει αρχείο με
το ίδιο όνομα, το πρόγραμμα το κάνει overwrite αυτόματα.
Για περισσότερες πληροφορίες για την εντολή xlswrite και το Excel
exportation ο αναγνώστης παραπέμπεται στο Matlab Reference Book : Function
Reference Volume 3 P-Z
3.2.2.6.1 Διαθέσιμες γραφικές παραστάσεις
Οι γραφικές παραστάσεις είναι χωρισμένες σε πέντε ομάδες (εικόνα 3.2.16) :
α) Initial Soil profile data
Η ομάδα Initial Soil profile data περιέχει τις γραφικές παραστάσεις :
• Hydraulic conductivity (m/day) of unsaturated soil per depth
(Υδραυλική αγωγιμότητα του εδάφους (m/day) σε σχέση με το βάθος),
• Negative pressure (m) of the soil water per depth (Αρνητική πίεση (m)
του εδαφικού νερού),
• Initial moisture per depth (Αρχική υγρασία του εδάφους σε σχέση με το
βάθος),
• Initial Soil Profile Data : 3 in one (3 plots)
β) Soil cover, Root Depth, Leaf Area Index, Minumum pressure
Στην ομάδα Soil cover, Root Depth, Leaf Area Index, Minimum
pressure περιέχονται οι γραφικές παραστάσεις :
• Soil cover (0.0-1.0) per day (Εδαφοκάλυψη σε σχέση με την ημέρα του
έτους),
Κεφάλαιο 3 LIQUID 76
• Root depth (m) per day (Βάθος ριζικού συστήματος (m) σε σχέση με την
ημέρα του έτους),
• Leaf Area Index per day (Δείκτης φυλλικής επιφάνειας σε σχέση με την
ημέρα του έτους),
• Minimum pressure (m) per day (Ελάχιστη πίεση (m) εδαφικού νερού),
• Soil Cover , Root Depth, Leaf Area Index, Minimum Pressure : (4 in
one) (4 plots)
γ) Water balance results
Η ομάδα Water balance results περιέχει τις γραφικές παραστάσεις :
• Water content (cm) of the soil profile at the end of the day (Ποσότητα
εδαφικού νερού (cm) στο τέλος της ημέρας σε σχέση με την ημέρα του έτους),
• Potential and actual evaporation (cm) per day (Δυναμική και
πραγματική εξάτμιση (cm) από την επιφάνεια του εδάφους σε σχέση με την
ημέρα του έτους),
• Potential and actual transpiration (cm) per day (Δυναμική και
πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους),
• Precipitation/irrigation and intercepted rain (cm) per day
(Βροχόπτωση / άρδευση και υδατοσυγκράτηση (cm) σε σχέση με την ημέρα
του έτους),
• Flux through top and bottom boundary (cm) per day (Ροή δια μέσου
του επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα του έτους),
• Water balance results : 5 in one (6 plots)
Εκτός από τις παραπάνω, υπάρχουν και δύο υποομάδες γραφικών
παραστάσεων οι οποίες είναι οι : Water balance error (%), Cumulative water
balance results.
Στην πρώτη υποομάδα ανήκουν οι γραφικές παραστάσεις :
Κεφάλαιο 3 LIQUID 77
• Incremental water balance error (Αυξητικό λάθος υδατικού ισοζυγίου),
• Cumulative water balance error (Αθροιστικό λάθος υδατικού ισοζυγίου),
• Water balance error : 2 in one (2 plots)
Η δεύτερη υποομάδα περίεχει τις γραφικές παραστάσεις :
• Cum. precipitation and irrigation (cm) per day (Αθροιστική
βροχόπτωση / άρδευση (cm) σε σχέση με την ημέρα του έτους),
• Cum. potential and actual transpiration (cm) per day (Αθροιστική
δυναμική και πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους),
• Cum. potential and actual evaporation (cm) per day (Αθροιστική
δυναμική και πραγματική εξάτμιση (cm) σε σχέση με την ημέρα του έτους),
• Cum. flux through top and bottom boundary (cm) per day (Αθροιστική
ροή δια μέσου του επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα
του έτους),
• Cum. water balance results : 4 in one (5 plots)
δ) Reference and potential evapotranspiration
Στην ομάδα Reference and potential evapotranspiration περιέχονται οι
γραφικές παραστάσεις :
• Potential evapotranspiration (mm/day) per day (Δυναμική
εξατμισοδιαπνοή (mm/day) σε σχέση με την ημέρα του έτους),
• Reference crop evapotranspiration (mm/day) per day
(Εξατμισοδιαπνοή αναφοράς (mm/day) σε σχέση με την ημέρα του έτους),
• Evapotranspiration : 2 in one (2 plots),
• Evapotranspiration : 1 in one (2 plot)
ε) Water content profiles
Στην ομάδα Water content profiles ανήκουν οι γραφικές παραστάσεις :
• Water content profile (3D) (Τρισδιάστατο προφίλ περιεχόμενης υγρασίας),
Κεφάλαιο 3 LIQUID 78
• Water content profiles at : ΗΜ/ΝΙΕΣ (Προφίλ περιεχόμενης υγρασίας
σε συγκεκριμένες ημερομηνίες)
Στις επόμενες παραγράφους παρουσιάζονται όλες οι γραφικές παραστάσεις
που είδαμε παραπάνω. Για κάθε γραφική παράσταση αναφέρονται το όνομα της
συνάρτησης που αντιστοιχεί σε αυτή, οι μεταβλητές που χρησιμοποιεί, ο κώδικας
της MATLAB καθώς και μία ενδεικτική εικόνα της. Τα δεδομένα που
χρησιμοποιήθηκαν είναι υποθετικά και χρησιμοποιήθηκαν για λόγους επίδειξης των
δυνατοτήτων του προγράμματος LIQUID και είναι τα αποτελέσματα των δεδομένων
που δόθηκαν στις εικόνες 3.2.5, 3.2.8, 3.2.11 και 3.2.14.
3.2.2.6.2 Hydraulic conductivity (m/day) of unsaturated soil per depth (Υδραυλική αγωγιμότητα του εδάφους (m/day) σε σχέση με το βάθος)
Όνομα συνάρτησης : DEPTHperAK
Μεταβλητές που εμφανίζονται : ΑΚ, Depth
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.17 δείχνει την υδραυλική
αγωγιμότητα του εδάφους (AK) (σε m/day) σε σχέση με το βάθος (Depth) (σε cm)
Κώδικας MATLAB global Depth AK clf figNumber=figure('Name','Initial hydraulic conductivity of unsaturated soil'); hold on title(strcat('Initial hydraulic conductivity of unsaturated soil per depth'),'fontsize',20) set(gca,'YDir','reverse') plot(AK,Depth,'R.-') grid on ylabel('Depth (cm)') xlabel('Hydraulic conductivity (m/day)') legend('Hydraulic conductivity (m/day)') hold off
Κεφάλαιο 3 LIQUID 79
Εικόνα 3.2.17– Υδραυλική αγωγιμότητα σε σχέση με το βάθος
3.2.2.6.3 Negative pressure (m) of the soil water per depth (Αρνητική πίεση (m) του εδαφικού νερού σε σχέση με το βάθος)
Όνομα συνάρτησης : DEPTHperY
Μεταβλητές που εμφανίζονται : Y, Depth
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.18 δείχνει την αρνητική
πίεση του εδαφικού νερού (Y) (σε m) σε σχέση με το βάθος (Depth) (σε cm)
Κώδικας MATLAB global Depth Y clf figNumber=figure('Name','Initial pressure of the soil water'); hold on title(strcat('Initial pressure of the soil water per depth'),'fontsize',20) set(gca,'YDir','reverse') plot(Y,Depth,'G.-','LineWidth',1) grid on
Κεφάλαιο 3 LIQUID 80
ylabel('Depth (cm)') xlabel('Initial pressure (m)') legend('Initial pressure of the soil water') hold off
Εικόνα 3.2.18– Αρνητική πίεση σε σχέση με το βάθος
3.2.2.6.4 Initial moisture per depth (Αρχική υγρασία του εδάφους σε σχέση με το βάθος)
Όνομα συνάρτησης : DEPTHperINITIALMOISTURE
Μεταβλητές που εμφανίζονται : INITIALMOISTURE, Depth
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.19 δείχνει την αρχική
υγρασία του εδάφους (INITIALMOISTURE) (σε %) σε σχέση με το βάθος
(Depth) (σε cm)
Κώδικας MATLAB global Depth INITIALMOISTURE
Κεφάλαιο 3 LIQUID 81
clf figNumber=figure('Name','Initial moisture per depth'); hold on title(strcat('Initial moisture'),'fontsize',20) set(gca,'YDir','reverse') plot(100*INITIALMOISTURE,Depth,'R.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial moisture(%)') legend('Initial moisture per depth') hold off
Εικόνα 3.2.19– Αρχική υγρασία του εδάφους σε σχέση με το βάθος
3.2.2.6.5 Initial Soil Profile data : 3 in one plots
Όνομα συνάρτησης : THREEinONEINITSOIL
Μεταβλητές που εμφανίζονται : INITIALMOISTURE, Y, AK, Depth
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.20 μας δείχνει τις
προηγούμενες τρεις γραφικές παραστάσεις (Hydraulic conductivity of
unsaturated soil per depth, Negative pressure of the soil water, Initial
moisture per depth) σε ένα παράθυρο
Κεφάλαιο 3 LIQUID 82
Κώδικας MATLAB global Depth AK INITIALMOISTURE Y clf figNumber=figure('Name','Initial Soil profile'); subplot(3,1,1) hold on title(strcat('Initial hydraulic conductivity of unsaturated soil per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(AK,Depth,'Y.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Hydraulic conductivity (m/day)') legend('Hydraulic conductivity (m/day)') hold off subplot(3,1,2) hold on title(strcat('Initial moisture per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(100*INITIALMOISTURE,Depth,'R.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial moisture(%)') legend('Initial moisture (%)') hold off subplot(3,1,3) hold on title(strcat('Initial pressure of the soil water per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(Y,Depth,'G.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial pressure (m)') legend('Initial pressure (m)') hold off
Κεφάλαιο 3 LIQUID 83
Εικόνα 3.2.20– Initial Soil Profile data : 3 in one plots (3 γραφικές παραστάσεις σε μία)
3.2.2.6.6 Soil cover (0.0-1.0) per day (Εδαφοκάλυψη σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : DAYperSC
Μεταβλητές που εμφανίζονται : SC, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.21 δείχνει την
εδαφοκάλυψη (SC) (0.0-1.0) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day SC clf figNumber=figure('Name','Soil Cover'); hold on title(strcat('Soil cover per day'),'fontsize',20) plot(Day,SC,'R.-') grid on xlabel('Day') ylabel('Soil cover (0.0-1.0)')
Κεφάλαιο 3 LIQUID 84
legend('Soil cover per day') hold off
Εικόνα 3.2.21– Εδαφοκάλυψη σε σχέση με την ημέρα του έτους
3.2.2.6.7 Root depth (m) per day (Βάθος ριζικού συστήματος (m) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : DAYperRD
Μεταβλητές που εμφανίζονται : RD, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.22 δείχνει το βάθος του
ριζικού συστήματος (RD) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day ROOTDP clf figNumber=figure('Name','Root depth'); hold on title(strcat('Root depth per day'),'fontsize',20)
Κεφάλαιο 3 LIQUID 85
plot(Day,ROOTDP,'K.-') grid on xlabel('Day') ylabel('Root depth (m)') legend('Root depth (m)') hold off
Εικόνα 3.2.22– Βάθος ριζικού συστήματος σε σχέση με την ημέρα του έτους
3.2.2.6.8 Leaf Area Index per day (Δείκτης φυλλικής επιφάνειας σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : DAYperALAI
Μεταβλητές που εμφανίζονται : ALAI, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.23 δείχνει το δείκτη
φυλλικής επιφάνειας (ALAI) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day ALAI
Κεφάλαιο 3 LIQUID 86
clf figNumber=figure('Name','Leaf Area Index'); hold on title(strcat('Leaf Area Index per day'),'fontsize',20) plot(Day,ALAI,'b.-') grid on xlabel('Day') ylabel('Leaf Area Index') legend('Leaf Area Index') hold off
Εικόνα 3.2.23– Δείκτης φυλλικής επιφάνειας σε σχέση με την ημέρα του έτους
3.2.2.6.9 Minimum pressure (m) per day (Ελάχιστη πίεση (m) εδαφικού νερού)
Όνομα συνάρτησης : DAYperYMIN
Μεταβλητές που εμφανίζονται : YMIN, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.24 δείχνει το ελάχιστη
πίεση του εδαφικού νερού (YMIN) σε σχέση με την ημέρα του έτους (Day)
Κεφάλαιο 3 LIQUID 87
Κώδικας MATLAB global Day YMIN clf figNumber=figure('Name','Minimum Pressure'); hold on title(strcat('Minimum pressure per day'),'fontsize',20) plot(Day,YMIN,'G.-') grid on xlabel('Day') ylabel('Minimum pressure (m)') legend('Minimum pressure (m)') hold off
Εικόνα 3.2.24– Ελάχιστη πίεση εδαφικού νερού σε σχέση με την ημέρα του έτους
3.2.2.6.10 Soil Cover, Root Depth, Leaf Area Index, Minimum Pressure : 4 in one (4 plots)
Όνομα συνάρτησης : FOURinONESCRD
Μεταβλητές που εμφανίζονται : SC, RD, ALAI, YMIN, Day
Κεφάλαιο 3 LIQUID 88
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.25 δείχνει τις τέσσερις
προηγούμενες γραφικές παραστάσεις (Soil cover (0.0-1.0) per day, Leaf Area
Index per day, Root depth (m) per day, Minimum pressure (m) soil per day)
σε ένα παράθυρο
Κώδικας MATLAB global Day SC ROOTDP ALAI YMIN clf figNumber=figure('Name','Soil cover , Root Depth , Leaf Area Index , Minimum pressure'); subplot(2,2,1) hold on title(strcat('Soil cover per day'),'fontsize',15) plot(Day,SC,'R.-') grid on xlabel('Day') ylabel('Soil cover (0.0-1.0)') legend('Soil cover per day') hold off subplot(2,2,2) hold on title(strcat('Root depth per day'),'fontsize',15) plot(Day,ROOTDP,'K.-') grid on xlabel('Day') ylabel('Root depth (m)') legend('Root depth (m)') hold off subplot(2,2,3) hold on title(strcat('Leaf Area Index per day'),'fontsize',15) plot(Day,ALAI,'C.-') grid on xlabel('Day') ylabel('Leaf Area Index') legend('Leaf Area Index') hold off subplot(2,2,4) hold on title(strcat('Minimum pressure per day'),'fontsize',15) plot(Day,YMIN,'G.-') grid on xlabel('Day') ylabel('Minimum pressure (m)') legend('Minimum pressure (m)') hold off
Κεφάλαιο 3 LIQUID 89
Εικόνα 3.2.25– Soil Cover, Root Depth, Leaf Area Index, Minimum Pressure : 4 in one (4
plots) (4 γραφικές παραστάσεις σε μία)
3.2.2.6.11 Water content (cm) of the soil profile at the end of day per day (Ποσότητα εδαφικού νερού (cm) στο τέλος της ημέρας σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : WCENDperDAY
Μεταβλητές που εμφανίζονται : WCEND, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.26 δείχνει την ποσότητα
του εδαφικού νερού στο τέλος της ημέρας (WCEND) (σε cm) σε σχέση με την
ημέρα του έτους (Day)
Κώδικας MATLAB global Day WCEND clf figNumber=figure('Name','Water content of the soil profile at the end of the day'); hold on
Κεφάλαιο 3 LIQUID 90
title(strcat('Water content of the soil profile at the end of the day'),'fontsize',20) plot(Day,WCEND,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Water content of the soil profile at the end of the day (cm)') legend('Water content of the soil profile at the end of the day (cm)') hold off
Εικόνα 3.2.26– Ποσότητα εδαφικού νερού στο τέλος της ημέρας σε σχέση με την ημέρα του έτους
3.2.2.6.12 Potential and actual evaporation (cm) per day (Δυναμική και πραγματική εξάτμιση (cm) από την επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : EVAPperDAY
Μεταβλητές που εμφανίζονται : ACTEVAP, POTEVAP, Day
Κεφάλαιο 3 LIQUID 91
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.27 δείχνει την δυναμική
(POTEVAP) (σε cm) και την πραγματική (ACTEVAP) (σε cm) εξάτμιση από την
επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day POTEVAP ACTEVAP clf figNumber=figure('Name','Potential and actual evaporation per day'); hold on title(strcat('Potential and actual evaporation per day'),'fontsize',20) plot(Day,POTEVAP,'R.-',Day,ACTEVAP) grid on xlabel('Day') ylabel('Evaporation (cm)') legend('Potential evaporation (cm)','Actual evaporation (cm)') hold off
Εικόνα 3.2.27– Δυναμική και πραγματική εξάτμιση από την επιφάνεια του εδάφους σε σχέση με
την ημέρα του έτους
Κεφάλαιο 3 LIQUID 92
3.2.2.6.13 Potential and actual transpiration (cm) per day (Δυναμική και πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : TRANSperDAY
Μεταβλητές που εμφανίζονται : POTTRANS, ACTTRANS, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.28 δείχνει την δυναμική
(POTTRANS) (σε cm) και την πραγματική (ACTTRANS) (σε cm) εξάτμιση από
την επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day POTTRANS ACTTRANS clf figNumber=figure('Name','Potential and actual transpiration per day'); hold on title(strcat('Potential and actual transpiration (cm) per day'),'fontsize',20) plot(Day,POTTRANS,'R.-',Day,ACTTRANS) grid on xlabel('Day') ylabel('Transpiration (cm)') legend('Potential transpiration (cm)','Actual transpiration (cm)') hold off
Κεφάλαιο 3 LIQUID 93
Εικόνα 3.2.28– Δυναμική και πραγματική διαπνοή σε σχέση με την ημέρα του έτους
3.2.2.6.14 Precipitation/irrigation and intercepted rain (cm) per day (Βροχόπτωση / άρδευση και υδατοσυγκράτηση (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : ACTPRECandAINTERperDAY
Μεταβλητές που εμφανίζονται : ACTPREC, AINTER, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.29 δείχνει την
βροχόπτωση / άρδευση (ACTPREC) (σε cm) και την υδατοσυγκράτηση
(AINTER) (σε cm) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day ACTPREC AINTER clf figNumber=figure('Name','Precipitation / irrigation and intercepted rain per day'); hold on title(strcat('Precipitation / irrigation and intercepted rain per day'),'fontsize',20)
Κεφάλαιο 3 LIQUID 94
bar(Day,ACTPREC,'r') plot(Day,10*AINTER,'--*') grid on xlabel('Day') ylabel('Precipitation and irrigation (cm)') legend('Precipitation and irrigation (cm)','Intercepted rain (cm)') hold off
Εικόνα 3.2.29– Βροχόπτωση / άρδευση και υδατοσυγκράτηση σε σχέση με την ημέρα του έτους
3.2.2.6.15 Flux through top and bottom boundary (cm) per day (Ροή δια μέσου το επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : QTPandQBTperDAY
Μεταβλητές που εμφανίζονται : QTP, QBT, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.30 δείχνει την ροή δια
μέσου του επάνω (QTP) (σε cm) και του κάτω ορίου (QBT) (σε cm) σε σχέση με
την ημέρα του έτους (Day)
Κεφάλαιο 3 LIQUID 95
Κώδικας MATLAB global Day QTP QBT clf figNumber=figure('Name','Flux through top and bottom boundary per day'); subplot(2,1,1) hold on title(strcat('Flux through top boundary per day'),'fontsize',18) plot(Day,QTP,'R.-') grid on xlabel('Day') ylabel('Flux through top boundary (cm)') legend('Flux through top boundary (cm)') hold off subplot(2,1,2) hold on title(strcat('Flux through bottom boundary per day'),'fontsize',18) plot(Day,QBT) grid on xlabel('Day') ylabel('Flux through bottom boundary (cm)') legend('Flux through bottom boundary (cm)') hold off
Εικόνα 3.2.30– Ροή δια μέσου του επάνω και κάτω ορίου σε σχέση με την ημέρα του έτους
Κεφάλαιο 3 LIQUID 96
3.2.2.6.16 Water balance results : 5 in one (6 plots)
Όνομα συνάρτησης : FIVEINONEWATERBALANCE
Μεταβλητές που εμφανίζονται : WCEND, ACTPREC, POTTRANS,
ACTTRANS, POTEVAP, ACTEVAP, QTP, QBT, AINTER, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.31 δείχνει τις πέντε
προηγούμενες γραφικές παραστάσεις (Water content (cm) of the soil profile at
the end of the day per day, Potential and actual evaporation (cm) per day,
Potential and actual transpiration (cm) per day, Precipitation / irrigation
and intercepted rain (cm) per day, Flux through top and bottom boundary
(cm) per day) σε ένα παράθυρο
Κώδικας MATLAB global Day WCEND ACTPREC POTTRANS ACTTRANS POTEVAP ACTEVAP QTP QBT AINTER clf figNumber=figure('Name','5 in one Water balance results'); subplot(3,2,1) hold on title(strcat('Water content of the soil profile at the end of the day'),'fontsize',12) plot(Day,WCEND,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Water content at the end of the day (cm)') legend('Water content at the end of the day (cm)') hold off subplot(3,2,2) hold on title(strcat('Precipitation / irrigation and intercepted rain per day'),'fontsize',12) bar(Day,ACTPREC,'r') plot(Day,10*AINTER,'--*') grid on xlabel('Day') ylabel('Precipitation and irrigation (cm)') legend('Precipitation and irrigation (cm)','Intercepted rain (cm)') hold off subplot(3,2,3) hold on
Κεφάλαιο 3 LIQUID 97
title(strcat('Potential and actual evaporation per day'),'fontsize',12) plot(Day,POTEVAP,'R.-',Day,ACTEVAP) grid on xlabel('Day') ylabel('Evaporation (cm)') legend('Potential evaporation (cm)','Actual evaporation (cm)') hold off subplot(3,2,4) hold on title(strcat('Potential and actual transpiration per day'),'fontsize',12) plot(Day,POTTRANS,'R.-',Day,ACTTRANS) grid on xlabel('Day') ylabel('Transpiration (cm)') legend('Potential transpiration (cm)','Actual transpiration (cm)') hold off subplot(3,2,5) hold on title(strcat('Flux through top boundary per day'),'fontsize',12) plot(Day,QTP,'R.-') grid on xlabel('Day') ylabel('Flux through top boundary (cm)') legend('Flux through top boundary (cm)') hold off subplot(3,2,6) hold on title(strcat('Flux through bottom boundary per day'),'fontsize',12) plot(Day,QBT) grid on xlabel('Day') ylabel('Flux through bottom boundary (cm)') legend('Flux through bottom boundary (cm)') hold off
Κεφάλαιο 3 LIQUID 98
Εικόνα 3.2.31– Water balance results : 5 in one (6 plots) (5 γραφικές παραστάσεις σε μία)
3.2.2.6.17 Incremental water balance error (Αυξητικό λάθος υδατικού ισοζυγίου)
Όνομα συνάρτησης : EPSINCperDAY
Μεταβλητές που εμφανίζονται : EPSINC, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.32 δείχνει το αυξητικό
λάθος υδατικού ισοζυγίου (EPSINC) (σε %) σε σχέση με την ημέρα του έτους
(Day)
Κώδικας MATLAB global Day EPSINC clf figNumber=figure('Name','Incremental water balance error'); hold on title(strcat('Incremental water balance error (%)'),'fontsize',20) plot(Day,EPSINC,'R.-','LineWidth',1) grid on
Κεφάλαιο 3 LIQUID 99
xlabel('Day') ylabel('Incremental water balance error (%)') legend('Incremental water balance error (%)') hold off
Εικόνα 3.2.32– Αυξητικό λάθος υδατικού ισοζυγίου
3.2.2.6.18 Cumulative water balance error (Αθροιστικό λάθος υδατικού ισοζυγίου)
Όνομα συνάρτησης : EPSΤΟΤperDAY
Μεταβλητές που εμφανίζονται : EPSΤΟΤ, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.33 δείχνει το αθροιστικό
λάθος υδατικού ισοζυγίου (EPSΤΟΤ) (σε %) σε σχέση με την ημέρα του έτους
(Day)
Κώδικας MATLAB global Day EPSTOT clf
Κεφάλαιο 3 LIQUID 100
figNumber=figure('Name','Cumulative water balance error')'; hold on title(strcat('Cumulative water balance error'),'fontsize',20) plot(Day,EPSTOT,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Cumulative water balance error (%)') legend('Cumulative water balance error (%)') hold off
Εικόνα 3.2.33– Αθροιστικό λάθος υδατικού ισοζυγίου
3.2.2.6.19 Water balance error : 2 in one (2 plots)
Όνομα συνάρτησης : TWOINONEWATERBALANCEERROR
Μεταβλητές που εμφανίζονται : EPSINC, EPSΤΟΤ, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.34 δείχνει τις δύο
προηγούμενες γραφικές παραστάσεις (Incremental water balance error (%),
Cumulative water balance error (%)) σε ένα παράθυρο
Κεφάλαιο 3 LIQUID 101
Κώδικας MATLAB global Day EPSINC EPSTOT clf figNumber=figure('Name','Water balance errors'); subplot(2,1,1) hold on title(strcat('Incremental water balance error (%)'),'fontsize',15) plot(Day,EPSINC,'B*-') grid on xlabel('Day') ylabel('Incremental water balance error (%)') legend('Incremental water balance error (%)') hold off subplot(2,1,2) hold on title(strcat('Cumulative water balance error (%)'),'fontsize',15) plot(Day,EPSTOT,'R.-') grid on xlabel('Day') ylabel('Cumulative water balance error (%)') legend('Cumulative water balance error (%)') hold off
Εικόνα 3.2.34– Water balance error : 2 in one (2 plots) (2 γραφικές παραστάσεις σε μία)
Κεφάλαιο 3 LIQUID 102
3.2.2.6.20 Cum. precipitation/irrigation (cm) per day (Αθροιστική βροχόπτωση / άρδευση (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : CUMACTPRECperDAY
Μεταβλητές που εμφανίζονται : CUMACTPREC, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.35 δείχνει την αθροιστική
βροχόπτωση / άρδευση (CUMACTPREC) (σε cm) σε σχέση με την ημέρα του
έτους (Day)
Κώδικας MATLAB global Day CUMACTPREC clf figNumber=figure('Name','Cumulative precipitation and irrigation per day'); hold on title(strcat('Cumulative precipitation and irrigation per day'),'fontsize',20) plot(Day,CUMACTPREC,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Cumulative precipitation and irrigation (cm)') legend('Cumulative precipitation and irrigation (cm)') hold off
Κεφάλαιο 3 LIQUID 103
Εικόνα 3.2.35– Αθροιστική βροχόπτωση / άρδευση σε σχέση με την ημέρα του έτους
3.2.2.6.21 Cum. potential and actual transpiration (cm) per day (Αθροιστική δυναμική και πραγματική διαπνοή (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : CUMTRANSperDAY
Μεταβλητές που εμφανίζονται : CUMPOTTRANS, CUMACTTRANS, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.36 δείχνει την αθροιστική
δυναμική (CUMPOTTRANS) (σε cm) και την αθροιστική πραγματική
(CUMACTTRANS) (σε cm) διαπνοή σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day CUMACTTRANS CUMPOTTRANS clf figNumber=figure('Name','Cumulative potential and actual transpiration per day'); hold on
Κεφάλαιο 3 LIQUID 104
title(strcat('Cumulative potential and actual transpiration'),'fontsize',20) plot(Day,CUMPOTTRANS,'R.-',Day,CUMACTTRANS) grid on xlabel('Day') ylabel('Cumulative transpiration (cm)') legend('Cumulative potential transpiration (cm)','Cumulative actual transpiration (cm)') hold off
Εικόνα 3.2.36– Δυναμική και πραγματική διαπνοή σε σχέση με την ημέρα του έτους
3.2.2.6.22 Cum. potential and actual evaporation (cm) per day (Αθροιστική δυναμική και πραγματική εξάτμιση (cm) από την επιφάνεια του εδάφους σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : CUMEVAPperDAY
Μεταβλητές που εμφανίζονται : CUMPOTEVAP, CUMACTEVAP, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.37 δείχνει την αθροιστική
δυναμική (CUMPOTEVAP) (σε cm) και την αθροιστική πραγματική
Κεφάλαιο 3 LIQUID 105
(CUMACTEVAP) (σε cm) εξάτμιση από την επιφάνεια του εδάφους σε σχέση με
την ημέρα του έτους (Day)
Κώδικας MATLAB global Day CUMPOTEVAP CUMACTEVAP clf figNumber=figure('Name','Cumulative potential and actual evaporation per day'); hold on title(strcat('Cumulative potential and actual evaporation per day'),'fontsize',20) plot(Day,CUMPOTEVAP,'R.-',Day,CUMACTEVAP) grid on xlabel('Day') ylabel('Cumulative evaporation (cm)') legend('Cumulative potential evaporation','Cumulative actual evaporation (cm)') hold off
Εικόνα 3.2.37– Αθροιστική δυναμική και πραγματική εξάτμιση από την επιφάνεια του εδάφους σε
σχέση με την ημέρα του έτους
Κεφάλαιο 3 LIQUID 106
3.2.2.6.23 Cum. flux through top and bottom boundary (cm) per day (Αθροιστική ροή δια μέσου το επάνω και του κάτω ορίου (cm) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : CUMQTPandQBTperDAY
Μεταβλητές που εμφανίζονται : CUMQTP, CUMQBT, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.38 δείχνει την αθροιστική
ροή δια μέσου του επάνω (CUMQTP) (σε cm) και του κάτω ορίου (CUMQBT)
(σε cm) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day CUMQTP CUMQBT clf figNumber=figure('Name','Cumulative flux through top and bottom boundary per day'); subplot(2,1,1) hold on title(strcat('Cumulative flux through top boundary per day'),'fontsize',18) plot(Day,CUMQTP,'R.-') grid on xlabel('Day') ylabel('Cumulative flux through top boundary (cm)') legend('Cumulative flux through top boundary (cm)') hold off subplot(2,1,2) hold on title(strcat('Cumulative flux through bottom boundary per day'),'fontsize',18) plot(Day,CUMQBT) grid on xlabel('Day') ylabel('Cumulative flux through bottom boundary (cm)') legend('Cumulative flux through bottom boundary (cm)') hold off
Κεφάλαιο 3 LIQUID 107
Εικόνα 3.2.38– Αθροιστική ροή δια μέσου του επάνω και κάτω ορίου σε σχέση με την ημέρα του
έτους
3.2.2.6.24 Cum. water balance results : 4 in one (5 plots)
Όνομα συνάρτησης : FOURINONECUMWATERBAL
Μεταβλητές που εμφανίζονται : CUMACTPREC, CUMPOTTRANS,
CUMACTTRANS, CUMPOTEVAP, CUMACTEVAP, CUMQTP,
CUMQBT, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.39 δείχνει τις πέντε
προηγούμενες γραφικές παραστάσεις (Cum. Precipitation and irrigation (cm)
per day, Cum. Potential and actual transpiration (cm) per day, Cum.
Potential and actual evaporation (cm) per day, Cum. flux through top and
bottom boundary (cm) per day) σε ένα παράθυρο
Κώδικας MATLAB
Κεφάλαιο 3 LIQUID 108
global Day CUMACTPREC CUMPOTTRANS CUMACTTRANS CUMPOTEVAP CUMACTEVAP CUMQTP CUMQBT clf figNumber=figure('Name','4 in one cumulative water balance results'); subplot(3,2,1) hold on title(strcat('Cumulative precipitation and irrigation per day'),'fontsize',11) plot(Day,CUMACTPREC,'M.-','LineWidth',1) grid on xlabel('Day') ylabel('Cum.precipitation and irrigation (cm)') legend('Cumulative precipitation and irrigation (cm)') hold off subplot(3,2,2) hold on title(strcat('Cumulative potential and actual evaporation per day'),'fontsize',11) plot(Day,CUMPOTEVAP,'R.-',Day,CUMACTEVAP) grid on xlabel('Day') ylabel('Cum. evaporation (cm)') legend('Cumulative potential evaporation','Cumulative actual evaporation (cm)') hold off subplot(3,2,3) hold on title(strcat('Cumulative potential and actual transpiration'),'fontsize',11) plot(Day,CUMPOTTRANS,'R.-',Day,CUMACTTRANS) grid on xlabel('Day') ylabel('Cum. transpiration (cm)') legend('Cumulative potential transpiration (cm)','Cumulative actual transpiration (cm)') hold off subplot(3,2,4) hold on title(strcat('Cumulative flux through top boundary per day'),'fontsize',11) plot(Day,CUMQTP,'R.-') grid on xlabel('Day') ylabel('Cum. flux through top boundary (cm)') legend('Cumulative flux through top boundary (cm)') hold off subplot(3,2,5) hold on title(strcat('Cum. flux through bottom boundary per day'),'fontsize',11) plot(Day,CUMQBT)
Κεφάλαιο 3 LIQUID 109
grid on xlabel('Day') ylabel('Cum. flux through bottom boundary (cm)') legend('Cumulative flux through bottom boundary (cm)') hold off
Εικόνα 3.2.39– Cum. water balance results : 4 in one (5 plots) (4 γραφικές παραστάσεις σε μία)
3.2.2.6.25 Potential evapotranspiration (mm/day) per day (Δυναμική εξατμισοδιαπνοή (mm/day) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : DAYperPET
Μεταβλητές που εμφανίζονται : PET, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.40 δείχνει την δυναμική
εξατμισοδιαπνοή (PET) (σε mm/day) σε σχέση με την ημέρα του έτους (Day)
Κώδικας MATLAB global Day PET clf figNumber=figure('Name','Potential evapotranspiration');
Κεφάλαιο 3 LIQUID 110
hold on title(strcat('Potential evapotranspiration per day'),'fontsize',20) plot(Day,PET,'B*-','LineWidth',1) grid on xlabel('Day') ylabel('Potential evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)') hold off
Εικόνα 3.2.40– Δυναμική εξατμισοδιαπνοή σε σχέση με την ημέρα του έτους
3.2.2.6.26 Reference crop evapotranspiration (mm/day) per day (Εξατμισοδιαπνοή αναφοράς (mm/day) σε σχέση με την ημέρα του έτους)
Όνομα συνάρτησης : DAYperETR
Μεταβλητές που εμφανίζονται : ETR, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.41 δείχνει την
εξατμισοδιαπνοή αναφοράς (ETR) (σε mm/day) σε σχέση με την ημέρα του
έτους (Day)
Κεφάλαιο 3 LIQUID 111
Κώδικας MATLAB global Day ETR clf figNumber=figure('Name','Reference crop evapotranspiration'); hold on title(strcat('Reference crop evapotranspiration per day'),'fontsize',20) plot(Day,ETR,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Reference crop evapotranspiration (mm/day)') legend('Reference crop evapotranspiration (mm/day)') hold off
Εικόνα 3.2.41– Εξατμισοδιαπνοή αναφοράς σε σχέση με την ημέρα του έτους
3.2.2.6.27 Evapotranspiration : 2 in one (2 plots)
Όνομα συνάρτησης : TWOinONEEVAPOTRANS2
Μεταβλητές που εμφανίζονται : PET, ETR, Day
Κεφάλαιο 3 LIQUID 112
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.42 δείχνει τις δύο
προηγούμενες γραφικές παραστάσεις (Potential evapotranspiration (mm/day)
per day, Reference crop evapotranspiration (mm/day) per day) σε σχέση με
την ημέρα του έτους (Day)
Κώδικας MATLAB global Day PET ETR clf figNumber=figure('Name','Potential and reference crop evapotranspiration'); subplot(2,1,1) hold on title(strcat('Potential evapotranspiration per day'),'fontsize',15) plot(Day,PET,'B*-') grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)') hold off subplot(2,1,2) hold on title(strcat('Reference crop evapotranspiration per day'),'fontsize',15) plot(Day,ETR,'R.-') grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Refence crop evapotranspiration (mm/day)') hold off
Κεφάλαιο 3 LIQUID 113
Εικόνα 3.2.42– Evapotranspiration : 2 in one (2 plots) (2 γραφικές παραστάσεις σε μία σελίδα)
3.2.2.6.28 Evapotranspiration : 2 in one (1 plot)
Όνομα συνάρτησης : TWOinONEEVAPOTRANS
Μεταβλητές που εμφανίζονται : PET, ETR, Day
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.43 δείχνει τις γραφικές
παραστάσεις των παραγράφων 3.2.2.6.25 και 3.2.2.6.26 (Potential
evapotranspiration (mm/day) per day, Reference crop evapotranspiration
(mm/day) per day). Είναι ανάλογη με την προηγούμενη (3.2.2.6.27) με τη μόνη
διαφορά ότι η προηγούμενη εμφανίζει την εξατμισοδιαπνοή αναφοράς και τη
δυναμική σε δύο γραφικές παραστάσεις, ενώ η συγκεκριμένη εμφανίζει τα δεδομένα
μας σε μία γραφική παράσταση
Κώδικας MATLAB global Day ETR PET clf
Κεφάλαιο 3 LIQUID 114
figNumber=figure('Name','Potential and reference crop evapotranspiration'); hold on title(strcat('Potential and Reference crop evapotranspiration per day'),'fontsize',20) plot(Day,PET,'B*-',Day,ETR,'R.-') grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)','Refence crop evapotranspiration (mm/day)') hold off
Εικόνα 3.2.43– Evapotranspiration : 2 in one (2 plots) (2 γραφικές παραστάσεις σε μία γραφική)
3.2.2.6.29 Water content profile (3D) (Τρισδιάστατο προφίλ περιεχόμενης υγρασίας)
Όνομα συνάρτησης : WC3D
Μεταβλητές που εμφανίζονται : WaterContent, Depth, Day
Κεφάλαιο 3 LIQUID 115
Η γραφική παράσταση που απεικονίζεται στην εικόνα 3.2.44 μας δείχνει σε
τρισδιάστατο σύστημα αξόνων την εδαφική υγρασία (WaterContent) (σε (%)), το
βάθος (Depth) (σε cm) καθώς και την ημέρα του έτους (Day).
Η διαφορά της συνάρτησης WC3D από όλες τις άλλες (παράγραφος 3.2.2.6.1) είναι
ότι για να εμφανίσουμε τρισδιάστατα γραφικά κάνουμε χρήση της εντολής surfc
(παράγραφος 3.1.3), με τη μορφή surfc(Depth,Day,WaterContent*100)
Κώδικας MATLAB global WaterContent Depth Day clf figNumber=figure('Name','Water content profile'); hold on title(strcat('Water content profile'),'fontsize',20) surfc(Depth,Day,WaterContent*100) az=-36; el=0; view(az,el); rotate3d on grid on xlabel('Depth of each nodal point (cm)') ylabel('Day') zlabel('Moisture (%)') colorbar hold off
Κεφάλαιο 3 LIQUID 116
Εικόνα 3.2.44– Τρισδιάστατο προφίλ περιεχόμενης υγρασίας
3.2.2.6.30 Water content profiles at : ΗΜ/ΝΙΕΣ (Προφίλ περιεχόμενης υγρασίας σε συγκεκριμένες ημερομηνίες)
Όνομα συνάρτησης : WATERCONTENT
Μεταβλητές που εμφανίζονται : WaterContent, Depth, THETS1, UNAVAILSW
Η γραφική παράσταση που απεικονίζεται στις εικόνες 3.2.45α και 3.2.45β μας δείχνει
το προφίλ της περιεχόμενης υγρασίας (WaterContent) (σε %) για κάποιες
συγκεκριμένες ημερομηνίες (τις οποίες επέλεξε ο χρήστης στο 5ο βήμα) σε σχέση με
το βάθος (Depth). Στο προφίλ ακόμη εμφανίζονται το μη διαθέσιμο εδαφικό νερό
(UNAVAILSW) (σε %) (κάτω όριο γραφικής παράστασης) καθώς και η μέγιστη
τιμή της υπολειμματικής υγρασίας κάθε εδαφικού ορίζοντα (θs) (THETS1) (σε %)
(επάνω όριο γραφικής παράστασης)
Κώδικας MATLAB
Κεφάλαιο 3 LIQUID 117
global Depth WaterContent Day JULINITIALDATE DaysForWaterContentProfiles DAYSPROFILES1 UNAVAILSW JMAX IYIN DEPTH THETS1 LAYER LastNodalPoint1 clf TEMP_UNAVAILSW(1:JMAX)= UNAVAILSW; temporary=1; for i=1:JMAX if LastNodalPoint1(temporary) < i temporary=temporary+1; end TEMP_THETAS(i)=THETS1(temporary); end for temp=1:DaysForWaterContentProfiles figNumber=figure('Name','Water Content profile'); plot([WaterContent((DAYSPROFILES1(temp)-JULINITIALDATE+1),:)]*100,Depth,'b.-',TEMP_UNAVAILSW,Depth,'k.--',100*TEMP_THETAS,Depth,'r.--'); [TEMPDAY,TEMPMONTH]=Jul2Gr(DAYSPROFILES1(temp),IYIN); PrintedDate=[num2str(TEMPDAY) '/' num2str(TEMPMONTH) '/' num2str(IYIN)]; title(['Water content profile at : ' PrintedDate ' (' num2str(DAYSPROFILES1(temp)) ' day)'],'fontsize',18); grid on ylabel('Depth (cm)'); set(gca,'YDir','reverse'); xlabel('Moisture (%)'); legend('Moisture','Unavailable Soil water','Maximum moisture content'); end
Κεφάλαιο 3 LIQUID 118
Εικόνα 3.2.45α– Προφίλ περιεχόμενης υγρασίας για τις ημέρες που επιλέξαμε
Εικόνα 3.2.45β– Προφίλ περιεχόμενης υγρασίας για τις ημέρες που επιλέξαμε
Κεφάλαιο 3 LIQUID 119
3.2.3 Μεταβλητές LIQUID
Στον παρακάτω πίνακα παρουσιάζονται τα ονόματα των μεταβλητών που
χρησιμοποιεί το LIQUID. Μαζί με αυτό βλέπουμε το όνομα της αντίστοιχης
μεταβλητής στο SWBACROS (όταν αυτή υπάρχει), τον τύπος της (διπλής ακρίβειας,
πίνακας, string) καθώς και η σημασία της.
Μεταβλητή Liquid
(Μεταβλητή SWBACROS)
Τύπος Σημασία
IDIN
(IDIN)
Double precision
Αρχική ημέρα υπολογισμών (Initial Day)
IMIN
(IMIN)
Double precision
Αρχικός μήνας υπολογισμών (Initial
Month)
IYIN
(IYIN)
Double precision
Αρχικό έτος υπολογισμών (Initial Year)
(IYIN : 1990-2020)
IDLAST
(IDLAST)
Double precision
Τελική ημέρα υπολογισμών (Last Day)
IMLAST
(IMLAST)
Double precision
Τελικός μήνας υπολογισμών (Last
Month)
IYLAST
(IYLAST)
Double precision
Τελικό έτος υπολογισμών (Last Year)
(IYLAST : 1990-2020)
IDTDAY
(IDTDAY)
Double precision
Τρέχουσα ημέρα (Today, Current Day)
IMTDAY
(IMTDAY)
Double precision
Τρέχων μήνας (Current Month)
IYTDAY
(IYTDAY)
Double precision
Τρέχον έτος (Current Year)
METHOD1
(METHOD)
Double precision
Επιλογή της αριθμητικής μεθόδου
Douglas – Jones (METHOD1=1)
(Numerical method : Douglas-Jones
predictor corrector)
Κεφάλαιο 3 LIQUID 120
METHOD2
(METHOD)
Double precision
Επιλογή της αριθμητικής μεθόδου
Implicit (METHOD2=1)
(SWBACROS’s Numerical method :
Implicit method)
MAXITER
(MAXITER)
Double precision
Μέγιστος αριθμός επαναλήψεων (μόνο
κατά την Implicit μέθοδο) (Maximum
number of iterations (for implicit method
ONLY))
JMAX
(JMAX)
Double precision
Μέγιστος αριθμός κόμβων (Nodal
points) (Maximum number of Nodal
points) (JMAX : 1-20)
DEPTH
(DEPTH)
Double precision
Βάθος ακόρεστης ζώνης εδάφους (σε m)
(Depth of the unsaturated zone from soil
surface)
DTPAR1
(DTPAR)
Double precision
Επιλογή για σταθερό χρονικό βήμα
(DTPAR1=1) (Time steps : Constant
time step)
DTPAR2
(DTPAR)
Double precision
Επιλογή για μεταβλητό χρονικό βήμα
(DTPAR2=1) (Time steps : Variable time
step)
DT2
(DT)
Double precision
Αρχικό χρονικό βήμα για το constant
time step (σε min) (Initial time step for
constant time step)
DT1
(DT)
Double precision
Αρχικό χρονικό βήμα για το variable
time step (σε min) (Initial time step for
variable time step)
DTMIN
(DTMIN)
Double precision
Ελάχιστο χρονικό βήμα για το variable
time step (σε min) (Minimum time step
for variable time step)
DTMAX Double precision
Μέγιστο χρονικό βήμα για το variable
Κεφάλαιο 3 LIQUID 121
(DTMAX) time step (σε min) (Maximum time step
for variable time step)
ZETA1
(ZETA)
Double precision
Παράμετρος σύγκλισης για το variable
time step (σε min) (Convergence
parameter)
OPT1
(OPT)
Double precision
Επιλογή είδους εκτέλεσης : Εκτέλεση
βελτιστοποίησης (OPT1=1) (Type of run
: Optimization run)
OPT2
(OPT)
Double precision
Επιλογή είδους εκτέλεσης : Κανονική
εκτέλεση (OPT2=1) (Type of run :
Normal run)
LAYER
(LAYER)
Double precision
Αριθμός εδαφικών στρώσεων (Number
of different soil layers) (LAYER: 1-14)
OUTPUTFILE1
(OUT1)
String Αρχείο που περιέχει τα αποτελέσματα του
υδατικού ισοζυγίου του εδάφους (Water
balance results file)
OUTPUTFILE2
(OUT2)
String Αρχείο που περιέχει τα αποτελέσματα
των χαρακτηριστικών του εδαφικού
προφίλ (Soil profile characteristics file)
IBBC1
(IBBC)
Double precision
Επιλογή για γνωστή υπόγεια στάθμη για
την κάτω οριακή συνθήκη (IBBC1=1)
(Bottom boundary condition : Constant
head at the bottom boundary)
IBBC2
(IBBC)
Double precision
Επιλογή για ελεύθερη στράγγιση για την
κάτω οριακή συνθήκη (IBBC2=1)
(Bottom boundary condition : Free
drainage)
IBBC3
(IBBC)
Double precision
Επιλογή για μηδενική ροή για την κάτω
οριακή συνθήκη (IBBC3=1) (Bottom
boundary condition : Zero flux)
Κεφάλαιο 3 LIQUID 122
IRWUT
(IRWUT)
Double precision
Ενεργοποίηση / απενεργοποίηση της
πρόσληψης νερού από τις ρίζες του φυτού
(IRWUT=1 για ενεργοποιημένη
πρόσληψη) (Activate the root water
uptake term)
MODUPT1
(MODUPT)
Double precision
Επιλογή για χρήση του μοντέλου Feddes
για τη μέγιστη δυνατή πρόσληψη νερού
από τις ρίζες (Smax) (MODUPT1=1)
(Maximum water extraction by roots is
constant with depth : Feddes' model) (για
IRWUT=1)
MODUPT2
(MODUPT)
Double precision
Επιλογή για χρήση του μοντέλου Prasad
για τη μέγιστη δυνατή πρόσληψη νερού
από τις ρίζες (Smax) (MODUPT2=1)
(Maximum water extraction by roots
varies with depth : Prasads' model) (για
IRWUT=1)
PSI1
(PSI1)
Double precision
Σημείο αναεροβίωσης (σε m) για τον
υπολογισμό της πρόσληψης νερού από τις
ρίζες (Anaerobiosis point) (για
IRWUT=1)
PSI2
(PSI2)
Double precision
Κρίσιμο ύψος πίεσης (σε m) (Limiting
Point) (για IRWUT=1)
PSI3
(PSI3)
Double precision
Ύψος πίεσης στην υδατοϊκανότητα (σε
m) (Wilting Point) (για IRWUT=1)
DaysForWaterContent
Profiles
(-)
Double precision
Αριθμός ημερών για τις οποίες ο χρήστης
επιθυμεί να δει το εδαφικό προφίλ
(DaysForWaterContentProfiles : 1-9)
IΤBC1
(ITBC)
Double precision
Επιλογή για γνωστό φορτίο για την πάνω
οριακή συνθήκη (ITBC1=1) (Top
Κεφάλαιο 3 LIQUID 123
boundary condition : Known head)
ITBC2
(ITBC)
Double precision
Επιλογή για γνωστή ροή για την πάνω
οριακή συνθήκη (ITBC2=1) (Top
boundary condition : Known flux)
ITBC3
(ITBC)
Double precision
Επιλογή για ροή δοσμένη από τον
χρήστη για την πάνω οριακή συνθήκη
(ITBC3=1) (Top boundary condition :
User defined flux at the top boundary)
UDFLUX
(UDFLUX)
Double precision
Ροή δοσμένη από τον χρήστη για την
πάνω οριακή συνθήκη (σε m/day) (User
defined flux at the top boundary) (για
ITBC3=1)
SIGMA
(SIGMA)
Double precision
Coefficient in actual evaporation
function (SIGMA) (για ITBC2=1)
PETIND1
(PETIND)
Double precision
Επιλογή για χρήση της τροποποιημένης
μεθόδου Penman για τον υπολογισμό της
δυναμικής εξατμισοδιαπνοής
(PETIND1=1) (Potential
evapotranspiration computation by
modified Penman method)
PETIND2
(PETIND)
Double precision
Επιλογή για να δίνεται η δυναμική
εξατμισοδιαπνοή στο αρχείο εισόδου
PNMETEO (PETIND2=1) (Potential
evapotranspiration computation given
with the input data (PNMETEO)
PETIND3*
(PETIND)
Double precision
Επιλογή για χρήση της μεθόδου
Penman-Montheith για τον υπολογισμό
της δυναμικής εξατμισοδιαπνοής
(PETIND3=1) (Potential
evapotranspiration computation by
Κεφάλαιο 3 LIQUID 124
modified Penman method)
IPETC
(IPETC)
Double precision
Επιλογή για εξαγωγή ή μη των
παραμέτρων που χρησιμοποιήθηκαν
στον υπολογισμό της εξατμισοδιαπνοής
στο αρχείο OUTFILE1 (ΙPETC=1 για
εξαγωγή) (Parameters used in ETP
computation are printed in first output
file) (για PETIND1=1 ή PETIND3=1)
IAVER1
(IAVER)
Double precision
Επιλογή για τον υπολογισμό της
δυναμικής εξατμισοδιαπνοής κάνοντας
χρήση καθημερινών δεδομένων
(IAVER1=1) (Potential
evapotranspiration computation using
daily data) (για PETIND1=1 ή
PETIND3=1)
IAVER2
(IAVER)
Double precision
Επιλογή για τον υπολογισμό της
δυναμικής εξατμισοδιαπνοής παίρνοντας
τον μέσο όρο των κλιματολογικών
δεδομένων για 10 ημέρες (IAVER2=1)
(Potential evapotranspiration
computation averaging the daily
climatological data over 10 days) (για
PETIND1=1 ή PETIND3=1)
IRS1
(IRS)
Double precision
Επιλογή για τον υπολογισμό της ηλιακής
ακτινοβολίας από το αρχείο δεδομένων
PNMETEO (IRS1=1) (Solar radiation
computation given in PNMETEO) (για
PETIND1=1 ή PETIND3=1)
IRS2
(IRS)
Double precision
Επιλογή για τον υπολογισμό της ηλιακής
ακτινοβολίας από το SWBACROS
Κεφάλαιο 3 LIQUID 125
(IRS2=1) (Solar radiation computation
computed internally) (για PETIND1=1 ή
PETIND3=1)
VRATIO
(VRATIO)
Double precision
Λόγος της ταχύτητας του ανέμου κατά
τη διάρκεια της ημέρας και της νύχτας
(Ratio of wind speed during day and
night) (για PETIND1=1 ή PETIND3=1)
EXCELEXPORT
(-)
Double precision
Επιλογή για την εξαγωγή των
αποτελεσμάτων του SWBACROS σε
excel αρχείο (για εξαγωγή στο excel
EXCELEXPORT=1)
FirstNodalPoint1(1,j) (LFIRST)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Αριθμός του πρώτου κόμβου του κάθε
εδαφικού ορίζοντα (First Nodal Point)
LastNodalPoint1(1,j) (LLAST)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Αριθμός του τελευταίου κόμβου του κάθε
εδαφικού ορίζοντα (Last Nodal Point)
AKS1(1,j) (AKS)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Οι τιμές της κορεσμένης υδραυλικής
αγωγιμότητας κάθε εδαφικού ορίζοντα
(Saturated hydraulic conductivity)
THETS1(1,j) (THETS)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Οι τιμές της υπολειμματικής υγρασίας
(θs) κάθε εδαφικού ορίζοντα (Saturated
moisture content)
THETD1(1,j) (THETD)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Οι τιμές της περιεχόμενης στο έδαφος
υγρασίας κατ’ όγκο (θ) κάθε εδαφικού
ορίζοντα (Moisture content of dried soil)
AV1(1,j) (AV)
Μονοδιάστατος πίνακας με διαστάσεις (1xLAYER)
Συντελεστής α προσδιοριζόμενος από την
χαρακτηριστική καμπύλη στην εξίσωση
Van Genuchten κάθε εδαφικού ορίζοντα
(Coefficient a of Van Genuchten model
(1/cm))
ANV1(1,j) Μονοδιάστατος πίνακας με
Εμπειρική παράμετρος n
Κεφάλαιο 3 LIQUID 126
(ANV) διαστάσεις (1xLAYER)
προσδιοριζόμενη από την χαρακτηριστική
καμπύλη στην εξίσωση Van Genuchten
κάθε εδαφικού ορίζοντα (Coefficient n of
Van Genuchten model)
SizeNodalPoints1(1,j) (DELZ)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Μέγεθος (σε m) κάθε κελιού (Size of each
cell)
InitialY1(1,j) (Y)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Οι τιμές των αρχικών τιμών της
αρνητικής πίεσης (σε m) κάθε κόμβου
(Initial value of negative pressure (m))
INITIALDATE
(-)
String Αρχική ημερομηνία υπολογισμών (σε
γρηγοριανό ημερολόγιο) (π.χ.
‘30/12/2005’)
LASTDATE
(-)
String Τελική ημερομηνία υπολογισμών (σε
γρηγοριανό ημερολόγιο (π.χ.
‘31/12/2005’)
JULINITIALDATE
(-)
Double precision
Αρχική ημερομηνία υπολογισμών (σε
ημέρα του έτους (π.χ. 364))
JULLASTDATE
(-)
Double precision
Τελική ημερομηνία υπολογισμών (σε
ημέρα του έτους (π.χ. 365))
DAYSPROFILES1(1,j) (-)
Μονοδιάστατος πίνακας με διαστάσεις (1xDaysForWaterContentProfiles)
Περιέχει τις ημερολογιακές ημέρες για
τις οποίες ο χρήστης επιθυμεί να δει το
εδαφικό προφίλ
UNAVAILSW
(-)
Double precision
Μη διαθέσιμο εδαφικό νερό (Unavailable
Soil water)
Depth(1,j) (DP1)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Βάθος (σε m) κάθε κόμβου (Depth of
each nodal point)
AK(1,j) (AKS)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Αρχική υδραυλική αγωγιμότητα (m/day)
(Hydraulic conductivity of unsaturated
soil)
Κεφάλαιο 3 LIQUID 127
INITIALMOISTURE(
1,j) (THETA)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Αρχική υγρασία του εδάφους (Initial
moisture)
Y(1,j) (Y)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Αρχική αρνητική πίεση του εδαφικού
νερού (σε m) (Negative pressure of the
soil water)
ETR(1,j) (ETR)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Εξατμισοδιαπνοή αναφοράς (σε
mm/day) (Reference crop
evapotranspiration)
PET(1,j) (PET)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Δυναμική εξατμισοδιαπνοή (σε mm/day)
(Potential evapotranspiration)
SC(1,j) (SC)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Εδαφοκάλυψη (0.0 – 1.0) (Soil cover)
ROOTDP(1,j) (ROOTDP)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Βάθος ριζικού συστήματος (σε m) (Root
depth)
ALAI(1,j) (ALAIN)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Δείκτης φυλλικής επιφάνειας (Leaf area
index)
YMIN(1,j) (YMIN)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Ελάχιστη πίεση εδαφικού νερού (σε m)
(Minimum pressure)
AINTER(1,j) (AINTER)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Υδατοσυγκράτηση (σε mm/day)
(Intercepted rain)
Day(1,j) (ΝΤΙΜ)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Ημέρα του έτους (Calendar day)
WCEND(1,j) (VOL1)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Ποσότητα εδαφικού νερού στο τέλος της
ημέρας (σε cm) (Water content at the end
of the day)
ACTPREC(1,j) (RAIN)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Βροχόπτωση και άρδευση (σε cm)
(Actual precipitation)
POTTRANS(1,j) Μονοδιάστατος πίνακας με διαστάσεις
Δυναμική διαπνοή (σε cm) (Potential
Κεφάλαιο 3 LIQUID 128
(PTR) (1xNoD **) transpiration)
ACTTRANS(1,j) (ATR)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Πραγματική διαπνοή (σε cm) (Actual
transpiration)
POTEVAP(1,j) (EV)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Δυναμική εξάτμιση (σε cm) (Potential
evaporation)
ACTEVAP(1,j) (EVA)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Πραγματική εξάτμιση (σε cm) (Actual
evaporation)
QTP(1,j) (QTPOD)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Ροή δια μέσου του επάνω ορίου (σε cm)
(Flux through top boundary)
QBT(1,j) (QBTOD)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Ροή δια μέσου του κάτω ορίου (σε cm)
(Flux through bottom boundary)
EPSINC(1,j) (EPSINC)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αυξητικό λάθος υδατικού ισοζυγίου (%)
(Incremental water balance error)
CUMACTPREC(1,j) (CUMRAI)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική βροχόπτωση και άρδευση
(σε cm) (Cumulative actual precipitation)
CUMPOTTRANS(1,j) (CUMPTR)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική δυναμική διαπνοή (σε cm)
(Cumulative potential transpiration)
CUMACTTRANS(1,j) (CUMATR)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική πραγματική διαπνοή (σε cm)
(Cumulative actual transpiration)
CUMPOTEVAP(1,j) (CUMEV)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική δυναμική εξάτμιση (σε cm)
(Cumulative potential evaporation)
CUMACTEVAP(1,j) (CUMEVA)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική πραγματική εξάτμιση (σε
cm) (Cumulative actual evaporation)
CUMQTP(1,j) (QTPTOT)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική ροή δια μέσου του επάνω
ορίου (σε cm) (Cumulative flux through
top boundary)
CUMQBT(1,j) (QBTTOT)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστική ροή δια μέσου του κάτω
ορίου (σε cm) (Cumulative flux through
bottom boundary)
Κεφάλαιο 3 LIQUID 129
EPSTOT(1,j) (EPSTOT)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Αθροιστικό λάθος υδατικού ισοζυγίου
(%) (Cumulative water balance error)
NodalPoints(1,j) (-)
Μονοδιάστατος πίνακας με διαστάσεις (1xJMAX)
Κόμβοι των εδαφικών προφίλ (Nodal
points number)
WaterContent(k,j) (THETA)
Πίνακας με διαστάσεις (1xDepth, 1xNoD **)
Ποσότητα εδαφικού νερού (για κάθε
κόμβο και για όλες τις ημέρες) (Water
Content)
DEPTHVar(1,j)
(-)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Οι τιμές του βάθους της ακόρεστης
ζώνης του εδάφους (σε m) για κάθε ημέρα
του έτους
JMAXVar(1,j)
(-)
Μονοδιάστατος πίνακας με διαστάσεις (1xNoD **)
Οι τιμές του μέγιστου αριθμού κόμβων
για κάθε ημέρα του έτους
* η επιλογή PETIND3 για τον υπολογισμό της δυναμικής εξατμισοδιαπνοής με τη
μέθοδο του Penman-Monteith μπήκε για τη μελλοντική δυνατότητα του
SWBACROS να υπολογίζει την εξατμισοδιαπνοή με τη μέθοδο των Penman-
Montheith. Προς το παρόν η επιλογή αυτή δίνει τα ίδια αποτελέσματα με αυτά της
τροποποιημένης μεθόδου Penman.
** NoD (Number of Days) : δεν είναι μεταβλητή του liquid αλλά, χάριν συντομίας,
συμβολίζει τον αριθμό των ημερών για τις οποίες εκτελείται το πρόγραμμα (η
αντίστοιχη μεταβλητή για το SWBACROS είναι η NRDAYS)
3.2.4 Παρεμβάσεις LIQUID στον κώδικα του SWBACROS
Οι παρεμβάσεις στον κώδικα του SWBACROS έγιναν για την εξαγωγή, εκτός
των δύο αρχείων αποτελεσμάτων του SWBACROS, εφτά νέων αρχείων σε τέτοια
μορφή ώστε να διαβάζονται από το LIQUID.
Κεφάλαιο 3 LIQUID 130
Δημιουργούνται έτσι τα εξής αρχεία τα οποία περιέχουν και τις παρακάτω
αναφερόμενες μεταβλητές.
1) INITSOIL.TXT
Initial Soil Profile Data
Το αρχείο αυτό περιέχει τα δεδομένα που εμφανίζονται στην ομάδα γραφικών
παραστάσεων Initial Soil Profile Data και περιέχει σε τέσσερις στήλες τις
μεταβλητές :
Depth, AK, INITIALMOISTURE, Y
2) EVAPOTRANS.TXT
Reference and potential evapotranspiration
Το αρχείο αυτό περιέχει τα δεδομένα που εμφανίζονται στην ομάδα γραφικών
παραστάσεων Reference and potential evapotranspiration και περιέχει σε δύο
στήλες τις μεταβλητές :
ETR, PET
3) DAYSCRDetc.TXT
Soil cover, Root Depth, Leaf Area Index, Minimum pressure
Tο αρχείο αυτό περιέχει τα δεδομένα που εμφανίζονται στην ομάδα γραφικών
παραστάσεων Soil cover, Root Depth, Leaf Area Index, Minimum pressure
και περιέχει σε πέντε στήλες τις μεταβλητές :
SC, ROOTDP, ALAI, YMIN, AINTER
4) WATERBAL.TXT
Water balance results
Το αρχείο αυτό περιέχει τα δεδομένα που εμφανίζονται στην ομάδα γραφικών
παραστάσεων Water balance results και περιέχει σε δεκαοχτώ στήλες τις
μεταβλητές :
Κεφάλαιο 3 LIQUID 131
Day, WCEND, ACTPREC, POTTRANS, ACTTRANS, POTEVAP,
ACTEVAP, QTP, QBT, EPSINC, CUMACTPREC, CUMPOTTRANS,
CUMACTTRANS, CUMPOTEVAP, CUMACTEVAP, CUMQTP,
CUMQBT, EPSTOT
5) PROFILE.TXT
Water content profiles
Tο αρχείο αυτό περιέχει τα δεδομένα που εμφανίζονται στην ομάδα γραφικών
παραστάσεων Water content profiles και περιέχει τις τιμές της μεταβλητής :
WaterContent
6) NODAL.TXT
Το αρχείο αυτό περιέχει τις τιμές της μεταβλητής :
NodalPoints
7) DEPTHJMAXVAR.TXT
Το αρχείο αυτό περιέχει τις τιμές των μεταβλητών :
DEPTHVar, JMAXVar
Όλες οι παρεμβάσεις που έγιναν στα κώδικα του SWBACROS είναι οι
ακόλουθες:
Στο αρχείο sink1e.f90 :
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
OPEN(115,FILE='WATERBAL.txt')
WRITE(115,1920)
OPEN(113,FILE='INITSOIL.txt')
Κεφάλαιο 3 LIQUID 132
WRITE(113,1950)(DP1(J)*100,AK(J),THETA(J),Y(J),J=1,JMAX)
1950 FORMAT('INITIAL SOIL PROFILE DATA'/,'DEPTH(CM) AK(M/DAY)
INITIAL MOISTURE Y (M)'//(F5.1,4X,2E13.4,9X,F7.3))
1920 FORMAT('WATER BALANCE RESULTS'/21('*')&
&//'1-JULIAN DAYNUMBER'&
&/'2-WATER CONTENT OF THE SOIL PROFILE AT THE END OF THE DAY'&
&/'3-PRECIPITATION AND IRRIGATION'&
&/'4-POTENTIAL TRANSPIRATION'&
&/'5-ACTUAL TRANSPIRATION'&
&/'6-POTENTIAL EVAPORATION'&
&/'7-ACTUAL EVAPORATION'&
&/'8-FLUX THROUGH TOP BOUNDARY (+ = IN)'&
&/'9-FLUX THROUGH BOTTOM BOUNDARY (+ = OUT)'&
&/'10-INCREMENTAL ERROR (%)',&
&/'11-CUMULATIVE PRECIPITATION AND IRRIGATION',&
&/'12-CUMULATIVE POTENTIAL TRANSPIRATION',&
&/'13-CUMULATIVE ACTUAL TRANSPIRATION',&
&/'14-CUMULATIVE POTENTIAL EVAPORATION',&
&/'15-CUMULATIVE ACTUAL EVAPORATION',&
&/'16-CUMULATIVE FLUX THROUGH TOP BOUNDARY',&
&/'17-CUMULATIVE FLUX THROUGH BOTTOM BOUNDARY',&
&/'18-CUMULATIVE WATER BALANCE ERROR (%)',&
&//'ALL UNITS IN CM (EXCEPT 10 , 18)'//&
&' 1 2 3 4 5 6
7 8 9 10 11 12
13&
& 14 15 16 17
18'/)
OPEN(14,FILE='NODAL.txt')
WRITE(14,1999)(J,DP1(J)*100,J=1,JMAX)
1999 FORMAT(I4,2X,F8.3)
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
Κεφάλαιο 3 LIQUID 133
Στο αρχείο sink1e.f90 στην υπορουτίνα COMPUT :
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
WRITE(115,1922)NTIM,VOL1*100,RAIN(NTIM)/10,PTR(NTIM)/10,ATR(NT
IM)*100,EV(NTIM)/10,EVA(NTIM)/10,QTPOD*100,QBTOD*100,EPSINC,CU
MRAI/10,CUMPTR/10,CUMATR*100,CUMEV/10,CUMEVA/10,QTPTOT*100,QBT
TOT*100,EPSTOT
1922
FORMAT(T1,I3,T8,F6.2,T20,F5.3,T30,F5.3,T40,F5.3,T50,F5.3,T60,F
5.3,T70,E10.3,T85,E10.3,T98,E10.3,T112,F5.2,T122,F5.2,T132,F5.
2,T142,F5.2,T152,F5.2,T162,E10.3,T176,E10.3,T190,E10.3)
OPEN(116,file='PROFILE.txt')
WRITE(116,1927) (THETA(J),J=1,JMAX)
1927 FORMAT(30F8.3)
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
και
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
open(222,file='DEPTHJMAXVAR.txt')
write(222,667) DEPTH,JMAX,NTIM
667 FORMAT(F5.2,3X,I3,3X,I4)
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
Κεφάλαιο 3 LIQUID 134
! LLLL II QQQQQ UUUUU II DDDD
!
Στο αρχείο sinkip.f90 στην υπορουτίνα PETP :
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
OPEN(112,FILE='EVAPOTRANS.txt')
WRITE(112,1970)
WRITE(112,1972)(ETR(I),PET(I),I=JULIN,JULIN+NRDAYS)
1970 FORMAT('REFERENCE AND POTENTIAL EVAPOTRANSPIRATION
(MM/DAY)'/2X,'ETR',6X,'PET'/)
1972 FORMAT(1X,F5.2,4X,F5.2)
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
Στο αρχείο sinkp9.f90 στην υπορουτίνα TITUNS :
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
OPEN(111,FILE='DAYSCRDetc.txt')
IF(IRWUT.EQ.1)THEN
WRITE(111,1969)
WRITE(111,1971)(SC(I),ROOTDP(I),ALAI(I),YMIN(I),AINTER(I),&
& I=JULIN,JULIN+NRDAYS)
ENDIF
Κεφάλαιο 3 LIQUID 135
1969
FORMAT(2X,'SC',2X,'ROOTDP',1X,'ALAI',3X,'YMIN',4X,'AINTER',/7X,'(M)
',10X,'(M)',4X,'(MM/DAY)'/)
1971 FORMAT(1X,F4.2,2X,F4.2,2X,F4.2,2X,F7.0,2X,F5.2)
!
! LL II QQQQ UU UU II DDDD
! LL II Q Q UU UU II DD D
! LLLL II QQQQQ UUUUU II DDDD
!
3.2.5 Αρχεία και εγκατάσταση του LIQUID
Το πρόγραμμα LIQUID εκτός από τα αρχεία (m και fig) που είδαμε στις
προηγούμενες παραγράφους (liquid, LIQUIDstep2, LIQUIDstep3,
LIQUIDstep4, LIQUIDstep5 και LIQUIDmenu) και των αρχείων της
προηγούμενης παραγράφου (3.2.4) (INITSOIL.TXT, EVAPOTRANS.TXT,
DAYSCRDetc.TXT, WATERBAL.TXT, NODAL.TXT, PROFILE.TXT,
DEPTHJMAXVAR.TXT) χρειάζεται και κάποια άλλα αρχεία απαραίτητα για την
εκτέλεση του.
Τα αρχεία αυτά είναι τα παρακάτω :
LIQUIDvars.mat
Το αρχείο LIQUIDvars.mat αποτελεί το αρχείο αποθήκευσης δεδομένων
του LIQUID. Στο αρχείο αυτό αποθηκεύονται σε κάθε βήμα LIQUIDstep2,
LIQUIDstep3, LIQUIDstep4, και LIQUIDstep5 οι μεταβλητές που δίνει ο
χρήστης στις αντίστοιχες φόρμες.
sink1e.exe
Το αρχείο sink1e.exe αποτελεί, όπως είδαμε στην παράγραφο 2.4, το βασικό
αρχείο εκτέλεσης του SWBACROS. Προήλθε από compilation των αρχείων
sink1e.f90, sinkff.f90, sinkip.f90 και sinkp9.f90 μέσα από το περιβάλλον της
Visual Fortran.
Κεφάλαιο 3 LIQUID 136
templiquid.xls
Το αρχείο templiquid.xls είναι απαραίτητο για την εξαγωγή των
αποτελεσμάτων του SWBACROS σε αρχείο excel.
Το LIQUIDvars.mat και το sink1e.exe είναι απαραίτητα για την εκτέλεση
του LIQUID. Αν για οποιοδήποτε λόγο τα αρχεία αυτά δεν υπάρχουν στο φάκελο
του LIQUID ή έχουν καταστραφεί το LIQUID δεν θα μπορέσει να λειτουργήσει.
Το templiquid.xls μπορεί να παραληφθεί αν ο χρήστης δεν επιθυμεί την
εξαγωγή των αποτελεσμάτων του SWBACROS σε αρχείο excel.
Η εγκατάσταση του LIQUID γίνεται πολύ απλά μεταφέροντας τον φάκελο
LIQUID, του cd-rom που συνοδεύει την πτυχιακή διατριβή, σε φάκελο της
αρεσκείας μας στο σκληρό δίσκο του υπολογιστή μας. Το LIQUID δεν παρουσιάζει
κανένα περιορισμό όσον αφορά το όνομα του φακέλου που εμείς θα επιλέξουμε.
3.2.6 Εξαγωγή – εκτύπωση γραφικών παραστάσεων
Η εξαγωγή των γραφικών παραστάσεων του LIQUID γίνεται με τους εξής
τρόπους.
Ι) Με απευθείας αποθήκευση της γραφικής παράστασης μας σε αρχείο της
επιλογής μας
Επιλέγοντας από το γραμμή μενού File Save (εικόνα 3.2.46), και από τη
γραμμή εργαλείων επιλέγοντας το εικονίδιο της εικόνας 3.2.47
Κεφάλαιο 3 LIQUID 137
Εικόνα 3.2.46– Αποθήκευση της γραφικής παράστασης
Εικόνα 3.2.47– Αποθήκευση της γραφικής παράστασης
Η MATLAB προσφέρει τη δυνατότητα εξαγωγής των γραφικών παραστάσεων
σε δεκατρία είδη αρχείων, μεταξύ άλλων και σε Adobe Illustrator files (.ai), Bitmap
files (.bmp), JPEG images (.jpg), TIFF files (.tif) καθώς Portable document format
(.pdf) (εικόνα 3.2.48)
Κεφάλαιο 3 LIQUID 138
Εικόνα 3.2.48– Ορισμός ονόματος και τύπου αρχείου
ΙΙ) Αντιγραφή της γραφικής παράστασης στο πρόχειρο (clipboard)
Η MATLAB για την περίπτωση κατά την οποία επιθυμούμε να μεταφέρουμε
απευθείας τη γραφική μας παράσταση σε κάποια άλλη εφαρμογή (π.χ. Microsoft
Word, Adobe Photoshop) μας δίνει τη δυνατότητα αυτή, επιλέγοντας από τη
γραμμή μενού File Edit Copy Figure (εικόνα 3.2.49). Η γραφική παράσταση
μεταφέρεται στο πρόχειρο (clipboard) και μπορεί εύκολα να μεταφερθεί επιλέγοντας
απλά Paste (επικόλληση) στην εφαρμογή της επιλογής μας.
Κεφάλαιο 3 LIQUID 139
Εικόνα 3.2.49– Αντιγραφή γραφικής παράστασης στη μνήμη
Για την εκτύπωση των γραφικών παραστάσεων μας μπορούμε, είτε να
επιλέξουμε από την γραμμή εργαλείων κατάλληλο εικονίδιο (εικόνα 3.2.50), είτε
Εικόνα 3.2.50– Εκτύπωση της γραφικής παράστασης
επιλέγοντας από το γραμμή μενού File Print… (εικόνα 3.2.51)
Κεφάλαιο 3 LIQUID 140
Εικόνα 3.2.51– Εκτύπωση της γραφικής παράστασης
3.2.7 MATLAB Compiler
Ο MATLAB Compiler δίνει τη δυνατότητα στο χρήστη να δημιουργήσει
stand-alone (αυθύπαρκτες) εφαρμογές από το περιβάλλον της MATLAB. Οι
εφαρμογές αυτές δεν απαιτούν την υπάρξη στον υπολογιστή που εγκαθίστανται την
ύπαρξη της MATLAB.
Οι δύο εντολές που συνδυάζονται και μας βοηθούν στη δημιουργία τέτοιων
εφαρμογών είναι η mbuild και η mcc.
Η εντολή mbuild μας βοηθά στο να ορίσουμε τον εξωτερικό compiler που
θα χρησιμοποιήσουμε στην επόμενη εντολή mcc.
Πληκτρολογώντας την εντολή mbuild –setup, η MATLAB ρωτά το
χρήστη για το αν θα ψάξει στο σύστημα μας για τους εγκαταστημένους compilers.
Επιλέγοντας y η MATLAB εμφανίζει τους compilers του συστήματος μας (στην
περίπτωση μας είναι οι : Lcc C version 2.4, Microsoft Visual C/C++ version 6.0).
Αμέσως μετά η εντολή mbuild μας ζητά να ορίσουμε έναν από τους compilers που
Κεφάλαιο 3 LIQUID 141
θα χρησιμοποιήσουμε. Στο compilation του LIQUID επιλέχθηκε ο δεύτερος
compiler (Microsoft Visual C/C++ version 6.0). >> mbuild -setup Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n? y Select a compiler: [1] Lcc C version 2.4 in C:\MATLAB7\sys\lcc [2] Microsoft Visual C/C++ version 6.0 in C:\Program Files\Microsoft Visual Studio [0] None Compiler: 2 Please verify your choices: Compiler: Microsoft Visual C/C++ 6.0 Location: C:\Program Files\Microsoft Visual Studio Are these correct?([y]/n): y Try to update options file: C:\Documents and Settings\fmayakos\Application Data\MathWorks\MATLAB\R14\compopts.bat From template: C:\MATLAB7\BIN\WIN32\mbuildopts\msvc60compp.bat Done . . . --> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcomutil.dll" DllRegisterServer in C:\MATLAB7\bin\win32\mwcomutil.dll succeeded --> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcommgr.dll" DllRegisterServer in C:\MATLAB7\bin\win32\mwcommgr.dll succeeded
Η δεύτερη εντολή mcc (MATLAB to C/C++ Compiler) όπως φανερώνει
και το όνομα της μετατρέπει τον κώδικα της MATLAB σε C/C++ κώδικα και
μέσω του εξωτερικού compiler, που επιλέξαμε στην εντολή mbuild, μετατρέπει τον
κώδικα C/C++ σε stand-alone εφαρμογή.
Η σύνταξη της εντολής mcc είναι η ακόλουθη :
Κεφάλαιο 3 LIQUID 142
mcc –m ΒΑΣΙΚΟ_ΑΡΧΕΙΟ.m ΠΡΟΣΘΕΤΟ_ΑΡΧΕΙΟ1.m ΠΡΟΣΘΕΤΟ_ΑΡΧΕΙΟ2.m …
Για το compilation του LIQUID κάνουμε χρήση της παρακάτω εντολής mcc –m liquid.m LIQUIDstep2.m LIQUIDstep3.m LIQUIDstep4.m
LIQUIDstep5.m LIQUIDmenu.m
Η παραπάνω εντολή δημιουργεί τα αρχεία liquid.exe και liquid.ctf
(corresponding CTF file) από τα αρχεία liquid.m, LIQUIDstep2.m,
LIQUIDstep3.m, LIQUIDstep4.m, LIQUIDstep5.m και LIQUIDmenu.m.
Το αρχείο ctf είναι απαραίτητο για την εκτέλεση του liquid.exe.
Για την εκτέλεση των δύο παραπάνω αρχείων (liquid.exe, liquid.ctf)
χρειάζονται και οι βιβλιοθήκες (dll files) γραφικών και μαθηματικών συναρτήσεων
της MATLAB. Οι βιβλιοθήκες αυτές βρίσκονται συγκεντρωμένες στο αρχείο
MCRinstaller.exe (MATLAB Component Runtime Installer). Το αρχείο αυτό
βρίσκεται στον φάκελο $MATLAB\toolbox\compiler\deploy\win32, όπου
$MATLAB είναι ο φάκελος στον οποίο έχει εγκατασταθεί η MATLAB (π.χ.
C:\MATLAB7) ή στο φάκελο MCRinstaller του cd-rom που συνοδεύει την εργασία.
Η εγκατάσταση του MCRinstaller περιγράφεται στα παράκατω εικόνες :
Εικόνα 3.2.52– Αρχικό interface εγκατάστασης του MATLAB Component Runtime
Κεφάλαιο 3 LIQUID 143
Εικόνα 3.2.53– Δεύτερο βήμα της εγκατάστασης του MATLAB Component Runtime
Εικόνα 3.2.54– Επιλογή για τη θέση (φάκελο) στην οποία θα εγκαταστήσουμε το MATLAB
Component Runtime
Κεφάλαιο 3 LIQUID 144
Εικόνα 3.2.55– Τελευταίο βήμα πριν τη έναρξη αντιγραφής των αρχείων
Εικόνα 3.2.56– Πρόοδος εγκατάστασης του MATLAB Component Runtime
Κεφάλαιο 3 LIQUID 145
Εικόνα 3.2.57– Τέλος εγκατάστασης του MATLAB Component Runtime
Μετά την εγκατάσταση του MATLAB Component Runtime μπορούμε να
εκτελέσουμε το αρχείο liquid.exe σε ένα υπολογιστή που δεν έχει εγκαταστημένη τη
MATLAB. Μπορούμε δηλαδή με τα αρχεία liquid.exe και liquid.ctf, μαζί με τα
αρχεία του που περιγράφτηκαν στις παραγράφους 3.2.4 και 3.2.5 και τα αρχεία του
SWBACROS, να χρησιμοποιήσουμε το LIQUID σε οποιοδήποτε υπολογιστή
επιθυμούμε. Τέλος το MATLAB Component Runtime χρειάζεται να εγκατασταθεί
μόνο μία φορά στο υπολογιστή που επιθυμούμε να χρησιμοποιήσουμε το LIQUID.
Για περισσότερες πληροφορίες για τις παραπάνω εντολές της MATLAB ο
αναγνώστης παραπέμπεται στα Matlab Reference Book: Function Reference
Volume 2 F-O και Matlab Compiler : User’s Guide.
Βιβλιογραφία 146
Βιβλιογραφία
Al-Khafaf, S., P. J. Wierenga, amd B.C. Williams, 1978, ''Evaporative Flux
from Irrigated cotton as related to leaf area index, soil water and evaporative
demand'', Agronomy Journal, 70, pp. 912-917
Antonopoulos, V., 1994, ''Simulation of Water and Nitrogen Dynamics in
Soils During Wastewater Applications by Using a Finite-Element Model'', Water
Res. Manag. ,7 pp 237-251
Antonopoulos, V., 1994, ''Simulation of Water and Nitrogen Dynamics in a
Grassland Irrigated with Wastewater'', in G. Tsakiris and M.A. Santos (ed.),
Advances in Water Resources Technology and Management, A.A. Balkema,
Rotterdam, Brookfiled, pp 263-268
Antonopoulos, V., 1997, ''Simulation of soil Moisture Dynamics on
Irrigated Cotton in Semi-Arid Climates'', Agric. Water Manag., 34, pp 233-246
Babajimopoulos, C., 1991, ''A Douglas-Jones Predictor-Corrector Program
in Simulating One-Dimensional unsaturated flow in soil'', 29,2, pp. 271-286
Babajimopoulos, C., 1996, ''SWBACROS : Simulation of the water balance
of a cropped soil'', Department of Hydraulics, Soil Science and Agricultural
Engineering, Aristotle University of Thessaloniki, Greece
Babajimopoulos, C., 2000, ''Revisiting the Douglas-Jones method for
modelling unsaturated flow in a cultivated soil'' Environmental Modeling &
Software, Elsevier
Babajimopoulos, C., A. Budina, D. Kalfountzos, 1995, ''SWBACROS : A
model for estimation of the water balance of a cropped soil'', Environ. Soft. 10(3),
pp 211-220
Babajimopoulos, C., S. Kavalieratou, 2004, ''Ground water management by
mathematical models'', 2nd International Conference on Information Systems &
Innovative Technologies in agriculture, food and environment, HAICTA 2004,
Thessaloniki, Greece
Βιβλιογραφία 147
Babajimopoulos, C., A. Panoras, I. Mavroudis, and G. Bilas, 1996, ''The
computation of the water balances and the modelling of the irrigation schedule of
a cotton crop with model SWBACROS'', Hydraulic Engineering Software,
Hydrosoft 96, (ed.) W.R. Blain, Computational Mechanics Publications, pp 183-
192
Babajimopoulos, C., A. Panoras, 2004, ''Estimation of the water balance of
cultivated soils by mathematical models'', 2nd International Conference on
Information Systems & Innovative Technologies in agriculture, food and
environment, HAICTA 2004, Thessaloniki, Greece
Belmans, C., J.C. Wesseling, and R.A. Feddes, 1983, ''Simulation Model of
the Water Balance of a Cropped Soil : SWATRE'', Journal of Hydrology, 63, pp
271-286
Black, T.A., W.R. Gardner, and G.W. Thurtell, 1969, ''The prediction of
Evaporation, Drainage and Soil Water Storage for a Bare Soil'', Soil. Sci. Soc.
Amer. Proc., 33, pp 655-660
Beadford, S. and J. Letey, 1992, ''Simulated Effects of Water Table and
Irrigation Scheduling as Factors in Cotton Production'', Irrigation Science, 13, pp
101-107
Bressler, E. and H. Dagan, 1988, ''Variability of Yield of an Irrigated Crop
and Its Causes 1.Statement of the problem and Methodology'', Water Res. Resear.,
24, 3, pp 381-387
Bressler, E. and H. Dagan, 1988, ''Variability of Yield of an Irrigated Crop
and Its Causes 2.Input Data and Illustration of Results'', Water Res. Resear., 24, 3,
pp 389-394
Bressler, E. and H. Dagan, 1988, ''Variability of Yield of an Irrigated Crop
and Its Causes 3.Numerical Simulation and Field Results'', Water Res. Resear., 24,
3, pp 395-401
Brinson, N. and A. Perrier, 1991, ''A Semiempirical Model of Bare Soil
Evaporation for Crop Simulation Modes'', Water Res. Resear., 27, 5, pp 719-727
Βιβλιογραφία 148
Bruch, J.C., and G. Zyvoloski, 1973, ''Solution of Equation for Vertical
Unsaturated Flow'', Soil Sci., 116, pp 417-422
Marchand, P., O.T. Holland, 2003, ''Graphics and GUIs with MATLAB :
Third Edition'', Chapmand & Hall/CRC
Clemente, R.C., R. De Jong, H. N. Hayhoe, W. D. Reynolds, and M. Hares,
1994, ''Testing and Computation of the Three Unsaturated Soil Water Flow
Models'', Agric. Water Manag., 25, pp 135-152
Cowan, I. R., 1965, ''Transport of Water in the Soil-Plant-Atmosphere
System'', J. Appl. Ecol., 2, pp 221-239
De Jong, R. and D.R. Cameron, 1979, ''Computer Simulation Model for
Predicting Soil Water Content Profiles'', Soil Sci., 128, pp 41-48
De Jong, R., and P. Kabat, 1990, ''Modelling Water Balance and Grass
Production'', Soil Sci. Soc. Am. J., 54, pp 1725-1732
Dinar, A., K.C. Knapp and J.D. Rhoades, 1986, ''Production Functions for
Cotton With Dated Irrigation Quantities and Qualities'', Water Res. Resear., 22,
11, pp 1519-1525
Douglas J.J., and B.F. Jones, 1963, ''One Predictor-Corrector Method for
Non Linear Parabolic Differential Equations'', J. SIAM, pp 195-204
Feddes, R.A., E. Bresler, and S.P. Neuman, 1974 ''Field Test of a Modified
Numerical Model for Uptake by Root System'', Water Resour. Res., 10, No 6, pp
1199-1206
Feddes, R.A., P.J. Kowalic and H. Zaradny, 1978, ''Simulation of field water
use and crop yield'', PUDOC, Wageningen, Simulation Monographs, The
Netherlands pp. 189
Feddes, R.A., J.G. Wesseling and R. Wiebing, 1984, ''Simulation of
transpiration and yield of potatoes with the SWACRO-Model'' 9th Triennial
Conference of the European Association of Potato Research (EAPR), Interlaken,
Switzerland
Βιβλιογραφία 149
Feddes, R.A., 1987, ''Simulating Water Management and Crop Production
with the SWACRO-Model'', Proc. 3rd International Workshop on Land Drainage,
Columbus, Ohio
Feddes, R.A., M. De Graaf, J. Bouma, and C.D. Van Loon, 1998,
''Simulation of Water Use and Production of Potatoes as Affected by Soil
Compaction'', Potato Res., 31, pp 225-239
Feddes, R.A., P. Kabat, P.J.T. Van Bakel, J.J.B. Bronswijk and J.
Halbertsma, 1998, ''Modelling soil water dynamics in the unsaturated zone-State of
the Art'' Journal of Hydrology, 100, pp. 69-111
Ghali, G.A., and Z.J. Svehlik, 1988, ''The Influence of Sub-Soil on the
Moisture Regime in Irrigated Fields'', Agric. Water Mang., 14, pp 307-315
Govildaraju, R.S., and Kavvas, M.L., 1993, ''Development of an
Approximate Model for Unsaturated Flow with Root Water Uptake under
Rectangular Water Content Profiles Assumption'', Journal of Hydrology, 146, pp
321-339
Haverkamp, R., M. Vauclin, J. Touma, P.J. Wirenga, and G. Vachaud, 1977,
''A Comparison of Numerical Simulation Model for One-Dimension Infiltration'',
Soil Sci. Soc. Am. J., 41, pp 285-294
Higuchi, M., 1984, ''Numerical Simulation of Soil-Water Flow During
Wetting in a Nonhomgeous Soil'', Journal of Hydrology, 74, pp 323-334
Hoogland J.C., R.A. Feddes and C. Belmans, 1981, ''Root water uptake
model depending on soil water pressurehead and maximum extraction rate'', Acta
Horticulture, 119, pp. 123-136
Hopmans, J.W., and E. Guttierez-Rave, 1988, ''Calibration of Root Water
Uptake Model in Spatially Variable Soils'', Journal of Hydrology, 103, pp 53-65
Hopmans, J.W., and J.N.M. Stricker, 1989, ''Stochastic Analysis of Soil
Water Regime in a Watershed'', Journal of Hydrology, 105, pp 57-84
Hunt, B.R., R.L. Lipsman, J.M. Rosenberg, K.R. Coombes, J.E. Osborn,
G.J. Stuck, 2001, ''A guide to MATLAB for beginners and experienced users'',
Cambridge University Press
Βιβλιογραφία 150
Huyakorn, P.S., S.D. Thomas, and B.M. Thomson, 1984, ''Techniques for
Making Finite Element Competitive in Modelling Flow in Variably Saturated
Porous Media'', Water Resour. Res., 20, pp 1099-1115
Kaluarachi, J.J., and J.C. Parker, 1987, ''Finite Element Analysis of Water
Flow in Variably Saturated Soil'', Journal of Hydrology, 90, pp 269-291
Khaleel, R., and T.C. Yeh, 1985, ''A Galerkin Finite-Element Program for
Simulating Unsaturated Flow in Porous Media'', Ground Water, 23, 1, pp 90-96
Letey, J., and A. Dinar, 1986, ''Simulated Crop-Water Functions for Several
Crop when Irrigated with Saline Water'', Higardia, 54, 1
Mahey, R.K., J. Feyen, and G. Wyseure, 1984, ''Numerical Analysis of
Irrigation Treatments of Barley with Respect to Drainage Losses and Crop
Response'', Trans. ASAE, 27, pp 1805-1810 and 1816
Marino, M.A., and J.C. Tracy, 1988, ''Flow of Water Through Root-soil
Enviroment'', Journal of Irrig. And Drain. Eng., 114, 4, pp 59-64
Mathworks, 2005, ''MATLAB & Simulink : Installation Guide for
Windows''
Mathworks, 2005, ''MATLAB Compiler : User Guide’s (version 4)''
Mathworks, 2005, ''MATLAB Reference Book : Creating Graphical User
Interfaces (version 7), Desktop Tools and Development Environment (version 7),
External Interfaces Reference (version 7), External Interfaces (version 7),
Function Reference Volume 1 A-E (version 7), Function Reference Volume 2 F-
O (version 7), Function Reference Volume 3 P-Z (version 7), Getting started with
MATLAB (version 7), MAT-file Format (version 7), Mathematics (version 7),
Programming Tips (version 7), Programming (version 7), Using MATLAB
Graphics (version 7), Release Notes''
Molz, F.J., and I. Remso, 1970, ''Extraction Term Models of Soil Moisture
Use by Transpiring Plants'', Water Resourc. Res., 6(5), pp 1346-1356
Morgan, T.H., A.W. Biere, and E.T. Kamenasu, 1980, ''A Dynamin Model
of Corn Yield Response to Water'', Water Res. Resear., 16, 1, pp 59-64
Βιβλιογραφία 151
Nerpin, S.W., B.N. Sanojan, and A.A. Arakeljan, 1976, ''Methods of
Estimation of Water Extraction by Roots of Agricultural Plants for Modelling of
Water Transport in the Field'', VASCHNIL, 9, pp 40-42
Neuman, S.P., 1973, ''Saturated-Unsaturated Seepage by Finite Elements'',
Journal of Hydrology Div. Proc., ASCE, 99, pp 2233-2250
Nimah, M.N., and R.J. Hanks, 1973a, ''Model for Estimation Soil Water,
Plant and Atmospheric Interrelations : I. Description and Sensitivity'', Soil Sci.
Soc. Am. Proc., 37, pp 522-527
Nimah, M.N., and R.J. Hanks, 1973b, ''Model for Estimation Soil Water,
Plant and Atmospheric Interrelations : II. Field Test of a Model'', Soil Sci. Soc.
Am. Proc., 37, pp 528-532
Novak, V., 1987, ''Estimation of Soil-water Extraction Paterns by Roots'',
Agric. Water Manag., 12(3), pp 271-278
Prasad, R., 1988, ''A Linear Root Water Uptake Model'', Journal of Hudrol.,
99, pp 297-306
Rasiah, V., G.C. Carison and R.A. Kohl, 1992, ''Assessment of Functions
and Parameter Estimation Methods in Root Water Uptake Simulation'', Soil Sci.
Sco. Am. J., 56, pp 1256-1271
Ritchie, J.T., 1972, ''Model for Predicting Evaporation from a Row Crop
with Incomplete cover'', Water Resourc., 85, pp 1204-1213
Rowse, H.R., D.A. Stone, and A. Gerwitz, 1978, ''Simulation of Water
Distribution in Soil, II. The Model for Cropped Soil and its Comparison with
Experiment'', Plant Soil, 49, pp 533-550
Singh, G., D.M. Brown, and A.G. Barr, 1991, ''Modeling Soil Water Status
for Irrigation Scheduling in Potatoes I. Description and Sensitivity Analysis'',
Agric. Water Manag., 23, pp 329-341
Stockle, C., and G.S. Campbell, 1989, ''Simulation of Crop Response to
Water and Nitrogen : An example using Spring Wheat'', Trans. of the ASAE, 32,
1, pp 66-74
Βιβλιογραφία 152
Terzidis, G. and Babajimopoulos C., 1987, ''Simulation Model of Regional
Groundwater Management (A Case Study of Pieria Aquifer, Greece) '', Proc. of a
Symposium in the Community Programme for Co-ordination of Agricultural
Research, Louvain, Published by the Commision of the European Communities
Tzimopoulos, C., 1978, ''Finite Elements Solution of unsaturated Porous
Media Flow'', Proc. of 2nd Intern. Conf. of Finite Elements in Water Resources,
London, Pentech Press, pp 1.37-1.49
Van Genuchten, M.T., 1978, ''Calculating the unsaturated hydraulic
conductivity with a new, closed-form analytical model'', Research Report 78-WR-
08, Water resourc. Program, Dep. Of Civil Engin., Princeton Univ., Princeton N.
J. pp. 68
Van Keulen, H., 1975, ''Simulation of Water Use and Herbage Growth in
Arid Regions'', Simulation Monograph, Pudoc, Wageningen, pp 176
Van Wijk, A.L.M. and R.A. Feddes, 1982, ''A Model Approach to the
Evaluation of Drainage Effects'', In ''Land Drainage'' (ed. M.J. Gardiner), A
Seminar in the EC Programme of Co-ordination of Research on Land Use and
Rural Resources, Cambridge, UK, July 1981, Balkema, Rotterdam, pp 131-149
Verecken, H., M. Vanclooster and J. Diels, 1991, ''Simulating Water and
Nitrogen Behaviour in Soils Cropped With Winter Wheat'', Fertilizer Research, 27,
pp 233-243
Wagenet, R.J. and Hutson, J.L., 1989, ''LEACHM: Leaching Estimation and
Chemistry Model. Version 2, Center for Enviromental Research, Cornell
University, Ithaca, and New York
Wallach, R., 1990, ''Soilwater Distribution in a Nonuniformly Irrigated Field
with Root Extraction'', Journal of Hydrology, 119, pp 137-150
Warrick, A.W. and W.R. Gardner, 1983, ''Crop Yield as Affected by Spatial
Variations of Soil and Irrgation'', Water Resources Research, 19, 1, pp 181-186
Wasseling, J.G., and B.J. Van der Broek, 1987, ''Prediction of Irrigation
Scheduling with Numerical Model SWATRE'', Proceeding symp., Agrohydrology,
Sept. 29-Oct. 1, IAC, Wageningen
Βιβλιογραφία 153
Wasseling, J.G., P. Kabat, B.J. Van der Broek, 1989, ''Simulation Model of
the Water Balance of a Cropped Soil with Different Types of Boundary
Conditions Including the Possibility of Drainage and Irrigation and the
Calculation of Crop Yield. Instructions for input to SWACROP'' Winand Staring
Centre, Wageningen, The Netherlands
Whisler, F.D., A. Klute, and R.J. Millington, 1968, ''Analysis of Steady State
Evapotranspiration from Soil Column'', Soil Sci. Soc. Am. Proc., 32, pp 167-174
Wyseure, G.C.L., K. Sanmuganathan, and J.R. O’ Callaghan, 1994, ''Use of
Simulation for Combining Rainfed and Irrigated Sugarcane Production in the Dry
Zone of Sri-Lanca'', Computers and Electronics in Agriculture, 11, pp 323-335
Yang, S.J., and E. De Jong, 1971, ''Effect of Soil Water Potential and Bulk
Density on Water Uptake Patterns and Resistance to Flow of Water in Wheat
Plants'', Can. J. Soil Sci., 51, pp 211-220
Zhang, J., R.L. Elliot, 1996, ''Two-Dimensional Simulation of Soil Water
Movement and Peanut Water Uptake Under Field Conditions'', Transac. of
ASAE, 39(2), pp 497-504
Αντωνόπουλος, Β., 1988, ''Επίλυση Προβλημάτων Κίνησης του Εδαφικού
Νερού και Διαλυμένων Ουσιών με μεθόδους Πεπερασμένων στοιχείων'',
Διδακτορική Διατριβή, Τμήμα Γεωπονίας Α.Π.Θ.
Αντωνόπουλος, Β., 1998, ''WANISIM Μονοδιάστατο Μοντέλο
Προσομοίωσης της Δυναμικής του Νερού και του Αζώτου στο Έδαφος'',
Μονογραφία, Τμήμα Γεωπονίας, Α.Π.Θ., Θεσσαλονίκη
Αντωνόπουλος, Β., 2004, ''Υδρολογία της ακόρεστης ζώνης του εδάφους'',
Α.Π.Θ.
Γούκος Δ., 1999 ''Εφαρμογή του μοντέλου SWBACROS στη μελέτη του
υδατικού ισοζυγίου ενός αγρού ζαχαρότευτλων - Διερεύνηση των σχέσεων
πρόσληψης του νερού από τα φυτά'', Μεταπτυχιακή διατριβή, Τμήμα Γεωπονίας,
Α.Π.Θ.
Βιβλιογραφία 154
Καλφούντζος, Δ., 1994, ''Μαθηματική Προσομοίωσης της κίνησης της
εδαφικής υγρασίας σε καλλιεργούμενο έδαφος'', Μεταπτυχιακή διατριβή, Τμήμα
Γεωπονίας, Α.Π.Θ.
Κυριακίδης, Ι., Χ. Κωνσταντινίδης, 1998, ''Η χρήση μαθηματικών μοντέλων
στη μελέτη του υδατικού ισοζυγίου καλλιεργούμενων εδαφών - Γραφική απεικόνιση
των αποτελεσμάτων του μαθηματικού μοντέλου SWBACROS'', Πτυχιακή διατριβή
Μπαμπατζιμόπουλος, Χ., 1999, ''Αριθμητική ανάλυση'', Εκδόσεις Γιαχούδη -
Γιαπούλη, Α.Π.Θ.
Μπαμπατζιμόπουλος, X., 2000, ''Η γλώσσα προγραμματισμού FORTRAN
90/95 εφαρμογές σε περιβάλλον VISUAL FORTRAN'', Εκδόσεις Γιαχούδη –
Γιαπούλη, Α.Π.Θ.
Μπαμπατζιμόπουλος, Χ., 2000, ''Εφαρμογή της πληροφορικής στη μελέτη
του υδατικού ισοζυγίου του εδάφους ενός αγρού ζαχαρότευτλων'', Αριστοτέλειο
Πανεπιστήμιο Θεσσαλονίκης, Ελληνική Βιομηχανία Ζάχαρης, Τελική έκθεση
Μπαμπατζιμόπουλος, X., 2002, ''Αριθμητικές μέθοδοι επίλυσης μερικών
διαφορικών εξισώσεων'', Α.Π.Θ.
Μπαμπατζιμόπουλος, Χ., Α. Πανώρας, Ι. Μαυρουδής, Γ. Μπίλας, Ν.
Παπαγιαννακόπουλος, 1995, ''Προγραμματισμός των αρδεύσεων με χρήση
μαθηματικών μοντέλων'', Υπουργείο Βιομηχανίας, Ενέργειας και Τεχνολογίας, Γ.Γ.
Έρευνας και Τεχνολογίας, Διεύθυνση Υποστήριξης Ερευνητικών Προγραμμάτων,
91ΕΔ457, Τελική έκθεση
Μπαμπατζιμόπουλος, Χ., Α. Πανώρας, Δ. Γούκος, Ν. Μασλάρης, 2001,
''Εφαρμογή του μοντέλου SWBACROS στη μελέτη του υδατικού ισοζυγίου του
εδάφους ενός αγρού ζαχαρότευτλεων'' Πρακτικά 8ου Πανελληνίου Συνεδρίου της
Ελληνιής Υδροτεχνικής ένωσης σελ 469-475
Μπαμπατζιμόπουλος, Χ., Δ. Γούκος, 2001, ''Διερεύνηση των σχέσεων
πρόσληψης νερού από το ριζικό σύστημα σε μοντέλα υπολογισμού του υδατικού
ισοζυγίου καλλιεργούμενων εδαφών'' Πρακτικά 8ου Πανελληνίου Συνεδρίου της
Ελληνικής Υδροτεχνικής ένωσης σελ 459-467
Βιβλιογραφία 155
Μπίλας, Γ., 1995, ''Εφαρμογή του μοντέλου SWBACROS στην Πρόβλεψη
της Παραγωγής και στον Προγραμματισμό της Άρδευσης του Βαμβακιού'',
Μεταπτυχιακή Διατριβή, Ειδίκευση Εγγείων Βελτιώσεων, Τμήμα Γεωπονίας, Α.Π.Θ.
Πανώρας, Α.Γ., και Ι.Γ. Μαυρουδής, 1993, ''Κατανομή της Μέσης
Ημερήσιας Εξατμισοδιαπνοής Καλλιέργειας Αναφοράς στη Λεκάνη Απορροής του
Ποταμού Λουδία'', Υδροτεχνικά, Ε.Υ.Ε.
Πανώρας, Α.Γ., και Ι.Γ. Μαυρουδής, 1994, ''Σχέση Ολικής Ηλιοφάνειας και
Προσπίπτουσας Ηλιακής Ακτινοβολίας στην Πεδιάδα Θεσσαλονίκης'', Υδροτεχνικά,
Ε.Υ.Ε., 4(1)
Πανώρας, Α.Γ., και Ι.Γ. Μαυρουδής, 1995, ''Μέσες ανάγκες σε νερό των
εαρινών καλλιεργειών της λεκάνης απορροής του ποταμού Λουδία'', Γεωτεχνικά
Επιστημονικά Θέματα
Παπαζαφειρίου, Ζ., 1984, ''Βασικές Αρχές και Πρακτική των Αρδεύσεων'',
Α.Π.Θ., Θεσσαλονίκη
Παπαρρίζος, Κ., 2004, ''MATLAB 6.5'', εκδόσεις Ζυγός, Θεσσαλονίκη
Τερζίδης, Γ.Α., και Παπαζαφειρίου, Γ.Ζ., 1997, ''Γεωργική Υδραυλική'',
εκδόσεις Ζήτη, Θεσσαλονίκη
Τερζίδης, Γ.Α., 1985, ''Μαθήματα Υδραυλικής 1. Γενική Υδραυλική'',
εκδόσεις Ζήτη, Θεσσαλονίκη
Τερζίδης, Γ.Α., 1997, ''Εφαρμοσμένη Υδραυλική'', εκδόσεις Ζήτη,
Θεσσαλονίκη
Παράρτημα 156
Παράρτημα Ι
Παράδειγμα σύνδεσης MATLAB και FORTRAN
Ένα απλό παράδειγμα που περιγράφει αυτή την αμφίδρομη σχέση μεταξύ
MATLAB και FORTRAN και βοηθάει στην κατανόηση της λειτουργίας του
LIQUID είναι το παρακάτω. Το παράδειγμα αυτό εμφανίζει γραφικά το βάθος μιας
δεξαμενής συναρτήσει του χρόνου. Ο χρόνος εκκένωσης της δεξαμενής υπολογίζεται
με αριθμητική επίλυση (μέθοδος Euler) της εξίσωσης
οdhΕ μΕ 2ghdt
− =
Ο χρήστης μέσω της MATLAB (αρχείο DEKSAMENH.m) εισάγει τα
δεδομένα του προγράμματος (μ : συντελεστής παροχής, h : αρχικό βάθος σε m,
ΒΗΜΑ : χρονικό βήμα του προγράμματος (dt) σε sec). Τα δεδομένα αυτά
αποθηκεύονται σε ένα αρχείο (input.txt) τα οποία διαβάζει η Fortran (αρχείο
Euler.exe, από το αρχείο Euler.f90). Το αρχείο Euler.exe επιλύει την εξίσωση και
αποθηκεύει στο αρχείο αποτελεσμάτων (output.txt) το βάθος της δεξαμενής για
κάθε χρονικό βήμα. Η MATLAB διαβάζει τα δεδομένα αυτά και τα εμφανίζει
γραφικά.
Ο κώδικας της ΜΑΤLAB του αρχείου DEKSAMENH.m μαζί με τα
σχόλια (% σχόλια) για την ευκολότερη κατανόηση του είναι ο ακόλουθος :
% EKKENOSH DEKSAMENHS % ZHTAME APO TON XRHSTH NA DOSEI TIMH GIA TON SYNTELESTH PAROXHS % (M), TO ARXIKO BA8OS THS DEKSAMENHS (HARX) KAI TO XRONIKO BHMA % (BHMA) M=input('SYNTELESTHS PAROXHS : '); HARX=input('ARXIKO BA8OS (m) : '); BHMA=input('XRONIKO BHMA (sec) : '); % GRAFOYME STO ARXEIO input.txt MESO THS ENTOLHS fprintf TIS % METABLHTES M,HARX,BHMA ME SYGKEKRIMENO FORMAT fid=fopen('input.txt','w'); fprintf(fid,'%1.0f,%1.0f,%2.1f',M,HARX,BHMA);
Παράρτημα 157
fclose(fid); % EKTELOYME TO ARXEIO FORTRAN EULER.exe !EULER % AFOY EXEI OLOKLHROTHEI H EKTELESH TO EULER, EXEI DHMIOYRGHTHEI TO % ARXEIO output.txt KAI APO8HKEYEI TA DEDOMENA POY DIAVAZEI STIS % METABLHTES XRONOS KAI BATHOS [XRONOS BATHOS]=textread('output.txt','%f %f'); % OI PARAKATO ENTOLES EMFANIZOYN TO DEDOMENA MAS SE MIA GRAFIKH % PARASTASH. DINOYN ONOMA STON X KAI STON Y AKSONA (xlabel, ylabel), % DINOYN ONOMA STO YPOMNHMA (legend), DINOYN ONOMA STH GRAFIKH MAS % PARASTASH (title). H ENTOLH POY EMFANIZEI TA DEDOMENA MAS EINAI H plot(XRONOS,BATHOS,'r.-') hold on xlabel('XRONOS (sec)'); grid on ylabel('BATHOS DEKSAMENHS (m)'); title('EKKENOSH DEKSAMENHS') plot(XRONOS,BATHOS,'r.-'); legend('BATHOS DEKSAMENHS (m)'); hold off
Ο κώδικας της Fortran του αρχείου Euler.f90 είναι ο ακόλουθος. Στον
παρακάτω κώδικα η μεταβλητή H περιγράφεται από την εξίσωση o
Eμ 2ghE
− . Η
τιμή E/Eo (διατομής της οπής προς τη διατομή της δεξαμενής) παίρνεται ίση με
1/1000=0.001 στο παράδειγμα μας.
! H : BATHOS DEKSAMENHS (se M) ! M : SYNTELESTHS PAROXHS ! BHMA : DT. XRONIKO BHMA (se SEC) ! ANOIGEI TO ARXEIO input.txt OPEN(8,file='input.txt') ! DIABAZEI ME ELEFTHERO FORMAT TA M,H,BHMA READ(8,*) M,H,BHMA ! ANOIGEI TO ARXEIO output.txt OPEN(9,file='output.txt') ! ARXIKOS XRONOS T=0 T=0 ! GRAFEI TIS ARXIKES SYN8HKES STO ARXEIO output.txt WRITE(9,*) T,H ! ORIZEI TH METABLHTH MAS SYMFONA ME TON TYPO ! -Μ*(Εο/Ε)*(2gH)^(1/2)
Παράρτημα 158
! THN TIMH Eo/E (LOGOS DIATOMHS OPHS PROS DIATOMH EPIFANEIAS PAIRNETAI ! 1/1000=0.001 ! KAI TO g PAIRNETAI 9.81 100 DH=-M*0.001*((2*9.81)**0.5)*(H**0.5)
! TO EPOMENO IF clause YPARXEI GIA NA APOFYGOYME THN YPARXH ! ARNHTIKOY BATHOUS
IF(ABS(BHMA*DH)>H) THEN STOP END IF ! PROS8ESH STO BATHOS MAS TOY DH (EPEIDH TO DH EXEI TIMH ARNHTIKH OYSIASTIKA AFAIREITAI TO DH APO TO H) H=H+DH*BHMA ! PROS8ESH STO XRONO MAS TOY BHMA T=T+BHMA ! EGGRAFH STO ARXEIO TON T,H STO output.txt WRITE(9,*) T,H ! ELEGXOS GIA TO EAN TO BATHOS EINAI MEGALYTERO APO TO ELAXISTO ! BATHOS KAI AN NAI EPISTREFEI STHN ENTOLH 100 IF (H>0) GO TO 100 ! TELOS EPANALHPSHS KAI TELOS TOY PROGRAMMATOS STOP END Η εκτέλεση του αρχείου DEKSAMENH.m γίνεται με την πληκτρολόγηση
της παρακάτω εντολής στο prompt >> της MATLAB
>> DEKSAMENH
Εισάγοντας τα παρακάτω δεδομένα στην οθόνη μας εμφανίζεται η παρακάτω
εικόνα SYNTELESTHS PAROXHS : 1 ARXIKO BA8OS (m) : 6 XRONIKO BHMA (sec) : 5
Παράρτημα 159
Παράρτημα ΙΙ 160
Παράρτημα ΙΙ
Κώδικας των αρχείων του LIQUID (liquid.m, LIQUIDstep2.m, LIQUIDstep3.m, LIQUIDstep4.m, LIQUIDstep5.m και LIQUIDmenu.m) και τα αρχεία δεδομένων
Στις επόμενες σελίδες παρουσιάζεται εκτυπωμένος ο κώδικας του LIQUID
(όπως αυτός εκτυπώνεται από το περιβάλλον της MATLAB) μαζί με τα σχόλια στα
ελληνικά για την ευκολότερη κατανόηση των εντολών. Αμέσως μετά παρουσιάζονται
τα αρχεία δεδομένων που χρησιμοποιήθηκαν στις γραφικές παραστάσεις της
εργασίας αυτής.
C:\LIQUID0.7\LIQUID (m files)\liquid.m 1 of 3
function varargout = liquid(varargin) % LIQUID M-file for liquid.fig % LIQUID, by itself, creates a new LIQUID or raises the existing % singleton*. % % H = LIQUID returns the handle to a new LIQUID or the handle to % the existing singleton*. % % LIQUID('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUID.M with the given input arguments. % % LIQUID('Property','Value',...) creates a new LIQUID or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before liquid_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to liquid_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help liquid % Last Modified by GUIDE v2.5 22-Apr-2005 21:25:03 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @liquid_OpeningFcn, ... 'gui_OutputFcn', @liquid_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % Το liquid έχει τη δομή ενός wizard. Είναι χωρισμένο σε βήματα (steps) τα % οποία είναι τα ακολουθά : % 1ο βήμα αρχείο liquid.m το οποίο περιέχει γενικές πληροφορίες για το % πρόγραμμα % 2ο βήμα αρχείο LIQUIDstep2.m . Βήμα κατά το οποίο εισάγονται οι βασικές % πληροφορίες για την εκτέλεση του SWBACROS (για το αρχείο εισαγωγής % δεδομένων GNDATA). % 3o βήμα αρχειο LIQUIDstep3.m . Βήμα στο οποίο εισάγουμε το αρχικό και το % τελικό σημείο κάθε κόμβου (First Nodal Point , Last Nodal Point) καθώς % και τις τιμές Κ(s) saturated hydraulic conductivity (κορεσμένη υδραυλική
C:\LIQUID0.7\LIQUID (m files)\liquid.m 2 of 3
% αγωγιμότητα) , θs υγρασία κορεσμού , θr υπολειμματική υγρασία , % συντελεστές Α,Ν για την εξίσωση του Van Genuchten , για κάθε ορίζοντα. % 4ο βήμα αρχείο LIQUIDstep4.m . Στο βήμα αυτό εισάγουμε το μέγεθος κάθε % κόμβου καθώς και την αρχική τιμή της αρνητικής πίεσης για κάθε ορίζοντα. % 5ο και τελευταίο βήμα αρχείο LIQUIDmenu.m είναι το βασικό μενού του % προγράμματος το οποίο περιέχει τις διαθέσιμες γραφικές παραστάσεις. % Το αρχείο liquid.m εμφανίζει στην οθόνη μας το αρχικό interface. Εκτός % από τις γενικές πληροφορίες για τον προγραμματιστή , το έτος δημιουργιας % του , έχει τα εξής 3 κουμπία (buttons) : % About (αναλυτικότερες πληροφορίες για το πρόγραμμα και thanks to) % Next > Step 2 (μας μεταφέρει στο δεύτερο βήμα LIQUIDstep2) % Exit (έξοδος από το πρόγραμμα) % --- Executes just before liquid is made visible. function liquid_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to liquid (see VARARGIN) % Choose default command line output for liquid handles.output = hObject; % Μεταφέρει το παράθυρο μας πανω και αριστερά στην οθόνη movegui('northwest'); % Update handles structure guidata(hObject, handles); % UIWAIT makes liquid wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = liquid_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % --- Executes on button press in NEXTSTEP2. function NEXTSTEP2_Callback(hObject, eventdata, handles) % hObject handle to NEXTSTEP2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function NEXTSTEP2 μας πηγαινει στο επόμενο βήμα κλείνει το υπάρχον % παράθυρο liquid μέσω της εντολής closereq και καλεί το αρχείο LIQUDstep2 closereq; LIQUIDstep2;
C:\LIQUID0.7\LIQUID (m files)\liquid.m 3 of 3
% --- Executes on button press in EXITTOWINDOWS. function EXITTOWINDOWS_Callback(hObject, eventdata, handles) % hObject handle to EXITTOWINDOWS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function EXITTOWINDOWS κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη ένα % dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' closereq; case 'No' return end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 1 of 28
function varargout = LIQUIDstep2(varargin) % LIQUIDSTEP2 M-file for LIQUIDstep2.fig % LIQUIDSTEP2, by itself, creates a new LIQUIDSTEP2 or raises the existing % singleton*. % % H = LIQUIDSTEP2 returns the handle to a new LIQUIDSTEP2 or the handle to % the existing singleton*. % % LIQUIDSTEP2('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUIDSTEP2.M with the given input arguments. % % LIQUIDSTEP2('Property','Value',...) creates a new LIQUIDSTEP2 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LIQUIDstep2_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LIQUIDstep2_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LIQUIDstep2 % Last Modified by GUIDE v2.5 21-Mar-2005 22:13:55 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LIQUIDstep2_OpeningFcn, ... 'gui_OutputFcn', @LIQUIDstep2_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % Το LIQUIDstep2 είναι το βασικό interface του προγράμματος. Στο βήμα αυτο % εισάγουμε όλες τις απαραίτητες μεταβλητές του SWBACROS. Η φόρμα έχει 4 % κουμπιά : % < Back το οποίο μας πηγαίνει στο προηγούμενο βήμα , το % Next > Step 3 : μας πηγαίνει στο Step 3 , το % Exit : έξοδος από το liquid , καθώς και το % Load latest SWBACROS variables : γεμίζει τη φόρμα μας με τα δεδομένα της % τελευταίας εκτέλεσης του SWBACROS
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 2 of 28
% --- Executes just before LIQUIDstep2 is made visible. function LIQUIDstep2_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LIQUIDstep2 (see VARARGIN) % Choose default command line output for LIQUIDstep2 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes LIQUIDstep2 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = LIQUIDstep2_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % Μετακινεί το παράθυρο μας αριστερά και πάνω στην οθόνη movegui('northwest'); % Η εντολή global ... μεταβλητές ... κάνει όλες τις μεταβλητές που % εισάγουμε να μπορούν να χρησιμοποιηθούν από όλες τις function του % προγράμματος μας global IDIN IMIN IYIN IDLAST IMLAST IYLAST METHOD1 METHOD2 MAXITER JMAX DEPTH DTPAR1 DTPAR2 DT1 DT2 DTMIN DTMAX ZETA1 OPT1 OPT2 LAYER OUTPUTFILE1 OUTPUTFILE2 IBBC1 IBBC2 IBBC3 IRWUT MODUPT1 MODUPT2 PSI1 PSI2 PSI3 DaysForWaterContentProfiles ITBC1 ITBC2 ITBC3 UDFLUX SIGMA PETIND1 PETIND2 PETIND3 IPETC IAVER1 IAVER2 IRS1 IRS2 VRATIO EXCELEXPORT UNAVAILSW; % Μεταβλητές % Ολες οι μεταβλητές είναι double ακρίβειας εκτός των OUTPUTFILE1 και % OUTPUTFILE2 οι οποίες είναι char % IDIN : Initial day % IMIN : Initial month % IYIN : Initial year % IDLAST : Last day % IMLAST : Last month % IYLAST : Last year % METHOD1 : Douglas Jones predictor (numerical method) . Η μεταβλήτη % παίρνει την τιμή 1 όταν επιλέξει ο χρήστης την αριθμητική μέθοδο Douglas % Jones % METHOD2 : Implicit method (numerical method) . Η μεταβλήτη παίρνει την % τιμή την τιμή 1 όταν επιλέξει ο χρήστης την αριθμητική μέθοδο Implicit % Κάθε μία από τις μεταβλητές παίρνει την τιμή 0 (μηδέν) αν επιλεγεί η άλλη % αυτόματα (METHOD1=1 ==> METHOD2=0) % MAXITER : Maximum number of iterations % Η τιμή της MAXITER χρησιμοποιείται μόνον όταν έχουμε επιλέξει Implicit
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 3 of 28
% Method (δηλαδή METHOD2=1), αλλιώς το πρόγραμμα δίνει την τιμή 0 (μηδέν) % στο MAXITER % JMAX : maximum number of nodal points % DEPTH : Depth of the unsaturated zone from soil surface (m) % DTPAR1 : Constant time step. Η μεταβλητή παίρνει τη τιμή 1 όταν ο % χρήστης επιλέξει το Constant time step % DTPAR2 : Variable time step. Η μεταβλητή παίρνει τη τιμή 1 όταν ο % χρήστης επιλέξει το Variable time step % Αντίστοιχα όταν DTPAR2=1 ==> DTPAR1=0 και το ανάποδο % DT2 : Initial time step (min) για το Constant time step % DT1 : Initial time step (min) για το Variable time step % DTMIN : Minimum time step (min) για το Variable time step % DTMAX : Maximum time step (min) για το Variable time step % ZETA1 : Convergence parameter (min) για το Variable time step % Οταν ο χρήστης επιλέγει DTPAR1=1 (Constant time step) το πρόγραμμα δίνει % στις 3 τελευταίες μεταβλητές (DTMIN,DTMAX,ZETA1) την τιμή 0 (μηδέν) % OPT1 : Optimization run (Type of run). Παίρνει την τιμή 1 όταν ο χρήστης % επιλέξει Optimization run % OPT2 : Normal run (Type of run). Παίρνει την τιμή 1 όταν ο χρήστης % επιλέξει Normal run % Ομοια όπως και στις πάνω μεταβλητές όταν OPT1=1 ==> OPT2=0 % LAYER : Number of different soil layers % OUTPUTFILE1 : Water balance results file % OUTPUTFILE2 : Soil profile characteristics % Bottom Boundary Condition % IBBC1 : Constant head για το Bottom boundary condition. Παίρνει την τιμή % 1 όταν ο χρήστης επιλέξει Constant head % IBBC2 : Constant head για το Bottom boundary condition. Παίρνει την τιμή % 1 όταν ο χρήστης επιλέξει Free drainage % IBBC3 : Constant head για το Bottom boundary condition. Παίρνει την τιμή % 1 όταν ο χρήστης επιλέξει Zero flux % Οταν επιλέξει ο χρήστης π.χ. Constant head δηλαδή IBBC1=1 τότε οι άλλες % δύο μεταβλητές ΙΒΒC2 , IBBC3 παίρνουν τη τιμή 0 (μηδέν) % IRWUT : Activate / Deactivate the root water uptake term. Παίρνει τις % τιμές 1 και 0 αντίστοιχα για activated και deactivated water uptake term % Οι παρακάτω τιμές έχουν σημασία μόνον όταν ο χρήστης επιλέξει IRWUT=1 % δηλαδή όταν έχουμε Activated water uptake term στην αντίθετη περίπτωση οι % 5 παρακάτω μεταβλητές παίρνουν την τιμή 0 (μηδέν) % MODUPT1 : Smax (Maximum water extraction by roots) is constant with depth % (feddes' model).Παίρνει την τιμή 1 όταν ο χρήστης επιλέξει την επιλογή is % constant with depth : feddes' model % MODUPT2 : Smax (Maximum water extraction by roots) varies with depth % (Prasads' model).Παίρνει την τιμή 1 όταν ο χρήστης επιλέξει την επιλογή % varies with depth : prasads' model % Εχουμε και πάλι MODUPT1=1 ==> MODUPT2=0 % PSI1 : Aenarobiosis point (m) % PSI2 : Limiting point (m) % PSI3 : Wilting point (m) % DaysForWaterContentProfiles : Η μεταβλητή αυτή μαζί με την EXCELEXPORT % είναι οι μόνες που χρησιμοποιούνται αποκλειστικά από το LIQUID. Η % μεταβλητή αυτή περιέχει τον αριθμό των ημερών για τις οποίες ο χρήστης % θέλει να εμφανίσει το προφίλ της εδαφικής υγρασίσας (για τις μέρες αυτές % ο χρήστης θα ερωτηθεί στο LIQUIDStep5) % Top Boundary Condition % ITBC1 : Known head για το Top Boundary Condition.Παίρνει την τιμή 1 όταν % ο χρήστης επιλέξει Known head % ITBC2 : Known flux για το Top Boundary Condition.Παίρνει την τιμή 1 όταν % ο χρήστης επιλέξει Known flux
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 4 of 28
% ITBC3 : User-defined flux για το Top Boundary Condition. Παίρνει την τιμή % 1 όταν ο χρήστης επιλέξει User-defined flux % Οταν επιλέξει ο χρήστης π.χ. Known flux δηλαδή ITBC2=1 τότε οι άλλες % δύο μεταβλητές ΙTBC1 , ITBC3 παίρνουν τη τιμή 0 (μηδέν) % UDFLUX : User-defined flux (m/day). Η μεταβλητή έχει σημασία για το % πρόγραμμα όταν ITBC3=1. Στις αντίθετες περιπτώσεις παίρνει την τιμή 0 % (μηδέν). Αν ΙΤBC3=1 ==> ITBC1=ITBC2=0 % Οι επόμενες 10 μεταβλητές διαβάζονται από το πρόγραμμα όταν ITBC2=1 % (δηλαδή όταν ο χρήστης επιλέξει Known flux) σε αντίθετη περίπτωση (ITBC3 % διάφορο του 1) οι μεταβλητές SIGMA,PETIND1,PETIND2,PETIND3,IPETC,IAVER, % IAVER2,IRS1,IRS2,VRATIO παίρνουν την τιμη 0 (μηδέν) % SIGMA : Coefficient in actual evapotranspiration function % Potential evapotranspiration computation % PETIND1 : Modified Penman method . Παίρνει την τιμή 1 όταν ο χρήστης % επιλέξει την τροποποιημένη μέθοδο του Penman για υπολογισμό της % εξατμισοδιαπνοής % PETIND3 : Given in the input data (PNMETEO). Παίρνει την τιμή 1 όταν ο % χρήστης επιλέξει οτι η εξατμισοδιαπνοή θα δίνεται από ένα αρχείο % δεδομένων PNMETEO % PETIND2 : Penman-Montheith method. Η επιλογή αυτή είναι ίδια με την πρώτη % PETIND1 και δίνει τα ίδια αποτελέσματα με εκείνη. Το μοντέλο SWBACROS % δίνει τη δυνατότητα μόνο για χρήση της τροποποιημένης μεθόδου Penman. Η % επιλογή αυτή μπήκε για τη μελλοντική δυνατότητα του SWBACROS να % υπόλογιζει την εξατμισοδιαπνοή με τη μέθοδο των Penman-Montheith % Οταν επιλέξει ο χρήστης π.χ. Modified Penman method δηλαδή PEITND1=1 τότε % οι άλλες δύο μεταβλητές PETIND2, PETIND3 παίρνουν τη τιμή 0 (μηδέν) % Οι επόμενες 6 μεταβλητές έχουν σημασία μόνο όταν ο χρήστης έχει επιλέξει % την Modified Penman method (δηλαδή PETIND1=1 στην πάνω επιλογή) ειδάλλως % παίρνουν τη τιμή 0 (μηδέν) % IPETC : Printing parameter for various parameters used in % evapotranspirations' computation. Παίρνει τη τιμή 1 όταν ο χρήστης % επιλέξει να εκτυπώσει στο OUTPUTFILE1 τις παραμέτρους που % χρησιμοποιήθηκαν στον υπολογισμό της εξατμισοδιαπνοής , στην αντίθετη % περίπτωση παίρνει τη τιμή 0 (μηδέν) % IAVER1 : Potential evapotranspiration computation using daily data. Η % μεταβλητή αυτή παίρνει τη τιμή 1 όταν ο χρήστης την επιλέξει % IAVER2 : Potential evapotranspiration computation averaging the daily % climatological data over 10 days. Η μεταβλητή αυτή παίρνει τη τιμή 1 όταν % ο χρήστης την επιλέξει % Αν IAVER1=1 ==> IAVER2=0 και το αντίθετο % IRS1 : Solar radiation computation given in PNMETEO.Η μεταβλητή αυτή % παίρνει τη τιμή 1 όταν ο χρήστης την επιλέξει % IRS2 : Solar radiation computation computed internally. Η μεταβλητή αυτή % παίρνει τη τιμή 1 όταν ο χρήστης την επιλέξει % VRATIO : Ratio of wind speed during day and night % UNAVAILSW : Unavailable soil water.Μη διαθέσιμο εδαφικό νερό % EXCELEXPORT : Η μεταβλητή αυτή χρησιμοποείται αποκλειστικά από το liquid. % Παίρνει τη τιμή 1 εάν ο χρήστης επιθυμεί την εξαγωγή των αποτελεσμάτων % του SWBACROS σε excel αρχείο , σε αντίθετη περίπτωση παίρνει τη τιμη 0 % Για κάθε μεταβλητή που υπάρχει πιό πάνω υπάρχουν 2 function. Η Callback % που μας επιστρέφει τη τιμή που έχει επιλέξει ο χρήστης και τη CreateFcn % η οποία περιέχει ρυθμίσεις για το πλαίσιο εισαγωγής στη φόρμα μας % (χρώματος , μεγέθους γραμματοσειράς) % Το αρχείο LIQUIDvars.mat περιέχει όλες τις μεταβλητές που χρησιμοποιεί το % Liquid.Με τη εντολή load φορτώνει όλες τις μεταβλητές του LIQUIDvars στη % μνήνη
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 5 of 28
load LIQUIDvars; % --- Executes on selection change in IDIN. function IDIN_Callback(hObject, eventdata, handles) % hObject handle to IDIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns IDIN contents as cell array % contentsget(hObject,'Value') returns selected item from IDIN % --- Executes during object creation, after setting all properties. function IDIN_CreateFcn(hObject, eventdata, handles) % hObject handle to IDIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in IMIN. function IMIN_Callback(hObject, eventdata, handles) % hObject handle to IMIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns IMIN contents as cell array % contentsget(hObject,'Value') returns selected item from IMIN % --- Executes during object creation, after setting all properties. function IMIN_CreateFcn(hObject, eventdata, handles) % hObject handle to IMIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 6 of 28
% --- Executes on selection change in IYIN. function IYIN_Callback(hObject, eventdata, handles) % hObject handle to IYIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns IYIN contents as cell array % contentsget(hObject,'Value') returns selected item from IYIN % --- Executes during object creation, after setting all properties. function IYIN_CreateFcn(hObject, eventdata, handles) % hObject handle to IYIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in IMLAST. function IMLAST_Callback(hObject, eventdata, handles) % hObject handle to IMLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns IMLAST contents as cell array % contentsget(hObject,'Value') returns selected item from IMLAST % --- Executes during object creation, after setting all properties. function IMLAST_CreateFcn(hObject, eventdata, handles) % hObject handle to IMLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in IYLAST. function IYLAST_Callback(hObject, eventdata, handles) % hObject handle to IYLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 7 of 28
% Hints: contents = get(hObject,'String') returns IYLAST contents as cell array % contentsget(hObject,'Value') returns selected item from IYLAST % --- Executes during object creation, after setting all properties. function IYLAST_CreateFcn(hObject, eventdata, handles) % hObject handle to IYLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in IDLAST. function IDLAST_Callback(hObject, eventdata, handles) % hObject handle to IDLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns IDLAST contents as cell array % contentsget(hObject,'Value') returns selected item from IDLAST % --- Executes during object creation, after setting all properties. function IDLAST_CreateFcn(hObject, eventdata, handles) % hObject handle to IDLAST (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function MAXITER_Callback(hObject, eventdata, handles) % hObject handle to MAXITER (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of MAXITER as text % str2double(get(hObject,'String')) returns contents of MAXITER as a double % --- Executes during object creation, after setting all properties. function MAXITER_CreateFcn(hObject, eventdata, handles) % hObject handle to MAXITER (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 8 of 28
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function JMAX_Callback(hObject, eventdata, handles) % hObject handle to JMAX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of JMAX as text % str2double(get(hObject,'String')) returns contents of JMAX as a double % --- Executes during object creation, after setting all properties. function JMAX_CreateFcn(hObject, eventdata, handles) % hObject handle to JMAX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function DEPTH_Callback(hObject, eventdata, handles) % hObject handle to DEPTH (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of DEPTH as text % str2double(get(hObject,'String')) returns contents of DEPTH as a double % --- Executes during object creation, after setting all properties. function DEPTH_CreateFcn(hObject, eventdata, handles) % hObject handle to DEPTH (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 9 of 28
function DT1_Callback(hObject, eventdata, handles) % hObject handle to DT1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of DT1 as text % str2double(get(hObject,'String')) returns contents of DT1 as a double % --- Executes during object creation, after setting all properties. function DT1_CreateFcn(hObject, eventdata, handles) % hObject handle to DT1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function DTMIN_Callback(hObject, eventdata, handles) % hObject handle to DTMIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of DTMIN as text % str2double(get(hObject,'String')) returns contents of DTMIN as a double % --- Executes during object creation, after setting all properties. function DTMIN_CreateFcn(hObject, eventdata, handles) % hObject handle to DTMIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function DTMAX_Callback(hObject, eventdata, handles) % hObject handle to DTMAX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of DTMAX as text
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 10 of 28
% str2double(get(hObject,'String')) returns contents of DTMAX as a double % --- Executes during object creation, after setting all properties. function DTMAX_CreateFcn(hObject, eventdata, handles) % hObject handle to DTMAX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function ZETA1_Callback(hObject, eventdata, handles) % hObject handle to ZETA1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of ZETA1 as text % str2double(get(hObject,'String')) returns contents of ZETA1 as a double % --- Executes during object creation, after setting all properties. function ZETA1_CreateFcn(hObject, eventdata, handles) % hObject handle to ZETA1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function OUTPUTFILE1_Callback(hObject, eventdata, handles) % hObject handle to OUTPUTFILE1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of OUTPUTFILE1 as text % str2double(get(hObject,'String')) returns contents of OUTPUTFILE1 as a double % --- Executes during object creation, after setting all properties. function OUTPUTFILE1_CreateFcn(hObject, eventdata, handles) % hObject handle to OUTPUTFILE1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 11 of 28
% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function OUTPUTFILE2_Callback(hObject, eventdata, handles) % hObject handle to OUTPUTFILE2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of OUTPUTFILE2 as text % str2double(get(hObject,'String')) returns contents of OUTPUTFILE2 as a double % --- Executes during object creation, after setting all properties. function OUTPUTFILE2_CreateFcn(hObject, eventdata, handles) % hObject handle to OUTPUTFILE2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function LAYER_Callback(hObject, eventdata, handles) % hObject handle to LAYER (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of LAYER as text % str2double(get(hObject,'String')) returns contents of LAYER as a double % --- Executes during object creation, after setting all properties. function LAYER_CreateFcn(hObject, eventdata, handles) % hObject handle to LAYER (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 12 of 28
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function UDFLUX_Callback(hObject, eventdata, handles) % hObject handle to UDFLUX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of UDFLUX as text % str2double(get(hObject,'String')) returns contents of UDFLUX as a double % --- Executes during object creation, after setting all properties. function UDFLUX_CreateFcn(hObject, eventdata, handles) % hObject handle to UDFLUX (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function SIGMA_Callback(hObject, eventdata, handles) % hObject handle to SIGMA (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of SIGMA as text % str2double(get(hObject,'String')) returns contents of SIGMA as a double % --- Executes during object creation, after setting all properties. function SIGMA_CreateFcn(hObject, eventdata, handles) % hObject handle to SIGMA (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in IPETC. function IPETC_Callback(hObject, eventdata, handles) % hObject handle to IPETC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 13 of 28
% handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of IPETC function VRATIO_Callback(hObject, eventdata, handles) % hObject handle to VRATIO (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of VRATIO as text % str2double(get(hObject,'String')) returns contents of VRATIO as a double % --- Executes during object creation, after setting all properties. function VRATIO_CreateFcn(hObject, eventdata, handles) % hObject handle to VRATIO (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in IRWUT. function IRWUT_Callback(hObject, eventdata, handles) % hObject handle to IRWUT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of IRWUT function PSI1_Callback(hObject, eventdata, handles) % hObject handle to PSI1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of PSI1 as text % str2double(get(hObject,'String')) returns contents of PSI1 as a double % --- Executes during object creation, after setting all properties. function PSI1_CreateFcn(hObject, eventdata, handles) % hObject handle to PSI1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 14 of 28
if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function PSI2_Callback(hObject, eventdata, handles) % hObject handle to PSI2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of PSI2 as text % str2double(get(hObject,'String')) returns contents of PSI2 as a double % --- Executes during object creation, after setting all properties. function PSI2_CreateFcn(hObject, eventdata, handles) % hObject handle to PSI2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function PSI3_Callback(hObject, eventdata, handles) % hObject handle to PSI3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of PSI3 as text % str2double(get(hObject,'String')) returns contents of PSI3 as a double % --- Executes during object creation, after setting all properties. function PSI3_CreateFcn(hObject, eventdata, handles) % hObject handle to PSI3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in DaysForWaterContentProfiles.
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 15 of 28
function DaysForWaterContentProfiles_Callback(hObject, eventdata, handles) % hObject handle to DaysForWaterContentProfiles (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns DaysForWaterContentProfiles contents as cell array % contentsget(hObject,'Value') returns selected item from DaysForWaterContentProfiles % --- Executes during object creation, after setting all properties. function DaysForWaterContentProfiles_CreateFcn(hObject, eventdata, handles) % hObject handle to DaysForWaterContentProfiles (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in EXCELEXPORT. function EXCELEXPORT_Callback(hObject, eventdata, handles) % hObject handle to EXCELEXPORT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of EXCELEXPORT function DT2_Callback(hObject, eventdata, handles) % hObject handle to DT2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of DT2 as text % str2double(get(hObject,'String')) returns contents of DT2 as a double % --- Executes during object creation, after setting all properties. function DT2_CreateFcn(hObject, eventdata, handles) % hObject handle to DT2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 16 of 28
end function UNAVAILSW_Callback(hObject, eventdata, handles) % hObject handle to UNAVAILSW (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of UNAVAILSW as text % str2double(get(hObject,'String')) returns contents of UNAVAILSW as a double % --- Executes during object creation, after setting all properties. function UNAVAILSW_CreateFcn(hObject, eventdata, handles) % hObject handle to UNAVAILSW (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white' ); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in NEXTSTEP3. function NEXTSTEP3_Callback(hObject, eventdata, handles) % hObject handle to NEXTSTEP3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function ΝΕΧΤSTEP3 πριν μας πάει στο επόμενο βημα το πρόγραμμα ελέγχει % τις επιλογές του χρήστη (αν συμπληρώθηκαν όλες οι απαραίτητες τιμές καθώς % και εκτελεί κάποιους λογικούς ελέγχους των τιμών αυτών) % Για τον έλεγχο των τιμών ημερομηνιών (IDIN,IMIN,IYIN,IDLAST,IMLAST, % IYLAST) δημιουργούνται τα 3 παρακάτω σύνολα DAYSOFMONTH , MONTHS και το % YEARS DAYSOFMONTH=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]; MONTHS=[1 2 3 4 5 6 7 8 9 10 11 12]; YEARS=[1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020]; % Ολες οι τιμές παίρνονται μέσω τις εντολής get. Η εντολή str2num % μετατρέπει την τιμή που επιστρέφει η MATLAB η οποία είναι string σε % αριθμό %Calculation Dates IDIN IDIN=str2num(get(handles.IDIN,'String')); % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση if isnan(IDIN)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 17 of 28
errordlg('You must enter a numeric value for initial day','Bad input in Initial day'); return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές καθώς και για τιμές % μεγαλύτερες από 31 if IDIN<=0 errordlg('You can not have a negative or 0 zero value for initial day' ,'Bad input in Initial day'); return ; elseif IDIN>31 errordlg('You can not have a value >31 for initial day','Bad input in Initial day'); return ; end % Ελεγχος για το εαν το IDIN είναι μέρος του DAYSOFMONTH if ismember(IDIN,DAYSOFMONTH) error=0; else errordlg('You must enter a integer value for day','Bad input in Initial day'); return ; end %Calculation Dates IMIN IMIN=str2num(get(handles.IMIN,'String')); % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση if isnan(IMIN) errordlg('You must enter a numeric value for initial month','Bad input in Initial month'); return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές καθώς και για τιμές % μεγαλύτερες από 12 if IMIN<=0 errordlg('You can not have a negative or 0 zero value for month','Bad input in Initial month'); return ; elseif IMIN>12 errordlg('You can not have a value >12 for month','Bad input in Initial month'); return ; end % Ελεγχος για το εαν το IMIN είναι μέρος του MONTHS if ismember(IMIN,MONTHS) error=0; else errordlg('You must enter a integer value for month','Bad input in Initial month'); return ; end %Calculation Dates IYIN % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση IYIN=str2num(get(handles.IYIN,'String')); if isnan(IYIN) errordlg('You must enter a numeric value for initial year','Bad input in Initial year');
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 18 of 28
return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές if IYIN<=0 errordlg('You can not have a negative or 0 zero value for year','Bad input in Initial year'); return ; end % Ελεγχος για το εαν το IYIN είναι μέρος του YEARS if ismember(IYIN,YEARS) error=0; else errordlg('You must enter a integer value for year or year must be between 1990-2020','Bad input in Initial year'); return ; end %Calculation Dates IDLAST IDLAST=str2num(get(handles.IDLAST,'String')); % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση if isnan(IDLAST) errordlg('You must enter a numeric value for last day' ,'Bad input in Last day' ); return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές καθώς και για τιμές % μεγαλύτερες από 31 if IDLAST<=0 errordlg('You can not have a negative or 0 zero value for day' ,'Bad input in Last day'); return ; elseif IDLAST>31 errordlg('You can not have a value >31 for day','Bad input in Last day'); return ; end % Ελεγχος για το εαν το IDLAST είναι μέρος του DAYSOFMONTH if ismember(IDLAST,DAYSOFMONTH) error=0; else errordlg('You must enter a integer value for day','Bad input in Last day'); return ; end %Calculation Dates IMLAST IMLAST=str2num(get(handles.IMLAST,'String')); % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση if isnan(IMLAST) errordlg('You must enter a numeric value for last month','Bad input in Last month'); return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές καθώς και για τιμές % μεγαλύτερες από 12 if IMLAST<=0 errordlg('You can not have a negative or 0 zero value for month','Bad input in Last month'); return ;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 19 of 28
elseif IMLAST>12 errordlg('You can not have a value >12 for month','Bad input in Last month'); return ; end % Ελεγχος για το εαν το IMLAST είναι μέρος του MONTHS if ismember(IMLAST,MONTHS) error=0; else errordlg('You must enter a integer value for month','Bad input in Last month'); return ; end %Calculation Dates IYLAST IYLAST=str2num(get(handles.IYLAST,'String')); % Ελεγχος για το αν δώθηκε κάποια τιμή ή αν έχει αριθμητική τιμή και % εμφάνιση ενός error dialog box στην αντίθετη περίπτωση if isnan(IYLAST) errordlg('You must enter a numeric value for last year','Bad input in Last year'); return ; end % Ελεγχος για αρνητικές τιμές και μηδενικές τιμές if IYLAST<=0 errordlg('You can not have a negative or 0 zero value for year','Bad input in Last year'); return ; end % Ελεγχος για το εαν το IYLAST είναι μέρος του YEARS if ismember(IYLAST,YEARS) error=0; else errordlg('You must enter a integer value for year or year must be between 1990-2020','Bad input in Last year'); return ; end % Ελεγχος για τον αν το IYLAST είναι μικρότερο το IYIN. Δηλαδή αν το τελικό % έτος ειναι μικρότερο του αρχικού έτους if IYLAST < IYIN errordlg('The value of last year is smaller than the initial year','Bad input in Last and Initial year'); return ; end % Ελεγχος για τον αν το IΜLAST είναι μικρότερο το IΜIN. Δηλαδή αν ο τελικός % μήνας ειναι μικρότερος του αρχικού μήνα if (IYLAST == IYIN) & (IMLAST < IMIN) errordlg('The value of last month is smaller than the initial month','Bad input in Last and Initial month'); return ; end % Ελεγχος για τον αν το IDLAST είναι μικρότερο το IDIN. Δηλαδή αν η τελική % ημέρα είναι μικρότερη της αρχικής ημερομηνίας if (IYLAST == IYIN) & (IMLAST == IMIN) & (IDLAST < IDIN) errordlg('The value of last day is smaller than the initial day','Bad input in Last and Initial day'); return ;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 20 of 28
end %SWBACROS method METHOD1=get(handles.METHOD1,'Value'); METHOD2=get(handles.METHOD2,'Value'); MAXITER=0; if (METHOD2 > METHOD1) MAXITER=str2num(get(handles.MAXITER,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το MAXITER if isempty(isnan(MAXITER)) errordlg('You must enter a numeric value for maximum number of iterations','Bad input in Maximum number of iterations'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if MAXITER<=0 errordlg('You can not have a negative or 0 zero value for maximum number of iterations','Bad input in Maximum number of iterations'); return ; end; end %Nodal points JMAX=str2num(get(handles.JMAX,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το JMAX if isempty(isnan(JMAX)) errordlg('You must enter a numeric value for maximum number of nodal points','Bad input in Maximum number of nodal points'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if JMAX<=0 errordlg('You can not have a negative or 0 zero value for maximum number of nodal points','Bad input in Maximum number of nodal points'); return ; end % Ελεγχος για τιμές μεγαλύτερες από 20 if JMAX>20 errordlg('You can not have a value >20 for maximum number of nodal points','Bad input in Maximum number of nodal points'); return ; end DEPTH=str2num(get(handles.DEPTH,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το DEPTH if isempty(isnan(DEPTH)) errordlg('You must enter a numeric value for depth of the unsaturated zone from soil surface','Bad input in Depth of the unsaturated zone from soil surface'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DEPTH<=0 errordlg('You can not have a negative or 0 zero value for depth of the unsaturated zone from soil surface','Bad input in Depth of the unsaturated zone from soil surface'); return ; end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 21 of 28
%Time Steps DTPAR1=get(handles.DTPAR1,'Value' ); DTPAR2=get(handles.DTPAR2,'Value' ); if (DTPAR1 > DTPAR2) DT2=str2num(get(handles.DT2,'string')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το DT2 if isempty(isnan(DT2)) errordlg('You must enter a numeric value for initial time step in constant time step','Bad input in Initial time step in constant time step' ); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DT2<=0 errordlg('You can not have a negative or 0 zero value for initial time step in constant time step','Bad input in Initial time step in constant time step'); return ; end ZETA1=0; DTMIN=0; DTMAX=0; DT1=0; else DT2=0; DT1=str2num(get(handles.DT1,'string')); DTMIN=str2num(get(handles.DTMIN,'string')); DTMAX=str2num(get(handles.DTMAX,'string')); ZETA1=str2num(get(handles.ZETA1,'string')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το DT1 if isempty(isnan(DT1)) errordlg('You must enter a numeric value for initial time step in variable time step','Bad input in Initial time step in variable time step' ); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DT1<=0 errordlg('You can not have a negative or 0 zero value for initial time step in variable time step','Bad input in Initial time step in variable time step'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το DTMIN if isempty(isnan(DTMIN)) errordlg('You must enter a numeric value for minimum time step in variable time step','Bad input in Minimum time step in variable time step' ); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DTMIN<=0 errordlg('You can not have a negative or 0 zero value for minimum time step in variable time step','Bad input in Minimum time step in variable time step'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το DTMAX if isempty(isnan(DTMAX)) errordlg('You must enter a numeric value for maximum time step in variable time step','Bad input in Maximum time step in variable time step' );
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 22 of 28
return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DTMAX<=0 errordlg('You can not have a negative or 0 zero value for maximum time step in variable time step','Bad input in Maximum time step in variable time step'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το ZETA1 if isempty(isnan(ZETA1)) errordlg('You must enter a numeric value for time step convergence parameter for variable time step','Bad input in Time step convergence parameter for variable time step'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if ZETA1<=0 errordlg('You can not have a negative or 0 zero value for time step convergence parameter for variable time step','Bad input in Time step convergence parameter for variable time step'); return ; end % Ελεγχος για το DTMIN (minimum time step) έχει μεγαλύτερη τιμή για το % DTMAX (maximum time step) if DTMIN>DTMAX errordlg('Minimum time step is greater than the maximum time step in variable time step','Bad input in Minimum and Maximum time step in variable time step'); return ; end end %Output files OUTPUTFILE1=get(handles.OUTPUTFILE1,'String'); OUTPUTFILE2=get(handles.OUTPUTFILE2,'String'); % Eλεγχοι για τον αν δόθηκαν τιμές για τις δύο μεταβλητές OUTPUTFILE1 και % OUTPUTFILE2 if isempty(OUTPUTFILE1) errordlg('You must enter a value for water balance results file','Bad input in the first output file'); return ; end if isempty(OUTPUTFILE2) errordlg('You must enter a value for soil profile characteristics file','Bad input in the second output file'); return ; end %Type of run OPT1=get(handles.OPT1,'Value'); OPT2=get(handles.OPT2,'Value'); %Layers LAYER=str2num(get(handles.LAYER,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το LAYER if isempty(isnan(LAYER)) errordlg('You must enter a numeric value for the number of different soil
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 23 of 28
layers','Bad input in Number of different soil layers'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if LAYER<=0 errordlg('You can not have a negative or 0 zero value for the number of different soil layers','Bad input in Number of different soil layers'); return ; end % Ελεγχος για τιμές μεγαλύτερες του 14 if LAYER>14 errordlg('You can not have greater number than 14 in number of different soil layers','Bad input in Number of different soil layers'); return ; end % Bottom boundary condition IBBC1=get(handles.IBBC1,'Value'); IBBC2=get(handles.IBBC2,'Value'); IBBC3=get(handles.IBBC3,'Value'); %Days of Water Content Profiles DaysForWaterContentProfiles=str2num(get(handles.DaysForWaterContentProfiles,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το % DaysForWaterContentProfiles if isempty(isnan(DaysForWaterContentProfiles)) errordlg('You must enter a numeric value for Days of Water Content Profiles','Bad input in Days of Water Content Profiles'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if DaysForWaterContentProfiles<=0 errordlg('You can not have a negative or 0 zero value for Days of Water Content Profiles','Bad input in Days of Water Content Profiles' ); return ; end % Ελεγχος για τιμές μεγαλύτερες από 9 στo DaysForWaterContentProfiles if DaysForWaterContentProfiles>9 errordlg('You can not have >9 for Days of Water Content Profiles','Bad input in Days of Water Content Profiles'); return ; end %Unavailable soil water UNAVAILSW=str2num(get(handles.UNAVAILSW,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το UNAVAILSW if isempty(isnan(UNAVAILSW)) errordlg('You must enter a numeric value for Unavailable soil water','Bad input in Unavailable soil water'); return ; end % Ελεγχος για αρνητικές και μηδενικές τιμές if UNAVAILSW<=0 errordlg('You can not have a negative or 0 zero value for Unavailable soil water','Bad input in Unavailable soil water'); return ; end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 24 of 28
%Root water uptake IRWUT=get(handles.IRWUT,'Value'); MODUPT1=0; MODUPT2=0; PSI1=0; PSI2=0; PSI3=0; if (IRWUT>0) MODUPT1=get(handles.MODUPT1,'Value'); MODUPT2=get(handles.MODUPT2,'Value'); PSI1=str2num(get(handles.PSI1,'string')); PSI2=str2num(get(handles.PSI2,'string')); PSI3=str2num(get(handles.PSI3,'string')); % Ελεγχοι για το εάν δόθηκαν αριθμητικές τιμές PSI1 , PSI2 , PSI3 if isempty(isnan(PSI1)) errordlg('You must enter a numeric value for Anaerobiosis point' ,'Bad input in Anaerobiosis point'); return ; end if isempty(isnan(PSI2)) errordlg('You must enter a numeric value for Limiting point','Bad input in Limiting point'); return ; end if isempty(isnan(PSI3)) errordlg('You must enter a numeric value for Wilting point','Bad input in Wilting point'); return ; end end %Excel export EXCELEXPORT=get(handles.EXCELEXPORT,'Value'); %Top boundary condition ITBC1=get(handles.ITBC1,'Value'); ITBC2=get(handles.ITBC2,'Value'); ITBC3=get(handles.ITBC3,'Value'); UDFLUX=0; SIGMA=0; PETIND1=0; PETIND2=0; PETIND3=0; IPETC=0; IAVER1=0; IAVER2=0; IRS1=0; IRS2=0; VRATIO=0; if (ITBC3>0) UDFLUX=str2num(get(handles.UDFLUX,'string')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το UDFLUX if isempty(isnan(UDFLUX)) errordlg('You must enter a numeric value for user defined flux' ,'Bad input in User defined flux');
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 25 of 28
return ; end % Ελεγχος για αρνητικές τιμές if UDFLUX<0 errordlg('You can not have a negative value for user defined flux' ,'Bad input in User defined flux'); return ; end; SIGMA=0; PETIND1=0; PETIND2=0; PETIND3=0; IPETC=0; IAVER1=0; IAVER2=0; IRS1=0; IRS2=0; VRATIO=0; elseif (ITBC2>0) UDFLUX=0; SIGMA=str2num(get(handles.SIGMA,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το SIGMA if isempty(isnan(SIGMA)) errordlg('You must enter a numeric value for Coefficient in actual evapotranspiration function (SIGMA)','Bad input in Coefficient in actual evapotranspiration function (SIGMA)'); return ; end PETIND1=get(handles.PETIND1,'Value'); PETIND2=get(handles.PETIND2,'Value'); PETIND3=get(handles.PETIND3,'Value'); IPETC=get(handles.IPETC,'Value'); IAVER1=get(handles.IAVER1,'Value'); IAVER2=get(handles.IAVER2,'Value'); IRS1=get(handles.IRS1,'Value' ); IRS2=get(handles.IRS2,'Value' ); VRATIO=str2num(get(handles.VRATIO,'String')); % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το VRATIO if isempty(isnan(VRATIO)) errordlg('You must enter a numeric value for Ratio of wind speed during day and night','Bad input in Ratio of wind speed during day and night' ); return ; end % Ελεγχος για αρνητικές τιμές if VRATIO<0 errordlg('You can not have a negative value for Ratio of wind speed during day and night','Bad input in Ratio of wind speed during day and night'); return ; end end % Αφού πέρασαν όλοι οι ελεγχοι και έχοντας στη μνήμη τις μεταβλητές % προσθέτουμε στο αρχείο LIQUIDvars.mat τις μεταβλητές αυτές save LIQUIDvars IDIN IMIN IYIN IDLAST IMLAST IYLAST METHOD1 METHOD2 MAXITER JMAX DEPTH DTPAR1 DTPAR2 DT1 DT2 DTMIN DTMAX ZETA1 OPT1 OPT2 LAYER OUTPUTFILE1 OUTPUTFILIBBC1 IBBC2 IBBC3 IRWUT MODUPT1 MODUPT2 PSI1 PSI2 PSI3 DaysForWaterContentProfiles
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 26 of 28
ITBC1 ITBC2 ITBC3 UDFLUX SIGMA PETIND1 PETIND2 PETIND3 IPETC IAVER1 IAVER2 IRS1 IRSVRATIO EXCELEXPORT UNAVAILSW -append % Κλείνουμε το παράθυρο μας και καλούμε το LIQUIDstep3 closereq; LIQUIDstep3 % --- Executes on button press in BACKSTEP1. function BACKSTEP1_Callback(hObject, eventdata, handles) % hObject handle to BACKSTEP1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function BACKSTEP1 μας πηγαίνει στο STEP1 κλείνοντας το υπάρχον % παράθυρό μας closereq; liquid % --- Executes on button press in EXITTOWINDOWS. function EXITTOWINDOWS_Callback(hObject, eventdata, handles) % hObject handle to EXITTOWINDOWS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function ΕΧΙΤΤOWINDOWS κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη ένα % dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' closereq; case 'No' return end % --- Executes on button press in LOADING. function LOADING_Callback(hObject, eventdata, handles) % hObject handle to LOADING (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % H function LOADING φορτώνει τις μεταβλητές τις προηγούμενης εκτέλεσης του % SWBACROS. Στην αρχή του προγράμματος κάναμε global της μεταβλητές και % μέσω της εντολής load τις φορτώνει στη μνήμη. Με τη εντολή set γεμίζουμε % την φόρμα μας με τις τιμές αυτές global IDIN IMIN IYIN IDLAST IMLAST IYLAST METHOD1 METHOD2 MAXITER JMAX DEPTH DTPAR1 DTPAR2 DT1 DT2 DTMIN DTMAX ZETA1 OPT1 OPT2 LAYER OUTPUTFILE1 OUTPUTFILE2 IBBC1 IBBC2 IBBC3 IRWUT MODUPT1 MODUPT2 PSI1 PSI2 PSI3 DaysForWaterContentProfiles ITBC1 ITBC2 ITBC3 UDFLUX SIGMA PETIND1 PETIND2 PETIND3 IPETC IAVER1 IAVER2 IRS1 IRS2 VRATIO EXCELEXPORT UNAVAILSW; set(handles.IDIN,'String',IDIN); set(handles.IMIN,'String',IMIN); set(handles.IYIN,'String',IYIN);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 27 of 28
set(handles.IDLAST,'String',IDLAST); set(handles.IMLAST,'String',IMLAST); set(handles.IYLAST,'String',IYLAST); set(handles.METHOD1,'Value',METHOD1); set(handles.METHOD2,'Value',METHOD2); set(handles.MAXITER,'String',MAXITER); set(handles.JMAX,'String',JMAX); set(handles.DEPTH,'String',DEPTH); set(handles.DTPAR1,'Value',DTPAR1); set(handles.DTPAR2,'Value',DTPAR2); set(handles.DT1,'String',DT1); set(handles.DT2,'String',DT2); set(handles.DTMIN,'String',DTMIN); set(handles.DTMAX,'String',DTMAX); set(handles.ZETA1,'String',ZETA1); set(handles.UNAVAILSW,'String',UNAVAILSW); set(handles.OPT1,'Value' ,OPT1); set(handles.OPT2,'Value' ,OPT2); set(handles.LAYER,'String',LAYER); set(handles.OUTPUTFILE1,'String',OUTPUTFILE1); set(handles.OUTPUTFILE2,'String',OUTPUTFILE2); set(handles.IBBC1,'Value',IBBC1); set(handles.IBBC2,'Value',IBBC2); set(handles.IBBC3,'Value',IBBC3); set(handles.IRWUT,'Value',IRWUT); set(handles.MODUPT1,'Value',MODUPT1); set(handles.MODUPT2,'Value',MODUPT2); set(handles.PSI1,'String',PSI1); set(handles.PSI2,'String',PSI2); set(handles.PSI3,'String',PSI3); set(handles.DaysForWaterContentProfiles,'String',DaysForWaterContentProfiles); set(handles.ITBC1,'Value',ITBC1); set(handles.ITBC2,'Value',ITBC2); set(handles.ITBC3,'Value',ITBC3); set(handles.UDFLUX,'String',UDFLUX); set(handles.SIGMA,'String',SIGMA); set(handles.PETIND1,'Value',PETIND1); set(handles.PETIND2,'Value',PETIND2); set(handles.PETIND3,'Value',PETIND3); set(handles.IAVER1,'Value',IAVER1); set(handles.IAVER2,'Value',IAVER2); set(handles.IPETC,'Value',IPETC); set(handles.IRS1,'Value' ,IRS1);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep2.m 28 of 28
set(handles.IRS2,'Value' ,IRS2); set(handles.VRATIO,'String',VRATIO); set(handles.EXCELEXPORT,'Value',EXCELEXPORT);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 1 of 6
function varargout = LIQUIDstep3(varargin) % LIQUIDSTEP3 M-file for LIQUIDstep3.fig % LIQUIDSTEP3, by itself, creates a new LIQUIDSTEP3 or raises the existing % singleton*. % % H = LIQUIDSTEP3 returns the handle to a new LIQUIDSTEP3 or the handle to % the existing singleton*. % % LIQUIDSTEP3('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUIDSTEP3.M with the given input arguments. % % LIQUIDSTEP3('Property','Value',...) creates a new LIQUIDSTEP3 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LIQUIDstep3_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LIQUIDstep3_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LIQUIDstep3 % Last Modified by GUIDE v2.5 26-Mar-2005 13:34:26 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LIQUIDstep3_OpeningFcn, ... 'gui_OutputFcn', @LIQUIDstep3_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % --- Executes just before LIQUIDstep3 is made visible. function LIQUIDstep3_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LIQUIDstep3 (see VARARGIN) % Choose default command line output for LIQUIDstep3 handles.output = hObject;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 2 of 6
% Update handles structure guidata(hObject, handles); % UIWAIT makes LIQUIDstep3 wait for user response (see UIRESUME) % uiwait(handles.LIQUIDstep3); % --- Outputs from this function are returned to the command line. function varargout = LIQUIDstep3_OutputFcn(h, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % Ορισμός global μεταβλητών global LAYER FirstNodalPoint LastNodalPoint AKS THETS THETD AV ANV FirstNodalPoint1 LastNodalPoint1 % Μεταβλητές % Ολα τα παρακάτω στοιχεια του προγράμματος είναι πίνακες μονοδιάστατοι % με στοιχεία double ακρίβειας και οι διαστάσεις τους είναι (1,j) με j από % 1 μέχρι LAYER % FirstNodalPoint1(1,j) : Περιέχει τις τιμές για το πρώτο σημείο κάθε % εδαφικού ορίζοντα % LastNodalPoint1(1,j) : Περιέχει τις τιμές για το τελευταίο σημείο κάθε % εδαφικού ορίζοντα % AKS1(1,j) : Saturated hydraulic conductivity % THETS1(1,j) : Saturated moisture content % THETD1(1,j) : Moisture content of dried soil % AV1(1,j) : Coefficient A of Van Genuchten model % ANV1(1,j) : Coefficient N of Van Genuchten model % Φορτώνουμε τις μεταβλήτες του LIQUIDvars.mat load LIQUIDvars; % Μεταφορά του παραθύρου πάνω και αριστερά movegui('northwest'); % Εμφανιση στην οθόνη του Number of different soil horizons καθώς και το % Maximum Number of nodal points HORIZONS=uicontrol('style','text','units' ,'normalized','FontSize',15,'position',[0.330.88 0.05 0.04]); set(HORIZONS,'String',LAYER); NODALPOINTS=uicontrol('style','text','units','normalized','FontSize',15,'position',[0.82 0.88 0.05 0.04]); set(NODALPOINTS,'String',JMAX); % Δημιουργία άδειων text box για την εισαγωγη των First Nodal Point , Last % Nodal Point , Saturated hydraulic conductivity (AKS) , Saturated moisture % content (THETS) , Moisture content of dried soil (THETD) , Coefficient % A,N of Van Genuchten model (AV,ANV) for j=1:LAYER FirstNodalPoint(1,j)=uicontrol
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 3 of 6
('style' ,'edit' ,'background','w','units','normalized','position',[0.1 0.80-0.05*j 0.04 0.03]); LastNodalPoint(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.170 0.80-0.05*j 0.04 0.03]); AKS(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.24 0.80-0.05*j 0.08 0.03]); THETS(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.36 0.80-0.05*j 0.08 0.03]); THETD(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.48 0.80-0.05*j 0.08 0.03]); AV(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.6 0.80-0.05*j 0.08 0.03]); ANV(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.75 0.80-0.05*j 0.08 0.03]); TextHorizons(1,j)=uicontrol('style','text','units','normalized','position',[0.02 0.80-0.05*j 0.04 0.03]); set(TextHorizons(1,j),'String',j); end handles.FirstNodalPoint = FirstNodalPoint; handles.LastNodalPoint = LastNodalPoint; handles.AKS = AKS; handles.THETS = THETS; handles.THETD = THETD; handles.AV = AV; handles.ANV = ANV; guidata(h, handles); % --- Executes on button press in BACKSTEP2. function BACKSTEP2_Callback(h, eventdata, handles) % hObject handle to BACKSTEP2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Πηγαίνει στο Step2 κλείνοντας το παράθυρο closereq; LIQUIDstep2 % --- Executes on button press in NEXTSTEP4. function NEXTSTEP4_Callback(h, eventdata, handles) % hObject handle to NEXTSTEP4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Καλεί την μεταβλητή LAYER που θα χρησιμοποιήσουμε παρακάτω και την % ορίσαμε ως global στην αρχή του προγράμματος global LAYER FirstNodalPoint = handles.FirstNodalPoint;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 4 of 6
LastNodalPoint = handles.LastNodalPoint; AKS = handles.AKS; THETS = handles.THETS; THETD = handles.THETD; AV = handles.AV; ANV = handles.ANV; for j=1:LAYER % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το FirstNodalPoint if isempty(isnan(str2num(get(handles.FirstNodalPoint(1,j),'String')))) errordlg(['You must enter a numeric value for the first nodal point in horizon ' num2str(j)'], 'Bad input in First Nodal Point'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το LastNodalPoint if isempty(isnan(str2num(get(handles.LastNodalPoint(1,j),'String')))) errordlg(['You must enter a numeric value for the last nodal point in horizon ' num2str(j)'], 'Bad input in Last Nodal Point'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το AKS if isempty(isnan(str2num(get(handles.AKS(1,j),'String')))) errordlg(['You must enter a numeric value for the saturated hydraulic conductivity in horizon ' num2str(j)'],'Bad input in Saturated hydraulic conductivity'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το THETS if isempty(isnan(str2num(get(handles.THETS(1,j),'String')))) errordlg(['You must enter a numeric value for the saturated moisture content in horizon ' num2str(j)'],'Bad input in Saturated moisture content'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το THETD if isempty(isnan(str2num(get(handles.THETD(1,j),'String')))) errordlg(['You must enter a numeric value for the moisture content of dried soil in horizon ' num2str(j)'], 'Bad input in Moisture content of dried soil'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το AV if isempty(isnan(str2num(get(handles.AV(1,j),'String')))) errordlg(['You must enter a numeric value for the Coefficient A of Van Genuchten model in horizon ' num2str(j)'],'Bad input in Coefficient A of Van Genuchten model'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το ANV if isempty(isnan(str2num(get(handles.ANV(1,j),'String')))) errordlg(['You must enter a numeric value for the Coefficient N of Van Genuchten model in horizon ' num2str(j)'],'Bad input in Coefficient N of Van Genuchten model'); return ;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 5 of 6
end % Αφου πέρασαν επιτυχημένα όλους τους ελέγχους το πρόγραμμα παιρνει τις % τιμές που πληκτρολόγησε ο χρήστης FirstNodalPoint1(1,j)= str2num(get(handles.FirstNodalPoint(1,j),'String')); LastNodalPoint1(1,j)= str2num(get(handles.LastNodalPoint(1,j),'String')); AKS1(1,j)= str2num(get(handles.AKS(1,j),'String')); THETS1(1,j)= str2num(get(handles.THETS(1,j),'String')); THETD1(1,j)= str2num(get(handles.THETD(1,j),'String')); AV1(1,j)=str2num(get(handles.AV(1,j),'String')); ANV1(1,j)= str2num(get(handles.ANV(1,j),'String')); end % Αποθηκεύει τις τιμές που πήραμε στο αρχειο LIQUIDvars.mat κλείνει το % παράθυρο και προχωρά στο LIQUDstep4 save LIQUIDvars FirstNodalPoint1 LastNodalPoint1 AKS1 THETS1 THETD1 AV1 ANV1 -appendclosereq; LIQUIDstep4 % --- Executes on button press in EXITTOWINDOWS. function EXITTOWINDOWS_Callback(h, eventdata, handles) % hObject handle to EXITTOWINDOWS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function ΕΧΙΤΤOWINDOWS κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη % ένα dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' closereq; case 'No' return end % --- Executes on button press in LOADING2. function LOADING2_Callback(h, eventdata, handles) % hObject handle to LOADING2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % H function LOADING φορτώνει τις μεταβλητές τις προηγούμενης εκτέλεσης του % SWBACROS. Στην αρχή του προγράμματος κάναμε global της μεταβλητές και % μέσω της εντολής load τις φορτώνει στη μνήμη. Με τη εντολή set γεμίζουμε % την φόρμα μας με τις τιμές αυτές global LAYER FirstNodalPoint1 LastNodalPoint1 AKS1 THETS1 THETD1 AV1 ANV1 load LIQUIDvars; FirstNodalPoint = handles.FirstNodalPoint; LastNodalPoint = handles.LastNodalPoint; AKS = handles.AKS; THETS = handles.THETS; THETD = handles.THETD; AV = handles.AV;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep3.m 6 of 6
ANV = handles.ANV; [previous_rows,previous_columns]=size(FirstNodalPoint1); for j=1:previous_columns set(handles.FirstNodalPoint(1,j),'String',FirstNodalPoint1(1,j)); set(handles.LastNodalPoint(1,j),'String',LastNodalPoint1(1,j)); set(handles.AKS(1,j),'String',AKS1(1,j)); set(handles.THETS(1,j),'String',THETS1(1,j)); set(handles.THETD(1,j),'String',THETD1(1,j)); set(handles.AV(1,j),'String',AV1(1,j)); set(handles.ANV(1,j),'String',ANV1(1,j)); end guidata(h , handles);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep4.m 1 of 4
function varargout = LIQUIDstep4(varargin) % LIQUIDSTEP4 M-file for LIQUIDstep4.fig % LIQUIDSTEP4, by itself, creates a new LIQUIDSTEP4 or raises the existing % singleton*. % % H = LIQUIDSTEP4 returns the handle to a new LIQUIDSTEP4 or the handle to % the existing singleton*. % % LIQUIDSTEP4('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUIDSTEP4.M with the given input arguments. % % LIQUIDSTEP4('Property','Value',...) creates a new LIQUIDSTEP4 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LIQUIDstep4_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LIQUIDstep4_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LIQUIDstep4 % Last Modified by GUIDE v2.5 26-Mar-2005 14:25:45 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LIQUIDstep4_OpeningFcn, ... 'gui_OutputFcn', @LIQUIDstep4_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % --- Executes just before LIQUIDstep4 is made visible. function LIQUIDstep4_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LIQUIDstep4 (see VARARGIN) % Choose default command line output for LIQUIDstep4 handles.output = hObject;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep4.m 2 of 4
% Update handles structure guidata(hObject, handles); % UIWAIT makes LIQUIDstep4 wait for user response (see UIRESUME) % uiwait(handles.LIQUIDstep4); % --- Outputs from this function are returned to the command line. function varargout = LIQUIDstep4_OutputFcn(h, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % Μεταφορά του παραθύρου πάνω και αριστερά movegui('northwest'); % Ορισμός global μεταβλητής global JMAX % Μεταβλητές % Ολα τα παρακάτω στοιχεια του προγράμματος είναι πίνακες μονοδιάστατοι % με στοιχεία double ακρίβειας και οι διαστάσεις τους είναι (1,j) με j από % 1 μέχρι JMAX % SizeNodalPoints1(1,j) : Περιέχει τις τιμές του μεγέθους κάθε κελιού % InitialY1(1,j) : Περιέχει τις τιμές της αρνητικής πίεσης για κάθε κελί % Φορτώνουμε τις μεταβλήτες του LIQUIDvars.mat load LIQUIDvars; % Εμφανιση στην φόρμα του Step4 το Maximum Number of nodal points NODALPOINTS=uicontrol('style','text','units','normalized','FontSize',15,'position',[0.90 0.92 0.05 0.04]); set(NODALPOINTS,'String',JMAX); % Δημιουργία άδειων text box για την εισαγωγη των SizeNodalPoints % και του InitialY for j=1:JMAX SizeNodalPoints(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.20 0.88-0.04*j 0.10 0.03]); InitialY(1,j)=uicontrol('style' ,'edit' ,'background','w','units','normalized','position',[0.45 0.88-0.04*j 0.10 0.03]); TextNodalPoints(1,j)=uicontrol('style','text' ,'units','normalized','position',[0.06 0.87-0.04*j 0.04 0.03]); set(TextNodalPoints(1,j),'String',j); end handles.SizeNodalPoints = SizeNodalPoints; handles.InitialY = InitialY; guidata(h, handles);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep4.m 3 of 4
% --- Executes on button press in BACKSTEP3. function BACKSTEP3_Callback(h, eventdata, handles) % hObject handle to BACKSTEP3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Πηγαίνει στο Step3 κλείνοντας το παράθυρο closereq; LIQUIDstep3 % --- Executes on button press in NEXTSTEP5. function NEXTSTEP5_Callback(h, eventdata, handles) % hObject handle to NEXTSTEP5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Καλεί την μεταβλητή JMAX που θα χρησιμοποιήσουμε παρακάτω και την % ορίσαμε ως global στην αρχή του προγράμματος global JMAX SizeNodalPoints = handles.SizeNodalPoints; InitialY = handles.InitialY; for j=1:JMAX % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το SizeNodalPoints if isempty(isnan(str2num(get(handles.SizeNodalPoints(1,j),'String')))) errordlg('You must enter a numeric value for the size of cell' ,'Bad input in Size of cell'); return ; end % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το InitialY if isempty(isnan(str2num(get(handles.InitialY(1,j),'String')))) errordlg('You must enter a numeric value for initial value of negative pressure','Bad input in Initial value of negative pressure'); return ; end % Αφου πέρασαν επιτυχημένα όλους τους ελέγχους το πρόγραμμα παίρνει τις % τιμές που πληκτρολόγησε ο χρήστης SizeNodalPoints1(1,j) = str2num(get(handles.SizeNodalPoints(1,j),'String')); InitialY1(1,j) = str2num(get(handles.InitialY(1,j),'String')); end % Αποθηκεύει τις τιμές που πήραμε στο αρχειο LIQUIDvars.mat κλείνει το % παράθυρο και προχωρά στο LIQUDstep5 save LIQUIDvars SizeNodalPoints1 InitialY1 -append closereq; LIQUIDstep5 % --- Executes on button press in EXITTOWINDOWS. function EXITTOWINDOWS_Callback(hObject, eventdata, handles) % hObject handle to EXITTOWINDOWS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function ΕΧΙΤΤOWINDOWS κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep4.m 4 of 4
% ένα dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' closereq; case 'No' return end % --- Executes on button press in LOADING3. function LOADING3_Callback(hObject, eventdata, handles) % hObject handle to LOADING3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % H function LOADING φορτώνει τις μεταβλητές τις προηγούμενης εκτέλεσης του % SWBACROS. Στην αρχή του προγράμματος κάναμε global της μεταβλητές και % μέσω της εντολής load τις φορτώνει στη μνήμη. Με τη εντολή set γεμίζουμε % την φόρμα μας με τις τιμές αυτές global JMAX load LIQUIDvars; SizeNodalPoints = handles.SizeNodalPoints; InitialY = handles.InitialY; [previous_rows,previous_columns]=size(SizeNodalPoints1); for j=1:previous_columns set(handles.SizeNodalPoints(1,j),'String',SizeNodalPoints1(1,j)); set(handles.InitialY(1,j),'String',InitialY1(1,j)); end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep5.m 1 of 5
function varargout = LIQUIDstep5(varargin) % LIQUIDSTEP5 M-file for LIQUIDstep5.fig % LIQUIDSTEP5, by itself, creates a new LIQUIDSTEP5 or raises the existing % singleton*. % % H = LIQUIDSTEP5 returns the handle to a new LIQUIDSTEP5 or the handle to % the existing singleton*. % % LIQUIDSTEP5('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUIDSTEP5.M with the given input arguments. % % LIQUIDSTEP5('Property','Value',...) creates a new LIQUIDSTEP5 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LIQUIDstep5_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LIQUIDstep5_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LIQUIDstep5 % Last Modified by GUIDE v2.5 02-Jan-2005 17:58:57 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LIQUIDstep5_OpeningFcn, ... 'gui_OutputFcn', @LIQUIDstep5_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % --- Executes just before LIQUIDstep5 is made visible. function LIQUIDstep5_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LIQUIDstep5 (see VARARGIN) % Choose default command line output for LIQUIDstep5 handles.output = hObject;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep5.m 2 of 5
% Update handles structure guidata(hObject, handles); % UIWAIT makes LIQUIDstep5 wait for user response (see UIRESUME) % uiwait(handles.LIQUIDSTEP5); % --- Outputs from this function are returned to the command line. function varargout = LIQUIDstep5_OutputFcn(h, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % h handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % Μεταφορά του παραθύρου πάνω και αριστερά movegui('northwest'); % Ορισμός global μεταβλητών global DaysForWaterContentProfiles JULINITIALDATE JULLASTDATE INITIALDATE LASTDATE % Μεταβλητές % INITIALDATE : Αρχική ημερομηνία υπολογισμών (Σε γρηγοριανό ημερολόγιο % π.χ. 30/12/2005) (μορφή char) % LASTDATE : Τελική ημερομηνία υπολογισμών (Σε γρηγοριανό ημερολόγιο % π.χ. 31/12/2005) (μορφή char) % JULINITIALDATE : Αρχική ημερομηνία υπολογισμών (Σε ιουλιανό ημερολόγιο % π.χ. 364) (μορφή double) % JULLASTDATE : Τελική ημερομηνία υπολογισμών (Σε ιουλιανό ημερολόγιο % π.χ. 365) (μορφή double) % DAYSPROFILES1(1,j) : Περιέχει τις ημέρες σε ιουλιανό ημερολόγιο για τις % οποίες ο χρήστης επιθυμεί να δει το εδαφικό προφίλ με j από 1 μέχρι % DaysForWaterContentProfiles % Φορτώνουμε τις μεταβλήτες του LIQUIDvars.mat load LIQUIDvars; % Εμφάνιση στη φόρμα μας τις εξής πληροφορίες % Αρχική και τελική ημερομηνία εξομοίωσης και σε γρηγοριανό ημερολόγιο % (π.χ. 1/5/2005) και σε ιουλιανό ημερολόγιο (δηλαδή 121) % Η μετατροπή της γρηγοριανής ημερομηνίας σε ιουλιανή γίνεται με την % function Gr2Jul INITIALDATE=[num2str(IDIN) ,'/', num2str(IMIN) ,'/', num2str(IYIN)]; LASTDATE=[num2str(IDLAST) ,'/', num2str(IMLAST) ,'/', num2str(IYLAST)]; JULINITIALDATE=Gr2Jul(IDIN,IMIN,IYIN); JULLASTDATE=Gr2Jul(IDLAST,IMLAST,IYLAST); INITIALDATE1=uicontrol('style','text','units','normalized','FontSize',12,'FontWeight','bold','position',[0.17 0.82 0.22 0.04]); set(INITIALDATE1,'String',INITIALDATE); LASTDATE2=uicontrol('style','text','units','normalized','FontSize',12,'FontWeight','bold','position',[0.17 0.75 0.22 0.04]);
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep5.m 3 of 5
set(LASTDATE2,'String',LASTDATE); JULINITIALDATE1=uicontrol('style' ,'text' ,'units','normalized','FontSize',12,'FontWeight','bold','position',[0.66 0.82 0.16 0.04]); set(JULINITIALDATE1,'String',num2str(JULINITIALDATE)); JULLASTDATE1=uicontrol('style','text','units','normalized','FontSize',12,'FontWeight','bold','position',[0.66 0.75 0.16 0.04]); set(JULLASTDATE1,'String',num2str(JULLASTDATE)); % Δημιουργία άδειων text box για την εισαγωγη των DAYSPROFILE for j=1:DaysForWaterContentProfiles DAYSPROFILES(1,j)=uicontrol('style' ,'edit' ,'backgroundcolor','w','units','normalized','position',[0.08 0.67-0.06*j 0.10 0.05]); end handles.DAYSPROFILES = DAYSPROFILES; guidata(h, handles); % --- Executes on button press in BACKTOSTEP4. function BACKTOSTEP4_Callback(h, eventdata, handles) % h handle to BACKTOSTEP4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Πηγαίνει στο Step4 κλείνοντας το παράθυρο closereq; LIQUIDstep4 % --- Executes on button press in NEXTmainmenu. function NEXTmainmenu_Callback(h, eventdata, handles) % h handle to NEXTmainmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Καλεί τις τιμές των μεταβλητών που ορίσαμε ορίσαμε ως global στην αρχή % του προγράμματος global DaysForWaterContentProfiles JULLASTDATE JULINITIALDATE INITIALDATE LASTDATE DAYSPROFILES = handles.DAYSPROFILES; for j=1:DaysForWaterContentProfiles % Ελεγχος για το αν δόθηκε αριθμητική τιμή για το SizeNodalPoints if isempty(isnan(str2num(get(handles.DAYSPROFILES(1,j),'String')))) errordlg(['You must enter a numeric value in date number ' num2str(j)'],'Bad input in Date number'); return ; end % Ελεγχος για το αν η τιμή που δόθηκε βρίσκεται ανάμεσα στην αρχική % και την τελική ημερομονία των υπολογισμών μας if str2num(get(handles.DAYSPROFILES(1,j),'String')) > JULLASTDATE errordlg(['You must enter a value smaller than the last day : ' num2str(JULLASTDATE)],'Bad input in Date number'); return ; end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep5.m 4 of 5
if str2num(get(handles.DAYSPROFILES(1,j),'String')) < JULINITIALDATE errordlg(['You must enter a value greater than the initial day : ' num2str(JULINITIALDATE)],'Bad input in Date number'); return ; end % Αφου πέρασαν επιτυχημένα όλους τους ελέγχους το πρόγραμμα παίρνει τις % τιμές που πληκτρολόγησε ο χρήστης DAYSPROFILES1(1,j) = str2num(get(handles.DAYSPROFILES(1,j),'String')); end % Αποθηκεύει τις τιμές που πήραμε στο αρχειο LIQUIDvars.mat κλείνει το % παράθυρο και προχωρά στο LIQUDstep5 save LIQUIDvars DAYSPROFILES1 JULLASTDATE JULINITIALDATE INITIALDATE LASTDATE -appendclosereq; LIQUIDmenu % --- Executes on button press in EXITTOWINDOWS. function EXITTOWINDOWS_Callback(h, eventdata, handles) % h handle to EXITTOWINDOWS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function ΕΧΙΤΤOWINDOWS κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη % ένα dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' closereq; case 'No' return end % Η function Gr2Jul μετατρέπει την ημερομηνία γρηγοριανού ημερολογίου σε % ιουλιανό.Σας μεταβλητές εισόδου δέχεται τις GrDay,GrMonth,GrYear (ημέρα , % μήνας , χρόνος) κάνει τον έλεγχο για αν το έτος ειναι δίσεκτο και % επιστρέφει την ιουλιανή ημερομηνία μέσω της μεταβλητής εξόδου Julian function [Julian]=Gr2Jul(GrDay,GrMonth,GrYear) Julian=GrDay; MONTH(1)=31; MONTH(3)=31; MONTH(5)=31; MONTH(7)=31; MONTH(8)=31; MONTH(10)=31; MONTH(12)=31; MONTH(4)=30; MONTH(6)=30; MONTH(9)=30; MONTH(11)=30; if rem(GrYear,4)==0 MONTH(2)=29; else MONTH(2)=28;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDstep5.m 5 of 5
end if GrMonth>=2 for j=2:GrMonth Julian=Julian+MONTH(j-1); end end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 1 of 26
function varargout = LIQUIDmenu(varargin) % LIQUIDMENU M-file for LIQUIDmenu.fig % LIQUIDMENU, by itself, creates a new LIQUIDMENU or raises the existing % singleton*. % % H = LIQUIDMENU returns the handle to a new LIQUIDMENU or the handle to % the existing singleton*. % % LIQUIDMENU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LIQUIDMENU.M with the given input arguments. % % LIQUIDMENU('Property','Value',...) creates a new LIQUIDMENU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LIQUIDmenu_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LIQUIDmenu_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LIQUIDmenu % Last Modified by GUIDE v2.5 02-Jan-2005 22:55:06 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LIQUIDmenu_OpeningFcn, ... 'gui_OutputFcn', @LIQUIDmenu_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback' , []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % --- Executes just before LIQUIDmenu is made visible. function LIQUIDmenu_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LIQUIDmenu (see VARARGIN) % Choose default command line output for LIQUIDmenu handles.output = hObject;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 2 of 26
% Update handles structure guidata(hObject, handles); % UIWAIT makes LIQUIDmenu wait for user response (see UIRESUME) % uiwait(handles.LIQUIDmenu); % --- Outputs from this function are returned to the command line. function varargout = LIQUIDmenu_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % Μεταφορά του παραθύρου πάνω και αριστερά movegui('northwest'); % Ορισμός global μεταβλητών global DEPTH Depth DAYSPROFILES1 DaysForWaterContentProfiles Day AK INITIALMOISTURE Y ETR PET SC ROOTDP ALAI YMIN AINTER WCEND ACTPREC POTTRANS POTEVAP ACTEVAP QTP QBT EPSINC CUMACTPREC CUMPOTTRANS CUMPOTEVAP CUMACTEVAP CUMQBT EPSTOT CUMACTTRANS ACTTRANS CUMQTP WaterContent NodalPoints JMAX IDIN IMIN IYIN IDLAST IMLAST IYLAST METHOD1 METHOD2 MAXITER DTPAR1 DTPAR2 ZETA1 DTMIN DT2 DTMAX DT1 FirstNodalPoint1 LastNodalPoint1 LAYER AKS1 THETS1 THETD1 AV1 ANV1 IBBC1 IBBC2 IBBC3 ITBC1 ITBC2 ITBC3 OPT1 OPT2 IRWUT UDFLUX MODUPT1 MODUPT2 PSI1 PSI2 PSI3 SIGMA PETIND1 PETIND2 IPETC IAVER1 IAVER2 IRS1 IRS2 VRATIO OUTPUTFILE1 OUTPUTFILE2 SizeNodalPoints1 InitialY1 JULINITIALDATE DAYSPROFILES1 UNAVAILSW JULINITIALDATE JULLASTDATE INITIALDATE LASTDATE DEPTHVar JMAXVar % Μεταβλητές % Ολες οι παρακάτω μεταβλητές είναι διπλής ακρίβειας και όλοι οι πίνακες % (1,j) είναι μονοδιάστατοι % UNAVAILSW : Unavailable Soil water % Depth(1,j) : Depth of each nodal point (j ==> 1..JMAX) % AK(1,j) : Hydraulic conductivity of unsaturated soil (0..Depth) % INITIALMOISTURE(1,j) : Initial moisture (0..Depth) % Y(1,j) : Negative pressure of the soil water (0..Depth) % ETR(1,j) : Reference crop evapotranspiration (j ==> 1..Number of days) % PET(1,j) : Potential evapotranspiration (j ==> 1..Number of days) % SC(1,j): Soil cover (j ==> 1..Number of days) % ROOTDP(1,j) : Root depth (j ==> 1..Number of days) % ALAI(1,j) : Leaf area index (j ==> 1..Number of days) % YMIN(1,j) : Minimum pressure (j ==> 1..Number of days) % AINTER(1,j) : Intercepted rain (j ==> 1..Number of days) % Day(1,j) : Days in julian calendar (j ==> 1..Number of days) % WCEND(1,j) : Water content at the end of the day (j ==> 1..Number of % days) % ACTPREC(1,j) : Actual precipitation (j ==> 1..Number of days) % POTTRANS(1,j) : Potential transpiration (j ==> 1..Number of days) % ACTTRANS(1,j) : Actual transpiration (j ==> 1..Number of days) % POTEVAP(1,j) : Potential evaporation (j ==> 1..Number of days) % ACTEVAP(1,j) : Actual evaporation (j ==> 1..Number of days) % QTP(1,j) : Flux through top boundary (j ==> 1..Number of days)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 3 of 26
% QBT(1,j) : Flux through bottom boundary (j ==> 1..Number of days) % EPSINC(1,j) : Incremental water balance error (j ==> 1..Number of days) % CUMACTPREC(1,j) : Cumulative actual precipitation (j ==> 1..Number of % days) % CUMPOTTRANS(1,j) : Cumulative potential transpiration (j ==> 1..Number of % days) % CUMACTTRANS(1,j) : Cumulative actual transpiration (j ==> 1..Number of % days) % CUMPOTEVAP(1,j) : Cumulative potential evaporation (j ==> 1..Number of % days) % CUMACTEVAP(1,j) : Cumulative actual evaporation (j ==> 1..Number of days) % CUMQTP(1,j) : Cumulative flux through top boundary (j ==> 1..Number of % days) % CUMQBT(1,j) : Cumulative flux through bottom boundary (j ==> 1..Number of % days) % EPSTOT(1,j) : Cumulative water balance error (j ==> 1..Number of days) % NodalPoints(1,j) : Nodal points number (j ==> 1..JMAX) % WaterContent(k,j) : Water content (k ==> 1..Depth , j ==> 1..Number of % days) % IDTDAY : Σημερινή ημέρα από το ρολόι του υπολογιστή % IΜTDAY : Σημερινός μήνας από το ρολόι του υπολογιστή % IΥTDAY : Σημερινό έτος από το ρολόι του υπολογιστή % ! ! ! NEW VARIABLES --> DEPTHVar : Variable depth , JMAXVar : JMAX % Variable % Φορτώνουμε τις μεταβλήτες του LIQUIDvars.mat load LIQUIDvars; % Εμφανιζει στην οθόνη μας τις ημέρες που θέλουμε προφίλ εδαφικής υγρασίας % και στο γρηγοριανό ημερολόγιο και στο ιουλιανό (π.χ. 31/12/2005(365)) for j=1:DaysForWaterContentProfiles TextWaterContentProfiles(1,j)=uicontrol('style' ,'text' ,'foreground','w','units','normalized','FontSize',10,'position',[0.840.75-0.04*j 0.11 0.04]); active.BackgroundColor = [0.9254901960784314 0.9137254901960784 0.8470588235294118]; active.Enable = 'on'; active.ForegroundColor = [0 0 0]; set(findobj(TextWaterContentProfiles,'Type','uicontrol'),active) set(TextWaterContentProfiles,'HandleVisibility','Callback') [TEMPDAY,TEMPMONTH]=Jul2Gr(DAYSPROFILES1(1,j),IYIN); PrintedDay=[num2str(TEMPDAY) '/' num2str(TEMPMONTH) '/' num2str(IYIN) ' (' num2str(DAYSPROFILES1(1,j)) ')']; set(TextWaterContentProfiles(1,j),'String',PrintedDay); end % Εμφανίζει στην οθόνη μας την αρχική και την τελικλη ημερομηνία % υπολογισμών μας και στο γρηγοριανό ημερολόγιο και στο ιουλιανό % (π.χ. Initial and last date : 30/12/2005 (364) - 31/12/2005 (365)) PrintDates=uicontrol('style','text','foreground','w','units','normalized','FontSize',12,'position',[0.2 0.91 0.5 0.04]); active.BackgroundColor = [0.9254901960784314 0.9137254901960784 0.8470588235294118]; active.Enable = 'on'; active.ForegroundColor = [0 0 0]; set(findobj(PrintDates,'Type','uicontrol'),active) set(PrintDates,'HandleVisibility','Callback') set(PrintDates,'String',['Initial and last date : ' INITIALDATE ' (' num2str
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 4 of 26
(JULINITIALDATE) ') - ' LASTDATE ' (' num2str(JULLASTDATE) ')']); % Παίρνουμε από το ρολόι του υπολογιστή την σημερινή ημερομηνία str = date; [IYTDAY, IMTDAY, IDTDAY, H, MI, S] = datevec(str); % Αρχίζει η εγγραφή στο αρχειο GNDATA (βασικό αρχείο εισαγωγής των % ρυθμίσεων για το SWBACROS % Δομή GNDATA % record #1 : IDIN,IMIN,IYIN % record #2 : IDLAST,IMLAST,IYLAST % record #3 : IDTDAY,IMTDAY,IYTDAY % record #4 : METHOD1 % ή , MAXITER % ΜΕΤΗΟD2 % record #5 : JMAX,DEPTH % record #6 : DT1 DTPAR1 % ή ,DTMIN,DTMAX,ZETA1 , ή % DT2 DTPAR2 % record #7 : LAYER % record #8 : FirstNodalPoint1(1,1),LastNodalPoint1(1,1) % FirstNodalPoint1(1,1),LastNodalPoint1(1,1) % . . % . . % FirstNodalPoint1(1,LAYER),LastNodalPoint1(1,LAYER) % record #9 : AKS1(1,1),THETS1(1,1),THETD1(1,1),AV1(1,1),ANV1(1,1) % AKS1(1,2),THETS1(1,2),THETD1(1,2),AV1(1,2),ANV1(1,2) % . . . . . % . . . . . % AKS1(1,LAYER),THETS1(1,LAYER),THETD1(1,LAYER),AV1(1,LAYER),ANV1(1,LAYER) % record #10: IBBC1,ITBC1 % ή ή % IBBC2,ITBC2 % ή ή % IBBC3,ITBC3 % record #11: UDFLUX1 (το record αυτό χρειάζεται μόνον όταν IBBC3=1) % record #12: OPT1 % ή % OPT2 % record #13: IRWUT % record #14: MODUPT1 % ή (το record αυτό παραλείπεται αν IRWUT=0) % MODUPT2 % record #15: PSI1,PSI2,PSI3 (το record αυτό παραλείπεται αν IRWUT=0) % record #16: SIGMA1 (το record αυτό παραλείπεται αν ITBC2=0) % record #17: PETIND1 % ή IAVER1 IRS1 % PETIND2,ΙPETC, ή , ή % ή IAVER2 IRS2 % PETIND3 (το record αυτό παραλείπεται αν ITBC2=0) % (Το IPETC ,IAVER1,2 , IRS1,2 έχουν λογική μονον όταν το PETIND2 % είναι διαφορετικό από το 1 αλλιώς παρόλο που εμείς βάζουμε % νούμερα διαβάζονται από το SWBACROS αλλά δεν χρησιμοποιούνται % πουθενά) % record #18: VRATIO1 (το record αυτό παραλείπεται αν ITBC2=0) % record #19: OUTPUTFILE1
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 5 of 26
% record #20: OUTPUTFILE2 % record #21: SizeNodalPoints1(1,1) % . % . % SizeNodalPoints1(1,JMAX) % record #22: InitialY1(1,1) % . % . % InitialY1(1,JMAX) fid=fopen('GNDATA','w'); fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDIN,IMIN,IYIN); fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDLAST,IMLAST,IYLAST); fprintf(fid,'%1.0f,%1.0f,%4.0f\n',IDTDAY,IMTDAY,IYTDAY); if (METHOD1==1) fprintf(fid,'%1.0f,%1.0f\n',METHOD1,0); else fprintf(fid,'%1.0f,%1.0f\n',METHOD2+1,MAXITER); end fprintf(fid,'%1.0f,%1.0f\n',JMAX,DEPTH); if (DTPAR1==1) fprintf(fid,'%1.0f,%1.0f,%1.0f,%1.0f,%1.0f\n',DT2,DTMIN,DTMAX,ZETA1,1); else fprintf(fid,'%1.0f,%1.0f,%1.0f,%1.0f,%1.0f\n',DT1,DTMIN,DTMAX,ZETA1,2); end fprintf(fid,'%1.0f\n',LAYER); for i=1:LAYER fprintf(fid,'%1.0f,%1.0f\n',FirstNodalPoint1(i),LastNodalPoint1(i)); end for i=1:LAYER fprintf(fid,'%1.4f,%1.4f,%1.4f,%1.4f,%1.4f\n',AKS1(i),THETS1(i),THETD1(i),AV1(i),ANV1(i)); end if (IBBC1==1) IBBC=1; elseif (IBBC2==1) IBBC=2; else IBBC=3; end if (ITBC1==1) ITBC=1; elseif (ITBC2==1) ITBC=2; else ITBC=3; end
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 6 of 26
fprintf(fid,'%1.0f,%1.0f\n',IBBC,ITBC); if (ITBC==3) fprintf(fid,'%1.4f\n',UDFLUX); end if (OPT1 > OPT2) fprintf(fid,'%1.0f\n',OPT1); else fprintf(fid,'%1.0f\n',OPT2+1); end fprintf(fid,'%1.0f\n',IRWUT); if (IRWUT == 1) if (MODUPT1 > MODUPT2) fprintf(fid,'%1.0f\n',MODUPT1); else fprintf(fid,'%1.0f\n',MODUPT2+1); end fprintf(fid,'%1.0f,%1.0f,%1.4f\n',PSI1,PSI2,PSI3); end if (ITBC==2) fprintf(fid,'%1.0f\n',SIGMA); if (PETIND1==1) PETIND=1; elseif (PETIND3==1) PETIND=1; else PETIND=2; end fprintf(fid,'%1.0f,%1.0f,%1.0f,%1.0f\n',PETIND,IPETC,IAVER1,IRS1); fprintf(fid,'%1.1f\n',VRATIO); end fprintf(fid,'%s\n',OUTPUTFILE1); fprintf(fid,'%s\n',OUTPUTFILE2); fprintf(fid,'%3.3f\n',SizeNodalPoints1); fprintf(fid,'%3.3f\n',InitialY1); status = fclose(fid); % Αφού έχει ολοκληρώσει την εγγραφή στο GNDATA εκτελεί το SWBACROS στο % background (Sink1e.exe) !Sink1e; % Εχοντας το Sink1e ολοκληρώσει τους υπολογισμούς έχει εξάγει το αρχεία από % το οποία το liquid διαβάζει το δεδομένα μέσω της εντολής textread % Σύνταξη textread % Εστω οτι θέλουμε να διαβάσουμε από το αρχείο INPUT.TXT της μεταβλητές % MEGETHOS και XRONOS που βρίσκονται με τη μορφή στηλών μέσα σε αυτό % INPUT.TXT % Μέγεθος Χρόνος % 1 1.4 % 2 2.3 % 3 3.5
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 7 of 26
% 4 3.6 % Το αρχείο αυτό έχει μία γραμμή για επικεφαλίδα και τα δεδομένα που % θέλουμε βρίσκονται σε δύο στήλες και είναι και νούμερα % [MEGETHOS XRONOS]=textread('INPUT.TXT','%f %f','headerlines',1); % Το '%f %f' σημαίνει ότι έχουμε αριθμητικά δεδομένα σε δύο στήλες και το % 'headerlines',1 σημαίνει ότι παραλείπεται η ανάγνωση της πρώτης σειράς % Το περιεχόμενο του MEGETHOS και του XRONOS μετά την εντολή textread θα % είναι MEGETHOS = [1 2 3 4] και XRONOS=[1.4 2.3 3.5 3.6] [Depth AK INITIALMOISTURE Y]=textread('INITSOIL.txt','%f %f %f %f','headerlines',3); [ETR PET]=textread('EVAPOTRANS.txt','%f %f','headerlines',3); [SC ROOTDP ALAI YMIN AINTER]=textread('DAYSCRDetc.txt','%f %f %f %f %f','headerlines',3); [Day WCEND ACTPREC POTTRANS ACTTRANS POTEVAP ACTEVAP QTP QBT EPSINC CUMACTPREC CUMPOTTRANS CUMACTTRANS CUMPOTEVAP CUMACTEVAP CUMQTP CUMQBT EPSTOT]=textread('WATERBAL.txt' ,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f','headerlines',26); NodalPoints=textread('NODAL.txt','%f'); WaterContent=dlmread('PROFILE.txt','%f%[^JMAX]'); [DEPTHVar JMAXVar BOOTLESS]=textread('DEPTHJMAXVar.txt','%f %f %f'); % Μέσα στο ακόλουθο if clause γίνεται αν επιλεγεί από το χρήστη το excel % export των δεδομένων του SWBACROS στο αρχείο % LIQUID(ΑΡΧΙΚΗ ΙΟΥΛΙΑΝΗ ΗΜΕΡΑ)-(ΤΕΛΙΚΗ ΙΟΥΛΙΑΝΗ ΗΜΕΡΑ) % π.χ. LIQUID123-125.xls if (EXCELEXPORT == 1) FileName = ['LIQUID' num2str(JULINITIALDATE) '-' num2str(JULLASTDATE)]; if exist([FileName '.xls']) delete([FileName '.xls']); copyfile('templiquid.xls' ,[FileName '.xls']); end waiting = waitbar(0,'Exporting SWBACROS results in EXCEL file.Please wait...'); Header1='Soil Depth';'(cm)' ; xlswrite(FileName,Header1,'Initial Soil Profile Data'); xlswrite(FileName,Depth,'Initial Soil Profile Data','A3'); Header2='Hydraulic';'conductivity (m/day)'; xlswrite(FileName,Header2,'Initial Soil Profile Data','B1'); xlswrite(FileName,AK,'Initial Soil Profile Data','B3'); Header3='Initial';'moisture'; xlswrite(FileName,Header3,'Initial Soil Profile Data','D1'); xlswrite(FileName,INITIALMOISTURE,'Initial Soil Profile Data','D3'); Header4='Negative pressure';'(m)'; xlswrite(FileName,Header4,'Initial Soil Profile Data','E1'); xlswrite(FileName,Y,'Initial Soil Profile Data','E3'); waitbar(10/100) % Soil cover, Root depth, Leaf area index, Minimum pressure Header5='Julian';'Date'; xlswrite(FileName,Header5,'SC,Root Depth,LAI,Y min'); xlswrite(FileName,Day,'SC,Root Depth,LAI,Y min','A3'); Header6='Soil';'cover';
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 8 of 26
xlswrite(FileName,Header6,'SC,Root Depth,LAI,Y min','B1'); xlswrite(FileName,SC,'SC,Root Depth,LAI,Y min','B3'); Header7='Area Leaf';'index'; xlswrite(FileName,Header7,'SC,Root Depth,LAI,Y min','C1'); xlswrite(FileName,ALAI,'SC,Root Depth,LAI,Y min','C3'); Header8='Minimum' 'pressure (m)'; xlswrite(FileName,Header8','SC,Root Depth,LAI,Y min','D1'); xlswrite(FileName,YMIN,'SC,Root Depth,LAI,Y min','D3'); Header9='Root' 'depth (m)'; xlswrite(FileName,Header9','SC,Root Depth,LAI,Y min','F1'); xlswrite(FileName,ROOTDP,'SC,Root Depth,LAI,Y min','F3'); waitbar(20/100) % Evapotranspiration xlswrite(FileName,Header5,'Evapotranspiration','A1'); xlswrite(FileName,Day,'Evapotranspiration','A3'); Header11='Reference';'evapotranspiration (mm/day)' ; xlswrite(FileName,Header11,'Evapotranspiration','B1'); xlswrite(FileName,ETR,'Evapotranspiration','B3'); Header12='Potential';'evapotranspiration (mm/day)' ; xlswrite(FileName,Header12,'Evapotranspiration','E1'); xlswrite(FileName,PET,'Evapotranspiration','E3'); waitbar(35/100) % Water balance results xlswrite(FileName,Header5,'Water balance results','A1'); xlswrite(FileName,Day,'Water balance results' ,'A3'); Header13='Water content at';'the end of day (cm)'; xlswrite(FileName,Header13,'Water balance results','B1'); xlswrite(FileName,WCEND,'Water balance results','B3'); Header14='Precipitation &';'irrigation (cm)'; xlswrite(FileName,Header14,'Water balance results','D1'); xlswrite(FileName,ACTPREC,'Water balance results','D3'); Header15='Potential';'transpiration (cm)'; xlswrite(FileName,Header15,'Water balance results','F1'); xlswrite(FileName,POTTRANS,'Water balance results','F3'); Header16='Actual';'transpiration (cm)'; xlswrite(FileName,Header16,'Water balance results','H1'); xlswrite(FileName,ACTTRANS,'Water balance results','H3'); Header17='Potential';'evaporation (cm)'; xlswrite(FileName,Header17,'Water balance results','J1'); xlswrite(FileName,POTEVAP,'Water balance results','J3'); Header18='Actual';'evaporation (cm)'; xlswrite(FileName,Header18,'Water balance results','J1'); xlswrite(FileName,ACTEVAP,'Water balance results','J3'); Header19='Flux through';'top boundary (%)';
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 9 of 26
xlswrite(FileName,Header19,'Water balance results','L1'); xlswrite(FileName,QTP,'Water balance results' ,'L3'); Header20='Flux through';'bottom boundary (%)'; xlswrite(FileName,Header20,'Water balance results','N1'); xlswrite(FileName,QBT,'Water balance results' ,'N3'); Header21='Incremental';'error (%)'; xlswrite(FileName,Header21,'Water balance results','P1'); xlswrite(FileName,EPSINC,'Water balance results','P3'); Header22='Cumulative Precipitation';'& irrigation (cm)'; xlswrite(FileName,Header22,'Water balance results','R1'); xlswrite(FileName,CUMACTPREC,'Water balance results','R3'); Header23='Cumulatvive Potential';'transpiration (cm)'; xlswrite(FileName,Header23,'Water balance results','T1'); xlswrite(FileName,CUMPOTTRANS,'Water balance results' ,'T3'); Header24='Cumulative Actual';'transpiration (cm)'; xlswrite(FileName,Header24,'Water balance results','V1'); xlswrite(FileName,ACTTRANS,'Water balance results','V3'); Header25='Cumulative Potential';'evaporation (cm)'; xlswrite(FileName,Header25,'Water balance results','X1'); xlswrite(FileName,CUMPOTEVAP,'Water balance results','X3'); Header26='Cumulative Actual';'evaporation (cm)'; xlswrite(FileName,Header26,'Water balance results','Z1'); xlswrite(FileName,CUMACTEVAP,'Water balance results','Z3'); Header27='Cumulative Flux through';'top boundary (%)'; xlswrite(FileName,Header27,'Water balance results','AB1'); xlswrite(FileName,CUMQTP,'Water balance results','AB3'); Header28='Cumulative Flux through';'bottom boundary (%)'; xlswrite(FileName,Header28,'Water balance results','AD1'); xlswrite(FileName,CUMQBT,'Water balance results','AD3'); Header29='Cumulative water';'balance error (%)'; xlswrite(FileName,Header29,'Water balance results','AF1'); xlswrite(FileName,EPSTOT,'Water balance results','AF3'); waitbar(85/100) LETTERS=['A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';'N';'O';'P';'Q';'R';'S';'T'; Header30='Depth/Day'; xlswrite(FileName,Header30,'Water content profile','A1'); xlswrite(FileName,Day,'Water content profile' ,'A2'); for i=1:JMAX xlswrite(FileName,Depth(i),'Water content profile' ,[LETTERS(i+1) '1']); end xlswrite(FileName,WaterContent,'Water content profile' ,'B2'); waitbar(100/100); close(waiting); msgbox(['LIQUID exported SWBACROS results in ' FileName '.xls' ],'Excel exporting message');
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 10 of 26
end % Ολες οι functions εμφάνισης των γραφικών παραστάσεων των δεδομένων που % ακολουθούν έχουν την ακόλουθη μορφή % global ΜΕΤΑΒΛΗΤΗ1 ΜΕΤΑΒΛΗΤΗ2 % Φορτώνει στη μνήμη το δεδομένα (ΜΕΤΑΒΛΗΤΗ1 και ΜΕΤΑΒΛΗΤΗ2) που θα % παρουσιάσει γραφικά η function % clf % Καθαρίζει την οθόνη % figNmumber=figure('Name','ΟΝΟΜΑ ΓΡΑΦΙΚΗΣ ΠΑΡΑΣΤΑΣΤΗΣ') % Ορίζουμε το όνομα της γραφικής παράστασης που εμφανίζεται στο πάνω % αριστερά μέρος του παράθυρου % hold on % . % . εντολές % . % hold off % Ανάμεσα στις δύο αυτές εντολές hold on / hold off εμφανίζουμε τα δεδομένα % και κάνουμε τις ρυθμίσεις που εμείς επιθυμούμε για την γραφική μας % παράσταση % title(strcat('ΤΙΤΛΟΣ ΓΡΑΦΙΚΗΣ ΠΑΡΑΣΤΑΣΗΣ'),'fontsize',ΜΕΓ.ΓΡΑΜΜΑΤΟΣΕΙΡΑΣ) % Ορισμός του τίτλου (πάνω από το γράφημα) καθώς και του μεγέθους αυτού % set(gca,'YDIR','reverse') % Η εντολή αυτή δεν συναντάται σε όλες τις function. Η εντολή αυτή γυρίζει % τη γωνία με την οποία βλέπουμε κατά 90ο δεξιόστροφα (δες όλες τις % γραφικές που είναι ...perDepth) % plot(ΜΕΤΑΒΛΗΤΗ1,ΜΕΤΑΒΛΗΤΗ1,'R.-') % Η παραπάνω εντολή είναι η βασική μας εντολή μιας και αυτή εμφανίζει τα % στοιχεια μας στον Χ άξονα ==> METAΒΛΗΤΗ1 και στον Y αξονα ==> METAΒΛΗΤΗ2 % To 'R.-' σημαίνει R : κόκκινο χρώμα στη γραμμή, . σημαίνει οτι εμφανίζει % μια τελεία σε κάθε σημείο (ΜΕΤΑΒΛΗΤΗ1(1),ΜΕΤΑΒΛΗΤΗ2(1)) και το - σημαίνει % οτι η γραγμμή είναι συνεχής % ylabel('Ονομα άξονα Υ') % Θέτουμε το όνομα του άξονα Υ % xlabel('Ονομα άξονα X') % Θέτουμε το όνομα του άξονα X % legend('Ονομα υπομνήματος') % Ορίζουμε το όνομα του υπομνήματος % Στην περίπτωση που επιθυμούμε να έχουμε πάνω από μια γραφικές (δες π.χ. % THREEinONE).Χρησιμοποιούμε την εντολή subplot(X,Y,N) η οποία χωρίζει το % παράθυρό μας σε Χ επι Υ γραφικές και κάνει ενεργή τη Ν-ιοστή % --- Executes on button press in DEPTHperAK. function DEPTHperAK_Callback(hObject, eventdata, handles) % hObject handle to DEPTHperAK (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Depth AK clf figNumber=figure('Name' ,'Initial hydraulic conductivity of unsaturated soil'); hold on title(strcat('Initial hydraulic conductivity of unsaturated soil per depth'),'fontsize',20) set(gca,'YDir','reverse') plot(AK,Depth,'R.-')
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 11 of 26
grid on ylabel('Depth (cm)') xlabel('Hydraulic conductivity (m/day)') legend('Hydraulic conductivity (m/day)') hold off % --- Executes on button press in DEPTHperINITIALMOISTURE. function DEPTHperINITIALMOISTURE_Callback(hObject, eventdata, handles) % hObject handle to DEPTHperINITIALMOISTURE (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Depth INITIALMOISTURE clf figNumber=figure('Name' ,'Initial moisture per depth'); hold on title(strcat('Initial moisture'),'fontsize',20) set(gca,'YDir','reverse') plot(100*INITIALMOISTURE,Depth,'R.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial moisture(%)') legend('Initial moisture per depth') hold off % --- Executes on button press in DEPTHperY. function DEPTHperY_Callback(hObject, eventdata, handles) % hObject handle to DEPTHperY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Depth Y clf figNumber=figure('Name' ,'Initial pressure of the soil water'); hold on title(strcat('Initial pressure of the soil water per depth'),'fontsize',20) set(gca,'YDir','reverse') plot(Y,Depth,'G.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial pressure (m)') legend('Initial pressure of the soil water') hold off % --- Executes on button press in THREEinONEINITSOIL. function THREEinONEINITSOIL_Callback(hObject, eventdata, handles) % hObject handle to THREEinONEINITSOIL (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Depth AK INITIALMOISTURE Y clf figNumber=figure('Name' ,'Initial Soil profile'); subplot(3,1,1) hold on
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 12 of 26
title(strcat('Initial hydraulic conductivity of unsaturated soil per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(AK,Depth,'Y.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Hydraulic conductivity (m/day)') legend('Hydraulic conductivity (m/day)') hold off subplot(3,1,2) hold on title(strcat('Initial moisture per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(100*INITIALMOISTURE,Depth,'R.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial moisture(%)') legend('Initial moisture (%)') hold off subplot(3,1,3) hold on title(strcat('Initial pressure of the soil water per depth'),'fontsize',11) set(gca,'YDir','reverse') plot(Y,Depth,'G.-','LineWidth',1) grid on ylabel('Depth (cm)') xlabel('Initial pressure (m)') legend('Initial pressure (m)') hold off % --- Executes on button press in DAYperETR. function DAYperETR_Callback(hObject, eventdata, handles) % hObject handle to DAYperETR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day ETR clf figNumber=figure('Name' ,'Reference crop evapotranspiration'); hold on title(strcat('Reference crop evapotranspiration per day'),'fontsize',20) plot(Day,ETR,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Reference crop evapotranspiration (mm/day)') legend('Reference crop evapotranspiration (mm/day)') hold off % --- Executes on button press in DAYperPET. function DAYperPET_Callback(hObject, eventdata, handles) % hObject handle to DAYperPET (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 13 of 26
global Day PET clf figNumber=figure('Name' ,'Potential evapotranspiration'); hold on title(strcat('Potential evapotranspiration per day'),'fontsize',20) plot(Day,PET,'B*-','LineWidth',1) grid on xlabel('Day') ylabel('Potential evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)') hold off % --- Executes on button press in TWOinONEEVAPOTRANS. function TWOinONEEVAPOTRANS_Callback(hObject, eventdata, handles) % hObject handle to TWOinONEEVAPOTRANS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day ETR PET clf figNumber=figure('Name' ,'Potential and reference crop evapotranspiration'); hold on title(strcat('Potential and Reference crop evapotranspiration per day'),'fontsize',20) plot(Day,PET,'B*-',Day,ETR,'R.-') grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)','Refence crop evapotranspiration (mm/day)') hold off % --- Executes on button press in TWOinONEEVAPOTRANS2. function TWOinONEEVAPOTRANS2_Callback(hObject, eventdata, handles) % hObject handle to TWOinONEEVAPOTRANS2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day PET ETR clf figNumber=figure('Name' ,'Potential and reference crop evapotranspiration'); subplot(2,1,1) hold on title(strcat('Potential evapotranspiration per day'),'fontsize',15) plot(Day,PET,'B*-') grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Potential evapotranspiration (mm/day)') hold off subplot(2,1,2) hold on title(strcat('Reference crop evapotranspiration per day'),'fontsize',15) plot(Day,ETR,'R.-')
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 14 of 26
grid on xlabel('Day') ylabel('Evapotranspiration (mm/day)') legend('Refence crop evapotranspiration (mm/day)') hold off % --- Executes on button press in DAYperSC. function DAYperSC_Callback(hObject, eventdata, handles) % hObject handle to DAYperSC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day SC clf figNumber=figure('Name' ,'Soil Cover'); hold on title(strcat('Soil cover per day'),'fontsize',20) plot(Day,SC,'R.-') grid on xlabel('Day') ylabel('Soil cover (0.0-1.0)') legend('Soil cover per day') hold off % --- Executes on button press in DAYperRD. function DAYperRD_Callback(hObject, eventdata, handles) % hObject handle to DAYperRD (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day ROOTDP clf figNumber=figure('Name' ,'Root depth'); hold on title(strcat('Root depth per day'),'fontsize',20) plot(Day,ROOTDP,'K.-') grid on xlabel('Day') ylabel('Root depth (m)') legend('Root depth (m)') hold off % --- Executes on button press in DAYperALAI. function DAYperALAI_Callback(hObject, eventdata, handles) % hObject handle to DAYperALAI (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day ALAI clf figNumber=figure('Name' ,'Leaf Area Index'); hold on title(strcat('Leaf Area Index per day'),'fontsize',20) plot(Day,ALAI,'b.-') grid on
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 15 of 26
xlabel('Day') ylabel('Leaf Area Index') legend('Leaf Area Index') hold off % --- Executes on button press in DAYperYMIIN. function DAYperYMIIN_Callback(hObject, eventdata, handles) % hObject handle to DAYperYMIIN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day YMIN clf figNumber=figure('Name' ,'Minimum Pressure'); hold on title(strcat('Minimum pressure per day'),'fontsize',20) plot(Day,YMIN,'G.-') grid on xlabel('Day') ylabel('Minimum pressure (m)') legend('Minimum pressure (m)') hold off % --- Executes on button press in FOURinONESCRD. function FOURinONESCRD_Callback(hObject, eventdata, handles) % hObject handle to FOURinONESCRD (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day SC ROOTDP ALAI YMIN clf figNumber=figure('Name' ,'Soil cover , Root Depth , Leaf Area Index , Minimum pressure'); subplot(2,2,1) hold on title(strcat('Soil cover per day'),'fontsize',15) plot(Day,SC,'R.-') grid on xlabel('Day') ylabel('Soil cover (0.0-1.0)') legend('Soil cover per day') hold off subplot(2,2,2) hold on title(strcat('Root depth per day'),'fontsize',15) plot(Day,ROOTDP,'K.-') grid on xlabel('Day') ylabel('Root depth (m)') legend('Root depth (m)') hold off subplot(2,2,3)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 16 of 26
hold on title(strcat('Leaf Area Index per day'),'fontsize',15) plot(Day,ALAI,'C.-') grid on xlabel('Day') ylabel('Leaf Area Index') legend('Leaf Area Index') hold off subplot(2,2,4) hold on title(strcat('Minimum pressure per day'),'fontsize',15) plot(Day,YMIN,'G.-') grid on xlabel('Day') ylabel('Minimum pressure (m)') legend('Minimum pressure (m)') hold off % --- Executes on button press in WCENDperDAY. function WCENDperDAY_Callback(hObject, eventdata, handles) % hObject handle to WCENDperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day WCEND clf figNumber=figure('Name' ,'Water content of the soil profile at the end of the day'); hold on title(strcat('Water content of the soil profile at the end of the day'),'fontsize',20) plot(Day,WCEND,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Water content of the soil profile at the end of the day (cm)') legend('Water content of the soil profile at the end of the day (cm)') hold off % --- Executes on button press in ACTPRECandAINTERperDAY. function ACTPRECandAINTERperDAY_Callback(hObject, eventdata, handles) % hObject handle to ACTPRECandAINTERperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day ACTPREC AINTER clf figNumber=figure('Name' ,'Precipitation / irrigation and intercepted rain per day'); hold on title(strcat('Precipitation / irrigation and intercepted rain per day'),'fontsize',20) bar(Day,ACTPREC,'r') plot(Day,10*AINTER,'--*') grid on xlabel('Day') ylabel('Precipitation and irrigation (cm)') legend('Precipitation and irrigation (cm)','Intercepted rain (cm)' )
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 17 of 26
hold off % --- Executes on button press in TRANSperDAY. function TRANSperDAY_Callback(hObject, eventdata, handles) % hObject handle to TRANSperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day POTTRANS ACTTRANS clf figNumber=figure('Name' ,'Potential and actual transpiration per day'); hold on title(strcat('Potential and actual transpiration (cm) per day'),'fontsize',20) plot(Day,POTTRANS,'R.-',Day,ACTTRANS) grid on xlabel('Day') ylabel('Transpiration (cm)') legend('Potential transpiration (cm)','Actual transpiration (cm)') hold off % --- Executes on button press in EVAPperDAY. function EVAPperDAY_Callback(hObject, eventdata, handles) % hObject handle to EVAPperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day POTEVAP ACTEVAP clf figNumber=figure('Name' ,'Potential and actual evaporation per day'); hold on title(strcat('Potential and actual evaporation per day'),'fontsize',20) plot(Day,POTEVAP,'R.-',Day,ACTEVAP) grid on xlabel('Day') ylabel('Evaporation (cm)') legend('Potential evaporation (cm)','Actual evaporation (cm)') hold off % --- Executes on button press in QTPandQBTperDAY. function QTPandQBTperDAY_Callback(hObject, eventdata, handles) % hObject handle to QTPandQBTperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day QTP QBT clf figNumber=figure('Name' ,'Flux through top and bottom boundary per day'); subplot(2,1,1) hold on title(strcat('Flux through top boundary per day'),'fontsize',18) plot(Day,QTP,'R.-') grid on xlabel('Day') ylabel('Flux through top boundary (cm)')
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 18 of 26
legend('Flux through top boundary (cm)') hold off subplot(2,1,2) hold on title(strcat('Flux through bottom boundary per day'),'fontsize',18) plot(Day,QBT) grid on xlabel('Day') ylabel('Flux through bottom boundary (cm)') legend('Flux through bottom boundary (cm)') hold off % --- Executes on button press in FIVEINONEWATERBALANCE. function FIVEINONEWATERBALANCE_Callback(hObject, eventdata, handles) % hObject handle to FIVEINONEWATERBALANCE (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day WCEND ACTPREC POTTRANS ACTTRANS POTEVAP ACTEVAP QTP QBT AINTER clf figNumber=figure('Name' ,'5 in one Water balance results'); subplot(3,2,1) hold on title(strcat('Water content of the soil profile at the end of the day'),'fontsize',12) plot(Day,WCEND,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Water content at the end of the day (cm)') legend('Water content at the end of the day (cm)') hold off subplot(3,2,2) hold on title(strcat('Precipitation / irrigation and intercepted rain per day'),'fontsize',12) bar(Day,ACTPREC,'r') plot(Day,10*AINTER,'--*') grid on xlabel('Day') ylabel('Precipitation and irrigation (cm)') legend('Precipitation and irrigation (cm)','Intercepted rain (cm)' ) hold off subplot(3,2,3) hold on title(strcat('Potential and actual evaporation per day'),'fontsize',12) plot(Day,POTEVAP,'R.-',Day,ACTEVAP) grid on xlabel('Day') ylabel('Evaporation (cm)') legend('Potential evaporation (cm)','Actual evaporation (cm)') hold off subplot(3,2,4)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 19 of 26
hold on title(strcat('Potential and actual transpiration per day'),'fontsize',12) plot(Day,POTTRANS,'R.-',Day,ACTTRANS) grid on xlabel('Day') ylabel('Transpiration (cm)') legend('Potential transpiration (cm)','Actual transpiration (cm)') hold off subplot(3,2,5) hold on title(strcat('Flux through top boundary per day'),'fontsize',12) plot(Day,QTP,'R.-') grid on xlabel('Day') ylabel('Flux through top boundary (cm)') legend('Flux through top boundary (cm)') hold off subplot(3,2,6) hold on title(strcat('Flux through bottom boundary per day'),'fontsize',12) plot(Day,QBT) grid on xlabel('Day') ylabel('Flux through bottom boundary (cm)') legend('Flux through bottom boundary (cm)') hold off % --- Executes on button press in EPSINCperDAY. function EPSINCperDAY_Callback(hObject, eventdata, handles) % hObject handle to EPSINCperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day EPSINC clf figNumber=figure('Name' ,'Incremental water balance error'); hold on title(strcat('Incremental water balance error (%)'),'fontsize',20) plot(Day,EPSINC,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Incremental water balance error (%)') legend('Incremental water balance error (%)') hold off % --- Executes on button press in EPSTOTperDAY. function EPSTOTperDAY_Callback(hObject, eventdata, handles) % hObject handle to EPSTOTperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day EPSTOT
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 20 of 26
clf figNumber=figure('Name' ,'Cumulative water balance error')'; hold on title(strcat('Cumulative water balance error'),'fontsize',20) plot(Day,EPSTOT,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Cumulative water balance error (%)') legend('Cumulative water balance error (%)') hold off % --- Executes on button press in CUMACTPRECperDAY. function CUMACTPRECperDAY_Callback(hObject, eventdata, handles) % hObject handle to CUMACTPRECperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day CUMACTPREC clf figNumber=figure('Name' ,'Cumulative precipitation and irrigation per day'); hold on title(strcat('Cumulative precipitation and irrigation per day'),'fontsize',20) plot(Day,CUMACTPREC,'R.-','LineWidth',1) grid on xlabel('Day') ylabel('Cumulative precipitation and irrigation (cm)') legend('Cumulative precipitation and irrigation (cm)') hold off % --- Executes on button press in CUMEVAPperDAY. function CUMEVAPperDAY_Callback(hObject, eventdata, handles) % hObject handle to CUMEVAPperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day CUMPOTEVAP CUMACTEVAP clf figNumber=figure('Name' ,'Cumulative potential and actual evaporation per day'); hold on title(strcat('Cumulative potential and actual evaporation per day' ),'fontsize',20) plot(Day,CUMPOTEVAP,'R.-',Day,CUMACTEVAP) grid on xlabel('Day') ylabel('Cumulative evaporation (cm)') legend('Cumulative potential evaporation','Cumulative actual evaporation (cm)') hold off % --- Executes on button press in TWOINONEWATERBALANCEERROR. function TWOINONEWATERBALANCEERROR_Callback(hObject, eventdata, handles) % hObject handle to TWOINONEWATERBALANCEERROR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day EPSINC EPSTOT clf
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 21 of 26
figNumber=figure('Name' ,'Water balance errors'); subplot(2,1,1) hold on title(strcat('Incremental water balance error (%)'),'fontsize',15) plot(Day,EPSINC,'B*-') grid on xlabel('Day') ylabel('Incremental water balance error (%)') legend('Incremental water balance error (%)') hold off subplot(2,1,2) hold on title(strcat('Cumulative water balance error (%)'),'fontsize',15) plot(Day,EPSTOT,'R.-') grid on xlabel('Day') ylabel('Cumulative water balance error (%)') legend('Cumulative water balance error (%)') hold off % --- Executes on button press in FOURINONECUMWATERBAL. function FOURINONECUMWATERBAL_Callback(hObject, eventdata, handles) % hObject handle to FOURINONECUMWATERBAL (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day CUMACTPREC CUMPOTTRANS CUMACTTRANS CUMPOTEVAP CUMACTEVAP CUMQTP CUMQBT clf figNumber=figure('Name' ,'4 in one cumulative water balance results'); subplot(3,2,1) hold on title(strcat('Cumulative precipitation and irrigation per day'),'fontsize',11) plot(Day,CUMACTPREC,'M.-','LineWidth',1) grid on xlabel('Day') ylabel('Cum.precipitation and irrigation (cm)') legend('Cumulative precipitation and irrigation (cm)') hold off subplot(3,2,2) hold on title(strcat('Cumulative potential and actual evaporation per day' ),'fontsize',11) plot(Day,CUMPOTEVAP,'R.-',Day,CUMACTEVAP) grid on xlabel('Day') ylabel('Cum. evaporation (cm)') legend('Cumulative potential evaporation','Cumulative actual evaporation (cm)') hold off subplot(3,2,3) hold on title(strcat('Cumulative potential and actual transpiration'),'fontsize',11) plot(Day,CUMPOTTRANS,'R.-',Day,CUMACTTRANS) grid on
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 22 of 26
xlabel('Day') ylabel('Cum. transpiration (cm)') legend('Cumulative potential transpiration (cm)','Cumulative actual transpiration (cm)') hold off subplot(3,2,4) hold on title(strcat('Cumulative flux through top boundary per day'),'fontsize',11) plot(Day,CUMQTP,'R.-') grid on xlabel('Day') ylabel('Cum. flux through top boundary (cm)') legend('Cumulative flux through top boundary (cm)') hold off subplot(3,2,5) hold on title(strcat('Cum. flux through bottom boundary per day'),'fontsize',11) plot(Day,CUMQBT) grid on xlabel('Day') ylabel('Cum. flux through bottom boundary (cm)') legend('Cumulative flux through bottom boundary (cm)') hold off % --- Executes on button press in CUMTRANSperDAY. function CUMTRANSperDAY_Callback(hObject, eventdata, handles) % hObject handle to CUMTRANSperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day CUMACTTRANS CUMPOTTRANS clf figNumber=figure('Name' ,'Cumulative potential and actual transpiration per day'); hold on title(strcat('Cumulative potential and actual transpiration'),'fontsize',20) plot(Day,CUMPOTTRANS,'R.-',Day,CUMACTTRANS) grid on xlabel('Day') ylabel('Cumulative transpiration (cm)') legend('Cumulative potential transpiration (cm)','Cumulative actual transpiration (cm)') hold off % --- Executes on button press in CUMQTPandQBTperDAY. function CUMQTPandQBTperDAY_Callback(hObject, eventdata, handles) % hObject handle to CUMQTPandQBTperDAY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Day CUMQTP CUMQBT clf figNumber=figure('Name' ,'Cumulative flux through top and bottom boundary per day');
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 23 of 26
subplot(2,1,1) hold on title(strcat('Cumulative flux through top boundary per day'),'fontsize',18) plot(Day,CUMQTP,'R.-') grid on xlabel('Day') ylabel('Cumulative flux through top boundary (cm)') legend('Cumulative flux through top boundary (cm)') hold off subplot(2,1,2) hold on title(strcat('Cumulative flux through bottom boundary per day'),'fontsize',18) plot(Day,CUMQBT) grid on xlabel('Day') ylabel('Cumulative flux through bottom boundary (cm)') legend('Cumulative flux through bottom boundary (cm)') hold off % --- Executes on button press in WC3D. function WC3D_Callback(hObject, eventdata, handles) % hObject handle to WC3D (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function WC3D εμφανίζει μέσω της εντολής surf σε ένα τρισδιάστατο % γράφημα το WaterContent εμφανίζοντας στον Χ αξονα το Depth στον Υ άξονα % το WaterContent (moisture) και Ζ άξονα το Day global WaterContent Depth Day clf figNumber=figure('Name' ,'Water content profile'); hold on title(strcat('Water content profile'),'fontsize',20) surfc(Depth,Day,WaterContent*100) az=-36; el=0; view(az,el); rotate3d on grid on xlabel('Depth of each nodal point (cm)') ylabel('Day') zlabel('Moisture (%)') colorbar hold off % --- Executes on button press in WATERCONTENT. function WATERCONTENT_Callback(hObject, eventdata, handles) % hObject handle to WATERCONTENT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Depth WaterContent Day JULINITIALDATE DaysForWaterContentProfiles DAYSPROFILES1 UNAVAILSW JMAX IYIN DEPTH THETS1 LAYER LastNodalPoint1 DEPTHVar JMAXVar clf
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 24 of 26
for temp=1:DaysForWaterContentProfiles clear TEMP_JMAX TEMP_DEPTH TEMP_UNAVAILSW TEMP_THETAS TEMP_JMAX=JMAXVar(DAYSPROFILES1(temp)-JULINITIALDATE+1); TEMP_UNAVAILSW(1:TEMP_JMAX)= UNAVAILSW; temporary=1; for i=1:TEMP_JMAX if LastNodalPoint1(temporary) < i temporary=temporary+1; end TEMP_THETAS(i)=THETS1(temporary); end figNumber=figure('Name','Water Content profile'); TEMP_WC=WaterContent((DAYSPROFILES1(temp)-JULINITIALDATE+1),1:TEMP_JMAX); plot(TEMP_WC*100,Depth(1:TEMP_JMAX),'b.-',TEMP_UNAVAILSW,Depth(1:TEMP_JMAX),'k.--',100*TEMP_THETAS(1:TEMP_JMAX),Depth(1:TEMP_JMAX),'r.--' ); [TEMPDAY,TEMPMONTH]=Jul2Gr(DAYSPROFILES1(temp),IYIN); PrintedDate=[num2str(TEMPDAY) '/' num2str(TEMPMONTH) '/' num2str(IYIN)]; title(['Water content profile at : ' PrintedDate ' (' num2str(DAYSPROFILES1(temp)) ' day)'],'fontsize',18); grid on ylabel('Depth (cm)'); set(gca,'YDir','reverse'); xlabel('Moisture (%)'); legend('Moisture','Unavailable Soil water','Maximum moisture content'); end % Οι επόμενες πέντε function εμφανίζουν μέσω το notepad (Σημειωματάριο των % Windows) τα 5 αρχεία δεδομένων (INITSOIL.TXT , EVAPOTRANS.TXT , % DAYSCRDetc.TXT , PROFILE.TXT και το WATERBAL.TXT) % --- Executes on button press in VIEWINITSOIL. function VIEWINITSOIL_Callback(hObject, eventdata, handles) % hObject handle to VIEWINITSOIL (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) !notepad INITSOIL.TXT % --- Executes on button press in VIEWEVAPOTRANS. function VIEWEVAPOTRANS_Callback(hObject, eventdata, handles) % hObject handle to VIEWEVAPOTRANS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) !notepad EVAPOTRANS.TXT % --- Executes on button press in VIEWSCRDetc. function VIEWSCRDetc_Callback(hObject, eventdata, handles) % hObject handle to VIEWSCRDetc (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 25 of 26
!notepad DAYSCRDetc.TXT % --- Executes on button press in VIEWCONTENTPROFILE. function VIEWCONTENTPROFILE_Callback(hObject, eventdata, handles) % hObject handle to VIEWCONTENTPROFILE (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) !notepad PROFILE.TXT % --- Executes on button press in VIEWWATERBAL. function VIEWWATERBAL_Callback(hObject, eventdata, handles) % hObject handle to VIEWWATERBAL (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) !notepad WATERBAL.TXT % --- Executes on button press in BACKTOSTEP5. function BACKTOSTEP5_Callback(hObject, eventdata, handles) % hObject handle to BACKTOSTEP5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Πηγαίνει στο Step5 κλείνοντας το παράθυρο close all; LIQUIDstep5 % --- Executes on button press in FINALEXIT. function FINALEXIT_Callback(hObject, eventdata, handles) % hObject handle to FINALEXIT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Η function FINALEXIT κλείνει το liquid εμφανίζοντας πρώτα στην οθόνη % ένα dialog box ρωτώντας Yes ή No στην ερώτηση εξόδου από το liquid exit=questdlg('Exit Liquid?','Exit LIQUID','Yes','No','No'); switch exit case 'Yes' close all; case 'No' return end % Η function Gr2Jul μετατρέπει την ημερομηνία γρηγοριανού ημερολογίου σε % ιουλιανό.Σας μεταβλητές εισόδου δέχεται τις GrDay,GrMonth,GrYear (ημέρα , % μήνας , χρόνος) κάνει τον έλεγχο για αν το έτος ειναι δίσεκτο και % επιστρέφει την ιουλιανή ημερομηνία μέσω της μεταβλητής εξόδου Julian function [GrDay,GrMonth]=Jul2Gr(Julian,GrYear) TEMPDay=Julian;
C:\LIQUID0.7\LIQUID (m files)\LIQUIDmenu.m 26 of 26
MONTH(1)=31; MONTH(3)=31; MONTH(5)=31; MONTH(7)=31; MONTH(8)=31; MONTH(10)=31; MONTH(12)=31; MONTH(4)=30; MONTH(6)=30; MONTH(9)=30; MONTH(11)=30; if rem(GrYear,4)==0 MONTH(2)=29; else MONTH(2)=28; end TEMPMonth=1; while TEMPDay > MONTH(TEMPMonth) TEMPDay= TEMPDay - MONTH(TEMPMonth); TEMPMonth = TEMPMonth+1; end GrDay = TEMPDay; GrMonth = TEMPMonth;
c:\LIQUID0.7\LIQUID (m files)\DAYSCRDetc.txt 1 of 2
SC ROOTDP ALAI YMIN AINTER (M) (M) (MM/DAY) 0.00 0.00 0.00 -7395. 0.00 0.00 0.00 0.00 -8266. 0.00 0.00 0.00 0.00 -3285. 0.00 0.00 0.00 0.00 -4895. 0.00 0.00 0.00 0.00 -7870. 0.00 0.10 0.05 0.00 -9414. 0.00 0.10 0.05 0.00 -8105. 0.00 0.10 0.06 0.00 -8442. 0.00 0.10 0.06 0.00 -6816. 0.00 0.10 0.07 0.00 -7747. 0.00 0.10 0.07 0.00 -9830. 0.00 0.10 0.07 0.00 -10507. 0.00 0.10 0.08 0.00 -3795. 0.00 0.10 0.08 0.00 -4916. 0.00 0.20 0.09 0.00 -7612. 0.00 0.20 0.09 0.00 -10981. 0.00 0.20 0.10 0.00 -11555. 0.00 0.20 0.10 0.00 -10777. 0.00 0.20 0.11 0.00 -9820. 0.00 0.20 0.11 0.00 -5051. 0.00 0.20 0.12 0.00 -3505. 0.00 0.20 0.12 0.00 -3862. 0.00 0.20 0.13 0.00 -6635. 0.00 0.20 0.13 0.00 -8036. 0.00 0.20 0.14 0.00 -11918. 0.00 0.20 0.14 0.00 -16384. 0.00 0.20 0.15 0.20 -13184. 0.00 0.20 0.15 0.20 -11006. 0.00 0.20 0.16 0.20 -5096. 0.00 0.20 0.16 0.20 -1144. 0.00 0.20 0.17 0.20 -3396. 0.00 0.20 0.17 0.20 -7496. 0.00 0.20 0.18 0.20 -8286. 0.00 0.20 0.18 0.20 -3345. 0.00 0.20 0.19 0.20 -5068. 0.00 0.20 0.19 0.20 -8084. 0.00 0.20 0.20 0.20 -9649. 0.00 0.20 0.21 0.20 -8388. 0.00 0.20 0.22 0.20 -8715. 0.00 0.20 0.23 0.21 -7068. 0.00 0.20 0.24 0.21 -7972. 0.00 0.30 0.25 0.22 -10076. 0.00 0.30 0.26 0.23 -10750. 0.00 0.30 0.27 0.23 -3917. 0.00 0.30 0.28 0.24 -5061. 0.00 0.30 0.29 0.25 -7674. 0.00 0.30 0.30 0.26 -11078. 0.00 0.30 0.31 0.28 -11602. 0.00 0.30 0.32 0.29 -10840. 0.00 0.30 0.33 0.30 -9880. 0.00 0.30 0.34 0.32 -5105. 0.00 0.40 0.35 0.33 -3600. 0.00 0.40 0.36 0.35 -3964. 0.00
c:\LIQUID0.7\LIQUID (m files)\DAYSCRDetc.txt 2 of 2
0.40 0.37 0.36 -6752. 0.00 0.40 0.38 0.38 -8147. 0.00 0.40 0.39 0.40 -11962. 0.00 0.40 0.40 0.42 -16362. 0.00 0.40 0.41 0.44 -13074. 0.00 0.40 0.42 0.46 -11133. 0.00 0.40 0.43 0.48 -5155. 0.00 0.40 0.44 0.50 -1191. 0.00 0.50 0.45 0.53 -13314. 0.00 0.50 0.46 0.55 -14134. 0.00 0.50 0.47 0.58 -13226. 0.00 0.50 0.48 0.60 -13851. 0.00 0.50 0.49 0.63 -18695. 0.00 0.50 0.50 0.65 -13210. 0.00 0.50 0.51 0.68 -11844. 0.00 0.50 0.52 0.71 -12565. 0.00 0.50 0.53 0.74 -12690. 0.00 0.50 0.54 0.77 -10423. 0.00 0.60 0.55 0.80 -13194. 0.00 0.60 0.56 0.84 -12753. 0.00 0.60 0.57 0.87 -10832. 0.00 0.60 0.58 0.90 -5118. 0.00 0.60 0.59 0.94 -6370. 0.00 0.60 0.60 0.97 -7780. 0.00 0.60 0.61 1.01 -8680. 0.00 0.60 0.62 1.05 -10762. 0.00 0.60 0.63 1.08 -10457. 0.00 0.60 0.64 1.12 -9556. 0.00 0.70 0.65 1.16 -11145. 0.00 0.70 0.66 1.20 -13150. 0.00 0.70 0.67 1.24 -14178. 0.00 0.70 0.68 1.29 -12225. 0.00 0.70 0.69 1.33 -11523. 0.00 0.80 0.70 1.37 -10891. 0.00 0.80 0.70 1.42 -7862. 0.00 0.80 0.70 1.46 -5851. 0.00 0.90 0.70 1.51 -42089. 0.00 0.90 0.70 1.56 -8721. 0.00 0.90 0.70 1.60 -10440. 0.00 0.90 0.70 1.65 -11352. 0.00 0.90 0.70 1.70 -9893. 0.00 0.90 0.70 1.75 -9984. 0.00 0.90 0.70 1.80 -7345. 0.00 0.90 0.70 1.86 -5952. 0.00 0.90 0.70 1.91 -7243. 0.00 0.90 0.70 1.96 -8776. 0.00 0.90 0.70 2.02 -9760. 0.00 0.90 0.70 2.07 -8528. 0.00
c:\LIQUID0.7\LIQUID (m files)\DEPTHJMAXVAR.txt 1 of 2
1.00 20 100 1.00 20 101 1.00 20 102 1.00 20 103 1.00 20 104 1.00 20 105 1.00 20 106 1.00 20 107 1.00 20 108 1.00 20 109 1.00 20 110 1.00 20 111 1.00 20 112 1.00 20 113 1.00 20 114 1.00 20 115 1.00 20 116 1.00 20 117 1.00 20 118 1.00 20 119 1.00 20 120 1.00 20 121 1.00 20 122 1.00 20 123 1.00 20 124 1.00 20 125 1.00 20 126 1.00 20 127 1.00 20 128 1.00 20 129 1.00 20 130 1.00 20 131 1.00 20 132 1.00 20 133 1.00 20 134 1.00 20 135 1.00 20 136 1.00 20 137 1.00 20 138 1.00 20 139 1.00 20 140 1.00 20 141 1.00 20 142 1.00 20 143 1.00 20 144 1.00 20 145 1.00 20 146 1.00 20 147 1.00 20 148 1.00 20 149 1.00 20 150 1.00 20 151 1.00 20 152 1.00 20 153 1.00 20 154 1.00 20 155
c:\LIQUID0.7\LIQUID (m files)\DEPTHJMAXVAR.txt 2 of 2
1.00 20 156 1.00 20 157 1.00 20 158 1.00 20 159 1.00 20 160 1.00 20 161 1.00 20 162 1.00 20 163 1.00 20 164 1.00 20 165 1.00 20 166 1.00 20 167 1.00 20 168 1.00 20 169 1.00 20 170 1.00 20 171 1.00 20 172 1.00 20 173 1.00 20 174 1.00 20 175 1.00 20 176 1.00 20 177 1.00 20 178 1.00 20 179 1.00 20 180 1.00 20 181 1.00 20 182 1.00 20 183 1.00 20 184 1.00 20 185 1.00 20 186 1.00 20 187 1.00 20 188 1.00 20 189 1.00 20 190 1.00 20 191 1.00 20 192 1.00 20 193 1.00 20 194 1.00 20 195 1.00 20 196 1.00 20 197 1.00 20 198 1.00 20 199 1.00 20 200
c:\LIQUID0.7\LIQUID (m files)\EVAPOTRANS.txt 1 of 2
REFERENCE AND POTENTIAL EVAPOTRANSPIRATION (MM/DAY) ETR PET 3.78 2.83 4.81 3.61 2.77 2.08 3.80 2.85 4.49 3.36 4.19 3.14 5.12 3.84 4.93 3.69 4.16 3.12 4.97 3.73 5.30 3.97 3.00 2.25 2.87 2.15 2.66 2.00 5.99 4.49 6.21 4.66 5.85 4.39 5.38 4.03 5.76 4.32 5.88 4.41 2.76 2.07 3.77 2.83 6.58 4.93 6.72 5.04 5.31 3.98 6.96 5.22 6.87 5.15 7.65 5.74 4.89 3.67 2.01 1.51 3.04 2.28 5.43 4.34 4.95 3.96 2.95 2.36 5.83 4.67 6.84 5.47 5.96 4.77 7.79 6.24 7.71 6.17 7.18 5.74 6.47 5.17 8.31 6.65 5.10 4.08 4.25 3.40 4.05 3.24 7.02 5.62 7.03 5.62 6.52 5.22 6.50 5.20 6.46 5.17 5.58 4.46 3.64 2.92 4.96 3.97
c:\LIQUID0.7\LIQUID (m files)\EVAPOTRANS.txt 2 of 2
7.30 5.84 7.79 6.23 8.98 7.18 9.57 7.65 7.47 5.97 7.49 5.99 4.54 3.63 2.72 2.72 7.17 7.17 8.23 8.23 8.70 8.70 8.09 8.09 10.83 10.83 8.91 8.91 9.81 9.81 5.84 5.84 8.85 8.85 6.97 6.97 7.83 7.83 9.20 9.20 5.17 5.17 4.08 4.08 5.68 5.68 7.48 7.48 7.15 7.15 7.46 7.46 8.15 8.15 7.48 7.48 6.78 6.78 7.38 7.38 7.65 7.65 7.43 7.43 7.61 7.61 7.70 7.70 8.72 8.72 6.26 6.26 6.47 6.47 7.37 7.37 7.29 7.29 8.22 8.22 6.96 6.96 6.67 6.67 7.22 7.22 6.22 6.22 6.96 6.96 7.03 7.03 6.90 6.90 7.89 7.89
c:\LIQUID0.7\LIQUID (m files)\INITSOIL.txt 1 of 1
INITIAL SOIL PROFILE DATA DEPTH(CM) AK(M/DAY) INITIAL MOISTURE Y (M) 2.5 0.3216E-04 0.3383E+00 -7.400 7.5 0.3216E-04 0.3383E+00 -7.400 12.5 0.3216E-04 0.3383E+00 -7.400 17.5 0.3216E-04 0.3383E+00 -7.400 22.5 0.3216E-04 0.3383E+00 -7.400 27.5 0.3216E-04 0.3383E+00 -7.400 32.5 0.3216E-04 0.3383E+00 -7.400 37.5 0.3216E-04 0.3383E+00 -7.400 42.5 0.6264E-05 0.3603E+00 -5.580 47.5 0.6264E-05 0.3603E+00 -5.580 52.5 0.6264E-05 0.3603E+00 -5.580 57.5 0.6264E-05 0.3603E+00 -5.580 62.5 0.3230E-06 0.2878E+00 -8.096 67.5 0.3230E-06 0.2878E+00 -8.096 72.5 0.3230E-06 0.2878E+00 -8.096 77.5 0.3230E-06 0.2878E+00 -8.096 82.5 0.6384E-09 0.2593E+00 -35.800 87.5 0.6384E-09 0.2593E+00 -35.800 92.5 0.6384E-09 0.2593E+00 -35.800 97.5 0.6384E-09 0.2593E+00 -35.800
c:\LIQUID0.7\LIQUID (m files)\NODAL.txt 1 of 1
1 2.500 2 7.500 3 12.500 4 17.500 5 22.500 6 27.500 7 32.500 8 37.500 9 42.500 10 47.500 11 52.500 12 57.500 13 62.500 14 67.500 15 72.500 16 77.500 17 82.500 18 87.500 19 92.500 20 97.500
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
1 of 6
0.320 0.331 0.336 0.338 0.338 0.339 0.340 0.342 0.355 0.360 0.360 0.359 0.289 0.288 0.288 0.288
0.259 0.259 0.259 0.259
0.297 0.322 0.331 0.335 0.338 0.339 0.341 0.343 0.353 0.359 0.360 0.358 0.290 0.288 0.288 0.288
0.260 0.259 0.259 0.259
0.284 0.314 0.326 0.332 0.336 0.339 0.341 0.342 0.352 0.358 0.359 0.358 0.291 0.288 0.288 0.287
0.260 0.259 0.259 0.259
0.273 0.308 0.322 0.330 0.334 0.338 0.340 0.342 0.351 0.357 0.358 0.357 0.292 0.288 0.288 0.287
0.260 0.259 0.259 0.259
0.264 0.304 0.319 0.327 0.333 0.336 0.339 0.341 0.350 0.356 0.358 0.357 0.293 0.288 0.288 0.287
0.260 0.259 0.259 0.259
0.256 0.300 0.316 0.325 0.331 0.335 0.338 0.340 0.349 0.355 0.357 0.356 0.294 0.288 0.288 0.287
0.260 0.259 0.259 0.259
0.249 0.297 0.313 0.323 0.329 0.333 0.337 0.339 0.348 0.354 0.357 0.356 0.294 0.288 0.288 0.287
0.260 0.259 0.259 0.259
0.242 0.294 0.311 0.321 0.327 0.332 0.335 0.338 0.347 0.354 0.356 0.355 0.295 0.289 0.288 0.287
0.261 0.259 0.259 0.259
0.235 0.292 0.309 0.319 0.326 0.331 0.334 0.336 0.346 0.353 0.355 0.355 0.295 0.289 0.288 0.287
0.261 0.259 0.259 0.259
0.229 0.290 0.307 0.317 0.324 0.329 0.333 0.335 0.345 0.352 0.355 0.355 0.295 0.289 0.288 0.287
0.261 0.259 0.259 0.259
0.222 0.289 0.306 0.316 0.323 0.328 0.332 0.334 0.344 0.351 0.354 0.354 0.296 0.289 0.288 0.286
0.261 0.259 0.259 0.259
0.216 0.287 0.304 0.314 0.322 0.327 0.330 0.333 0.343 0.351 0.354 0.354 0.296 0.289 0.288 0.286
0.261 0.259 0.259 0.259
0.233 0.286 0.303 0.313 0.320 0.325 0.329 0.332 0.342 0.350 0.353 0.354 0.296 0.289 0.288 0.286
0.261 0.259 0.259 0.259
0.237 0.285 0.302 0.312 0.319 0.324 0.328 0.331 0.341 0.349 0.353 0.353 0.296 0.289 0.288 0.286
0.261 0.259 0.259 0.259
0.230 0.284 0.300 0.311 0.318 0.323 0.327 0.330 0.340 0.348 0.352 0.353 0.297 0.290 0.288 0.286
0.262 0.259 0.259 0.259
0.224 0.282 0.299 0.310 0.317 0.322 0.326 0.329 0.339 0.348 0.352 0.352 0.297 0.290 0.288 0.286
0.262 0.259 0.259 0.259
0.476 0.464 0.446 0.412 0.348 0.324 0.325 0.328 0.338 0.347 0.351 0.352 0.297 0.290 0.288 0.286
0.262 0.259 0.259 0.259
0.388 0.395 0.397 0.394 0.387 0.376 0.360 0.345 0.339 0.346 0.351 0.352 0.297 0.290 0.288 0.286
0.262 0.259 0.259 0.259
0.374 0.379 0.381 0.381 0.378 0.374 0.368 0.363 0.351 0.347 0.350 0.351 0.297 0.290 0.288 0.286
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
2 of 6
0.262 0.259 0.259 0.259
0.389 0.385 0.382 0.378 0.376 0.373 0.370 0.366 0.362 0.349 0.350 0.351 0.297 0.290 0.288 0.285
0.262 0.259 0.259 0.259
0.388 0.386 0.383 0.380 0.377 0.374 0.371 0.369 0.368 0.352 0.350 0.351 0.297 0.290 0.288 0.285
0.262 0.259 0.259 0.259
0.408 0.401 0.394 0.387 0.382 0.378 0.374 0.372 0.372 0.355 0.351 0.351 0.297 0.290 0.288 0.285
0.263 0.259 0.259 0.259
0.382 0.386 0.387 0.386 0.384 0.382 0.379 0.376 0.377 0.359 0.352 0.351 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.373 0.377 0.380 0.381 0.381 0.380 0.379 0.378 0.381 0.362 0.353 0.351 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.366 0.371 0.375 0.377 0.378 0.378 0.378 0.378 0.383 0.366 0.355 0.351 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.361 0.367 0.370 0.373 0.375 0.376 0.377 0.377 0.383 0.368 0.357 0.352 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.353 0.359 0.364 0.369 0.372 0.373 0.374 0.375 0.382 0.370 0.358 0.353 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.346 0.353 0.359 0.364 0.368 0.370 0.372 0.373 0.380 0.370 0.360 0.354 0.297 0.291 0.288 0.285
0.263 0.259 0.259 0.259
0.354 0.355 0.358 0.361 0.365 0.367 0.369 0.370 0.379 0.371 0.361 0.355 0.297 0.291 0.288 0.285
0.264 0.259 0.259 0.259
0.484 0.479 0.472 0.462 0.447 0.425 0.400 0.382 0.378 0.371 0.362 0.356 0.297 0.291 0.288 0.285
0.264 0.259 0.259 0.259
0.444 0.444 0.443 0.442 0.440 0.438 0.435 0.432 0.437 0.384 0.364 0.357 0.298 0.291 0.288 0.285
0.264 0.259 0.259 0.259
0.420 0.424 0.426 0.428 0.430 0.431 0.431 0.431 0.448 0.410 0.373 0.359 0.298 0.291 0.288 0.285
0.264 0.259 0.259 0.259
0.409 0.413 0.417 0.420 0.422 0.424 0.425 0.425 0.443 0.420 0.386 0.364 0.299 0.291 0.288 0.285
0.264 0.259 0.259 0.259
0.403 0.407 0.411 0.413 0.416 0.418 0.419 0.420 0.438 0.422 0.396 0.371 0.300 0.292 0.288 0.284
0.264 0.259 0.259 0.259
0.396 0.401 0.404 0.407 0.410 0.412 0.414 0.415 0.432 0.420 0.401 0.379 0.301 0.292 0.288 0.284
0.264 0.259 0.259 0.259
0.390 0.395 0.399 0.402 0.405 0.408 0.410 0.411 0.427 0.418 0.403 0.385 0.304 0.292 0.288 0.284
0.265 0.259 0.259 0.259
0.386 0.390 0.394 0.397 0.400 0.403 0.405 0.407 0.423 0.416 0.404 0.390 0.306 0.292 0.288 0.284
0.265 0.259 0.259 0.259
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
3 of 6
0.380 0.385 0.389 0.393 0.396 0.399 0.401 0.403 0.418 0.414 0.405 0.393 0.309 0.293 0.288 0.284
0.265 0.259 0.259 0.259
0.375 0.380 0.385 0.388 0.392 0.395 0.397 0.399 0.414 0.412 0.405 0.396 0.312 0.293 0.288 0.284
0.265 0.259 0.259 0.259
0.371 0.376 0.381 0.384 0.388 0.391 0.394 0.396 0.410 0.409 0.404 0.397 0.315 0.294 0.288 0.284
0.265 0.259 0.259 0.259
0.367 0.372 0.377 0.381 0.384 0.388 0.390 0.392 0.407 0.407 0.403 0.397 0.317 0.294 0.288 0.284
0.265 0.259 0.259 0.259
0.362 0.368 0.373 0.377 0.380 0.384 0.387 0.389 0.403 0.405 0.402 0.398 0.320 0.295 0.288 0.284
0.265 0.259 0.259 0.259
0.359 0.365 0.370 0.374 0.378 0.381 0.384 0.386 0.400 0.403 0.401 0.398 0.321 0.296 0.288 0.284
0.266 0.259 0.259 0.259
0.368 0.368 0.370 0.373 0.376 0.378 0.381 0.383 0.397 0.401 0.400 0.397 0.323 0.297 0.288 0.284
0.266 0.259 0.259 0.259
0.365 0.367 0.370 0.372 0.374 0.377 0.379 0.381 0.395 0.399 0.399 0.397 0.324 0.298 0.289 0.284
0.266 0.259 0.259 0.259
0.357 0.362 0.366 0.369 0.372 0.375 0.377 0.379 0.392 0.397 0.398 0.396 0.325 0.299 0.289 0.284
0.266 0.259 0.259 0.259
0.487 0.484 0.478 0.470 0.459 0.443 0.422 0.403 0.395 0.395 0.397 0.396 0.326 0.300 0.289 0.284
0.266 0.259 0.259 0.259
0.422 0.428 0.432 0.435 0.436 0.437 0.437 0.437 0.455 0.417 0.399 0.395 0.326 0.300 0.289 0.284
0.266 0.259 0.259 0.259
0.412 0.416 0.420 0.423 0.425 0.427 0.428 0.430 0.450 0.432 0.411 0.398 0.327 0.301 0.289 0.284
0.266 0.259 0.259 0.259
0.406 0.410 0.413 0.416 0.418 0.420 0.422 0.423 0.443 0.433 0.418 0.405 0.328 0.302 0.290 0.284
0.266 0.259 0.259 0.259
0.419 0.418 0.417 0.417 0.417 0.418 0.418 0.420 0.438 0.431 0.421 0.410 0.330 0.303 0.290 0.284
0.267 0.259 0.259 0.259
0.418 0.418 0.418 0.418 0.418 0.418 0.419 0.420 0.437 0.431 0.422 0.414 0.333 0.304 0.290 0.284
0.267 0.259 0.259 0.259
0.432 0.429 0.427 0.425 0.423 0.422 0.421 0.421 0.438 0.431 0.424 0.416 0.335 0.305 0.290 0.284
0.267 0.259 0.259 0.259
0.411 0.414 0.416 0.418 0.419 0.420 0.421 0.422 0.440 0.433 0.425 0.419 0.338 0.306 0.291 0.284
0.267 0.259 0.259 0.259
0.402 0.406 0.408 0.411 0.413 0.415 0.416 0.418 0.437 0.433 0.427 0.421 0.340 0.308 0.291 0.284
0.267 0.259 0.259 0.259
0.395 0.398 0.402 0.404 0.407 0.409 0.411 0.412 0.432 0.431 0.427 0.422 0.342 0.309 0.291 0.284
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
4 of 6
0.267 0.259 0.259 0.259
0.388 0.392 0.395 0.398 0.401 0.403 0.405 0.407 0.425 0.428 0.426 0.423 0.344 0.311 0.292 0.284
0.267 0.259 0.259 0.259
0.383 0.387 0.390 0.393 0.396 0.398 0.400 0.402 0.419 0.424 0.425 0.423 0.346 0.312 0.292 0.284
0.268 0.259 0.259 0.259
0.377 0.381 0.385 0.388 0.391 0.393 0.396 0.398 0.414 0.421 0.423 0.422 0.347 0.314 0.293 0.284
0.268 0.259 0.259 0.259
0.382 0.383 0.384 0.386 0.388 0.390 0.393 0.394 0.411 0.418 0.420 0.420 0.347 0.316 0.293 0.284
0.268 0.259 0.259 0.259
0.487 0.484 0.480 0.474 0.466 0.456 0.443 0.432 0.422 0.416 0.419 0.419 0.347 0.317 0.294 0.284
0.268 0.259 0.259 0.259
0.428 0.433 0.437 0.440 0.443 0.444 0.445 0.446 0.472 0.446 0.426 0.420 0.347 0.318 0.295 0.284
0.268 0.259 0.259 0.259
0.416 0.420 0.424 0.427 0.429 0.432 0.433 0.435 0.460 0.449 0.437 0.427 0.348 0.319 0.295 0.285
0.268 0.259 0.259 0.259
0.405 0.410 0.414 0.417 0.419 0.422 0.424 0.425 0.448 0.444 0.439 0.432 0.350 0.321 0.296 0.285
0.268 0.259 0.259 0.259
0.493 0.492 0.491 0.490 0.488 0.485 0.483 0.480 0.512 0.457 0.440 0.434 0.353 0.322 0.297 0.285
0.268 0.259 0.259 0.259
0.444 0.449 0.453 0.456 0.459 0.462 0.464 0.466 0.512 0.503 0.486 0.464 0.359 0.324 0.298 0.285
0.269 0.259 0.259 0.259
0.433 0.437 0.441 0.444 0.447 0.449 0.452 0.454 0.492 0.490 0.485 0.479 0.376 0.327 0.298 0.285
0.269 0.259 0.259 0.259
0.423 0.427 0.430 0.434 0.436 0.439 0.442 0.444 0.477 0.479 0.479 0.478 0.387 0.333 0.300 0.285
0.269 0.259 0.259 0.259
0.416 0.420 0.424 0.427 0.430 0.432 0.435 0.437 0.467 0.471 0.473 0.474 0.390 0.339 0.301 0.286
0.269 0.259 0.259 0.259
0.408 0.412 0.415 0.418 0.421 0.424 0.427 0.429 0.456 0.462 0.465 0.468 0.389 0.345 0.303 0.286
0.269 0.259 0.259 0.259
0.401 0.405 0.409 0.412 0.415 0.418 0.420 0.423 0.447 0.454 0.459 0.463 0.387 0.349 0.305 0.286
0.269 0.259 0.259 0.259
0.394 0.398 0.402 0.405 0.408 0.411 0.414 0.416 0.439 0.446 0.451 0.455 0.383 0.352 0.308 0.287
0.269 0.259 0.259 0.259
0.386 0.390 0.394 0.397 0.401 0.403 0.406 0.409 0.429 0.438 0.443 0.447 0.378 0.354 0.310 0.287
0.270 0.259 0.259 0.259
0.380 0.385 0.389 0.392 0.396 0.398 0.401 0.404 0.423 0.432 0.438 0.442 0.374 0.354 0.313 0.288
0.270 0.259 0.259 0.259
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
5 of 6
0.431 0.423 0.415 0.408 0.403 0.401 0.400 0.401 0.419 0.427 0.433 0.437 0.371 0.354 0.315 0.289
0.270 0.259 0.259 0.259
0.384 0.392 0.397 0.400 0.402 0.402 0.403 0.404 0.419 0.423 0.428 0.432 0.367 0.353 0.317 0.289
0.270 0.259 0.259 0.259
0.491 0.490 0.487 0.484 0.479 0.473 0.466 0.458 0.451 0.421 0.422 0.426 0.364 0.353 0.319 0.290
0.270 0.259 0.259 0.259
0.440 0.444 0.448 0.451 0.453 0.455 0.456 0.458 0.493 0.472 0.443 0.427 0.357 0.351 0.320 0.291
0.270 0.259 0.259 0.259
0.426 0.430 0.434 0.437 0.439 0.441 0.443 0.445 0.476 0.467 0.453 0.439 0.355 0.349 0.322 0.292
0.270 0.259 0.259 0.259
0.415 0.419 0.422 0.425 0.428 0.430 0.432 0.434 0.461 0.457 0.450 0.442 0.355 0.348 0.323 0.293
0.271 0.259 0.259 0.259
0.405 0.409 0.413 0.416 0.419 0.421 0.423 0.425 0.449 0.448 0.444 0.439 0.355 0.347 0.323 0.294
0.271 0.259 0.259 0.259
0.396 0.401 0.404 0.408 0.410 0.413 0.415 0.417 0.438 0.439 0.438 0.435 0.354 0.346 0.324 0.295
0.271 0.259 0.259 0.259
0.388 0.392 0.396 0.399 0.402 0.405 0.407 0.409 0.428 0.431 0.431 0.429 0.352 0.340 0.324 0.296
0.271 0.259 0.259 0.259
0.379 0.384 0.388 0.391 0.394 0.397 0.399 0.401 0.419 0.423 0.423 0.422 0.348 0.335 0.324 0.297
0.271 0.259 0.259 0.259
0.370 0.376 0.380 0.384 0.387 0.389 0.392 0.394 0.410 0.415 0.416 0.416 0.343 0.330 0.324 0.298
0.272 0.259 0.259 0.259
0.498 0.498 0.497 0.497 0.496 0.495 0.494 0.491 0.526 0.424 0.409 0.409 0.338 0.324 0.323 0.299
0.272 0.259 0.259 0.259
0.461 0.464 0.465 0.467 0.469 0.471 0.472 0.474 0.525 0.511 0.484 0.440 0.335 0.319 0.322 0.300
0.272 0.259 0.259 0.259
0.467 0.468 0.468 0.468 0.469 0.470 0.471 0.472 0.519 0.508 0.493 0.476 0.347 0.313 0.321 0.300
0.272 0.260 0.259 0.259
0.452 0.454 0.456 0.458 0.460 0.462 0.464 0.466 0.511 0.506 0.498 0.489 0.370 0.312 0.319 0.301
0.272 0.260 0.259 0.259
0.438 0.442 0.445 0.447 0.450 0.453 0.455 0.458 0.498 0.497 0.494 0.489 0.387 0.314 0.318 0.301
0.273 0.260 0.259 0.259
0.428 0.432 0.435 0.438 0.440 0.443 0.446 0.448 0.483 0.485 0.485 0.483 0.391 0.317 0.318 0.302
0.273 0.260 0.259 0.259
0.419 0.423 0.426 0.429 0.432 0.434 0.437 0.439 0.470 0.474 0.475 0.474 0.389 0.319 0.317 0.302
0.273 0.260 0.259 0.259
0.410 0.413 0.416 0.419 0.422 0.425 0.427 0.430 0.457 0.462 0.464 0.464 0.382 0.319 0.317 0.303
c:\LIQUID0.7\LIQUID (m files)\PROFILE.txt
6 of 6
0.273 0.260 0.259 0.259
0.401 0.405 0.408 0.411 0.414 0.417 0.419 0.422 0.446 0.451 0.454 0.455 0.375 0.319 0.316 0.303
0.274 0.260 0.259 0.259
0.393 0.397 0.400 0.404 0.406 0.409 0.412 0.414 0.436 0.442 0.445 0.446 0.368 0.318 0.316 0.303
0.274 0.260 0.259 0.259
0.384 0.388 0.392 0.395 0.398 0.401 0.403 0.406 0.425 0.432 0.435 0.436 0.360 0.315 0.315 0.304
0.274 0.260 0.259 0.259
0.499 0.499 0.499 0.499 0.499 0.499 0.499 0.499 0.585 0.553 0.450 0.429 0.354 0.313 0.315 0.304
0.274 0.260 0.259 0.259
0.458 0.462 0.465 0.468 0.470 0.473 0.476 0.478 0.538 0.537 0.533 0.527 0.392 0.311 0.314 0.304
0.275 0.260 0.259 0.259
0.445 0.449 0.452 0.456 0.459 0.462 0.465 0.468 0.518 0.520 0.521 0.521 0.427 0.321 0.314 0.304
0.275 0.260 0.259 0.259
0.436 0.439 0.443 0.446 0.449 0.452 0.455 0.458 0.502 0.507 0.510 0.512 0.427 0.335 0.314 0.304
0.275 0.260 0.259 0.259
0.426 0.430 0.433 0.436 0.440 0.443 0.446 0.449 0.486 0.493 0.498 0.501 0.418 0.345 0.316 0.305
0.275 0.260 0.259 0.259
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
1 of 7
WATER BALANCE RESULTS
*********************
1-JULIAN DAYNUMBER
2-WATER CONTENT OF THE SOIL PROFILE AT THE END OF THE DAY
3-PRECIPITATION AND IRRIGATION
4-POTENTIAL TRANSPIRATION
5-ACTUAL TRANSPIRATION
6-POTENTIAL EVAPORATION
7-ACTUAL EVAPORATION
8-FLUX THROUGH TOP BOUNDARY (+ = IN)
9-FLUX THROUGH BOTTOM BOUNDARY (+ = OUT)
10-INCREMENTAL ERROR (%)
11-CUMULATIVE PRECIPITATION AND IRRIGATION
12-CUMULATIVE POTENTIAL TRANSPIRATION
13-CUMULATIVE ACTUAL TRANSPIRATION
14-CUMULATIVE POTENTIAL EVAPORATION
15-CUMULATIVE ACTUAL EVAPORATION
16-CUMULATIVE FLUX THROUGH TOP BOUNDARY
17-CUMULATIVE FLUX THROUGH BOTTOM BOUNDARY
18-CUMULATIVE WATER BALANCE ERROR (%)
ALL UNITS IN CM (EXCEPT 10 , 18)
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18
100 31.54 0.140 0.000 0.000 0.283 0.285 -0.144E+00 0.643E-07 0.981E-04 0.14 0.00
0.00 0.28 0.29 -0.144E+00 0.643E-07 0.151E-03
101 31.33 0.000 0.000 0.000 0.361 0.206 -0.206E+00 0.638E-07 0.253E-03 0.14 0.00
0.00 0.64 0.49 -0.350E+00 0.128E-06 0.222E-03
102 31.16 0.000 0.000 0.000 0.208 0.167 -0.167E+00 0.638E-07 0.135E-03 0.14 0.00
0.00 0.85 0.66 -0.517E+00 0.192E-06 0.189E-03
103 31.02 0.000 0.000 0.000 0.285 0.146 -0.146E+00 0.638E-07 0.954E-04 0.14 0.00
0.00 1.14 0.80 -0.663E+00 0.256E-06 0.165E-03
104 30.89 0.000 0.000 0.000 0.336 0.132 -0.132E+00 0.638E-07 0.769E-04 0.14 0.00
0.00 1.47 0.94 -0.795E+00 0.320E-06 0.149E-03
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
2 of 7
105 30.77 0.000 0.000 0.000 0.314 0.121 -0.121E+00 0.638E-07 0.673E-04 0.14 0.00
0.00 1.79 1.06 -0.916E+00 0.383E-06 0.137E-03
106 30.65 0.000 0.000 0.000 0.384 0.114 -0.114E+00 0.638E-07 0.624E-04 0.14 0.00
0.00 2.17 1.17 -0.103E+01 0.447E-06 0.127E-03
107 30.54 0.000 0.000 0.000 0.369 0.107 -0.107E+00 0.638E-07 0.603E-04 0.14 0.00
0.00 2.54 1.28 -0.114E+01 0.511E-06 0.120E-03
108 30.44 0.000 0.000 0.000 0.312 0.102 -0.102E+00 0.638E-07 0.602E-04 0.14 0.00
0.00 2.85 1.38 -0.124E+01 0.575E-06 0.115E-03
109 30.34 0.000 0.000 0.000 0.373 0.098 -0.976E-01 0.638E-07 0.619E-04 0.14 0.00
0.00 3.23 1.48 -0.134E+01 0.639E-06 0.110E-03
110 30.25 0.000 0.000 0.000 0.397 0.094 -0.937E-01 0.638E-07 0.651E-04 0.14 0.00
0.00 3.62 1.57 -0.143E+01 0.703E-06 0.107E-03
111 30.16 0.000 0.000 0.000 0.225 0.090 -0.904E-01 0.638E-07 0.699E-04 0.14 0.00
0.00 3.85 1.66 -0.152E+01 0.767E-06 0.104E-03
112 30.19 0.120 0.000 0.000 0.215 0.087 0.326E-01 0.638E-07 0.476E-04 0.26 0.00
0.00 4.06 1.75 -0.149E+01 0.830E-06 0.105E-03
113 30.16 0.050 0.000 0.000 0.200 0.085 -0.347E-01 0.638E-07 0.155E-04 0.31 0.00
0.00 4.26 1.83 -0.152E+01 0.894E-06 0.103E-03
114 30.08 0.000 0.000 0.000 0.449 0.082 -0.824E-01 0.638E-07 0.519E-04 0.31 0.00
0.00 4.71 1.92 -0.161E+01 0.958E-06 0.101E-03
115 30.00 0.000 0.000 0.000 0.466 0.080 -0.802E-01 0.638E-07 0.530E-04 0.31 0.00
0.00 5.18 2.00 -0.169E+01 0.102E-05 0.982E-04
116 33.56 4.000 0.000 0.000 0.439 0.439 0.356E+01 0.638E-07 0.108E-01 4.31 0.00
0.00 5.62 2.44 0.188E+01 0.109E-05 0.103E+00
117 33.16 0.000 0.000 0.000 0.403 0.400 -0.400E+00 0.638E-07 0.507E-03 4.31 0.00
0.00 6.02 2.84 0.148E+01 0.115E-05 0.130E+00
118 32.99 0.040 0.000 0.000 0.432 0.206 -0.166E+00 0.638E-07 0.702E-04 4.35 0.00
0.00 6.45 3.04 0.131E+01 0.121E-05 0.147E+00
119 33.15 0.330 0.000 0.000 0.441 0.167 0.163E+00 0.638E-07 0.745E-05 4.68 0.00
0.00 6.89 3.21 0.147E+01 0.128E-05 0.130E+00
120 33.25 0.240 0.000 0.000 0.207 0.146 0.943E-01 0.638E-07 0.176E-05 4.92 0.00
0.00 7.10 3.35 0.157E+01 0.134E-05 0.123E+00
121 33.62 0.510 0.000 0.000 0.283 0.132 0.378E+00 0.638E-07 0.197E-04 5.43 0.00
0.00 7.38 3.49 0.195E+01 0.140E-05 0.987E-01
122 33.50 0.000 0.000 0.000 0.493 0.121 -0.121E+00 0.638E-07 0.418E-04 5.43 0.00
0.00 7.88 3.61 0.182E+01 0.147E-05 0.105E+00
123 33.39 0.000 0.000 0.000 0.504 0.114 -0.114E+00 0.638E-07 0.203E-04 5.43 0.00
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
3 of 7
0.00 8.38 3.72 0.171E+01 0.153E-05 0.112E+00
124 33.28 0.000 0.000 0.000 0.398 0.107 -0.107E+00 0.638E-07 0.124E-04 5.43 0.00
0.00 8.78 3.83 0.160E+01 0.160E-05 0.120E+00
125 33.18 0.000 0.000 0.000 0.522 0.102 -0.102E+00 0.638E-07 0.861E-05 5.43 0.00
0.00 9.30 3.93 0.150E+01 0.166E-05 0.128E+00
126 33.02 0.000 0.061 0.061 0.454 0.098 -0.976E-01 0.638E-07 0.326E-04 5.43 0.06
0.06 9.75 4.03 0.140E+01 0.172E-05 0.137E+00
127 32.86 0.000 0.068 0.068 0.506 0.094 -0.937E-01 0.638E-07 0.317E-04 5.43 0.13
0.13 10.26 4.12 0.131E+01 0.179E-05 0.147E+00
128 32.84 0.110 0.043 0.043 0.324 0.090 0.196E-01 0.638E-07 0.119E-05 5.54 0.17
0.17 10.58 4.21 0.133E+01 0.185E-05 0.144E+00
129 36.10 3.410 0.018 0.015 0.133 0.133 0.328E+01 0.638E-07 0.351E-02 8.95 0.19
0.19 10.72 4.34 0.461E+01 0.192E-05 0.462E-01
130 36.31 0.440 0.027 0.023 0.201 0.201 0.239E+00 0.638E-07 0.183E-03 9.39 0.22
0.21 10.92 4.55 0.484E+01 0.198E-05 0.437E-01
131 36.08 0.020 0.051 0.051 0.383 0.205 -0.185E+00 0.634E-07 0.730E-04 9.41 0.27
0.26 11.30 4.75 0.466E+01 0.204E-05 0.454E-01
132 35.86 0.000 0.047 0.047 0.349 0.167 -0.167E+00 0.638E-07 0.315E-04 9.41 0.31
0.31 11.65 4.92 0.449E+01 0.211E-05 0.471E-01
133 35.69 0.000 0.028 0.028 0.208 0.146 -0.146E+00 0.638E-07 0.149E-04 9.41 0.34
0.34 11.86 5.06 0.435E+01 0.217E-05 0.487E-01
134 35.50 0.000 0.055 0.055 0.412 0.132 -0.132E+00 0.638E-07 0.165E-04 9.41 0.40
0.39 12.27 5.20 0.422E+01 0.223E-05 0.502E-01
135 35.32 0.000 0.065 0.065 0.483 0.121 -0.121E+00 0.638E-07 0.153E-04 9.41 0.46
0.46 12.75 5.32 0.409E+01 0.230E-05 0.517E-01
136 35.15 0.000 0.056 0.056 0.421 0.114 -0.114E+00 0.638E-07 0.967E-05 9.41 0.52
0.51 13.17 5.43 0.398E+01 0.236E-05 0.532E-01
137 34.97 0.000 0.074 0.074 0.550 0.107 -0.107E+00 0.638E-07 0.130E-04 9.41 0.59
0.59 13.72 5.54 0.387E+01 0.243E-05 0.547E-01
138 34.79 0.000 0.073 0.073 0.544 0.102 -0.102E+00 0.638E-07 0.120E-04 9.41 0.67
0.66 14.27 5.64 0.377E+01 0.249E-05 0.561E-01
139 34.63 0.000 0.069 0.069 0.506 0.098 -0.976E-01 0.638E-07 0.106E-04 9.41 0.73
0.73 14.77 5.74 0.367E+01 0.255E-05 0.576E-01
140 34.47 0.000 0.064 0.064 0.454 0.094 -0.937E-01 0.638E-07 0.919E-05 9.41 0.80
0.79 15.23 5.83 0.358E+01 0.262E-05 0.591E-01
141 34.29 0.000 0.084 0.084 0.580 0.090 -0.904E-01 0.638E-07 0.119E-04 9.41 0.88
0.88 15.81 5.92 0.349E+01 0.268E-05 0.607E-01
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
4 of 7
142 34.15 0.000 0.053 0.053 0.354 0.087 -0.874E-01 0.638E-07 0.594E-05 9.41 0.94
0.93 16.16 6.01 0.340E+01 0.275E-05 0.622E-01
143 34.14 0.120 0.046 0.046 0.294 0.085 0.353E-01 0.638E-07 0.317E-05 9.53 0.98
0.97 16.45 6.09 0.344E+01 0.281E-05 0.616E-01
144 34.06 0.050 0.046 0.046 0.279 0.082 -0.324E-01 0.638E-07 0.175E-05 9.58 1.03
1.02 16.73 6.18 0.340E+01 0.287E-05 0.622E-01
145 33.90 0.000 0.082 0.082 0.480 0.080 -0.802E-01 0.638E-07 0.206E-04 9.58 1.11
1.10 17.21 6.26 0.332E+01 0.294E-05 0.637E-01
146 37.35 4.000 0.085 0.073 0.477 0.477 0.352E+01 0.638E-07 0.425E-02 13.58 1.19
1.18 17.69 6.73 0.685E+01 0.300E-05 0.342E-01
147 36.88 0.000 0.082 0.076 0.439 0.400 -0.400E+00 0.638E-07 0.212E-03 13.58 1.28
1.25 18.13 7.13 0.645E+01 0.306E-05 0.360E-01
148 36.58 0.000 0.086 0.086 0.435 0.206 -0.206E+00 0.638E-07 0.400E-04 13.58 1.36
1.34 18.56 7.34 0.624E+01 0.313E-05 0.372E-01
149 36.37 0.040 0.089 0.089 0.428 0.167 -0.127E+00 0.638E-07 0.162E-04 13.62 1.45
1.42 18.99 7.51 0.611E+01 0.319E-05 0.380E-01
150 36.47 0.330 0.080 0.080 0.367 0.146 0.184E+00 0.638E-07 0.370E-05 13.95 1.53
1.50 19.36 7.65 0.630E+01 0.326E-05 0.368E-01
151 36.53 0.240 0.054 0.054 0.237 0.132 0.108E+00 0.638E-07 0.384E-06 14.19 1.59
1.56 19.60 7.78 0.641E+01 0.332E-05 0.362E-01
152 36.84 0.510 0.077 0.077 0.320 0.121 0.389E+00 0.638E-07 0.556E-05 14.70 1.66
1.64 19.92 7.91 0.680E+01 0.338E-05 0.342E-01
153 36.61 0.000 0.118 0.118 0.465 0.114 -0.114E+00 0.638E-07 0.346E-04 14.70 1.78
1.75 20.38 8.02 0.668E+01 0.345E-05 0.347E-01
154 36.37 0.000 0.132 0.132 0.491 0.107 -0.107E+00 0.638E-07 0.243E-04 14.70 1.91
1.89 20.87 8.13 0.657E+01 0.351E-05 0.353E-01
155 36.11 0.000 0.158 0.158 0.560 0.102 -0.102E+00 0.638E-07 0.263E-04 14.70 2.07
2.04 21.43 8.23 0.647E+01 0.358E-05 0.359E-01
156 35.83 0.000 0.176 0.176 0.590 0.098 -0.976E-01 0.638E-07 0.262E-04 14.70 2.25
2.22 22.02 8.33 0.638E+01 0.364E-05 0.364E-01
157 35.60 0.000 0.143 0.143 0.455 0.094 -0.937E-01 0.638E-07 0.181E-04 14.70 2.39
2.36 22.48 8.42 0.628E+01 0.370E-05 0.369E-01
158 35.36 0.000 0.149 0.149 0.450 0.090 -0.904E-01 0.638E-07 0.195E-04 14.70 2.54
2.51 22.93 8.51 0.619E+01 0.377E-05 0.375E-01
159 35.29 0.110 0.094 0.094 0.269 0.087 0.226E-01 0.638E-07 0.174E-05 14.81 2.63
2.61 23.20 8.60 0.621E+01 0.383E-05 0.374E-01
160 38.44 3.410 0.073 0.063 0.199 0.199 0.321E+01 0.638E-07 0.293E-02 18.22 2.70
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
5 of 7
2.67 23.39 8.80 0.942E+01 0.389E-05 0.258E-01
161 37.86 0.000 0.200 0.178 0.517 0.400 -0.400E+00 0.638E-07 0.187E-03 18.22 2.91
2.85 23.91 9.20 0.902E+01 0.396E-05 0.268E-01
162 37.41 0.000 0.239 0.239 0.584 0.206 -0.206E+00 0.638E-07 0.596E-04 18.22 3.14
3.09 24.50 9.40 0.882E+01 0.402E-05 0.274E-01
163 36.98 0.000 0.262 0.262 0.608 0.167 -0.167E+00 0.638E-07 0.539E-04 18.22 3.41
3.35 25.10 9.57 0.865E+01 0.409E-05 0.279E-01
164 40.24 4.000 0.253 0.184 0.556 0.556 0.344E+01 0.638E-07 0.584E-02 22.22 3.66
3.53 25.66 10.13 0.121E+02 0.415E-05 0.204E-01
165 39.65 0.000 0.350 0.194 0.733 0.400 -0.400E+00 0.638E-07 0.288E-03 22.22 4.01
3.72 26.39 10.53 0.117E+02 0.421E-05 0.206E-01
166 39.19 0.000 0.298 0.251 0.593 0.206 -0.206E+00 0.638E-07 0.877E-04 22.22 4.31
3.98 26.99 10.73 0.115E+02 0.428E-05 0.210E-01
167 38.70 0.000 0.340 0.326 0.641 0.167 -0.167E+00 0.638E-07 0.680E-04 22.22 4.65
4.30 27.63 10.90 0.113E+02 0.434E-05 0.213E-01
168 38.34 0.000 0.209 0.209 0.375 0.146 -0.146E+00 0.638E-07 0.221E-04 22.22 4.86
4.51 28.00 11.04 0.112E+02 0.440E-05 0.216E-01
169 37.89 0.000 0.327 0.327 0.558 0.132 -0.132E+00 0.638E-07 0.484E-04 22.22 5.18
4.84 28.56 11.18 0.110E+02 0.447E-05 0.218E-01
170 37.50 0.000 0.266 0.266 0.431 0.121 -0.121E+00 0.638E-07 0.322E-04 22.22 5.45
5.10 28.99 11.30 0.109E+02 0.453E-05 0.221E-01
171 37.08 0.000 0.308 0.308 0.475 0.114 -0.114E+00 0.638E-07 0.398E-04 22.22 5.76
5.41 29.46 11.41 0.108E+02 0.460E-05 0.223E-01
172 36.60 0.000 0.373 0.373 0.547 0.107 -0.107E+00 0.638E-07 0.651E-04 22.22 6.13
5.79 30.01 11.52 0.107E+02 0.466E-05 0.225E-01
173 36.28 0.000 0.216 0.216 0.301 0.102 -0.102E+00 0.638E-07 0.216E-04 22.22 6.35
6.00 30.31 11.62 0.106E+02 0.472E-05 0.227E-01
174 36.87 1.000 0.175 0.175 0.232 0.232 0.768E+00 0.638E-07 0.243E-04 23.22 6.52
6.18 30.54 11.85 0.114E+02 0.479E-05 0.213E-01
175 36.30 0.000 0.251 0.251 0.317 0.317 -0.317E+00 0.638E-07 0.239E-03 23.22 6.77
6.43 30.86 12.17 0.111E+02 0.485E-05 0.218E-01
176 39.61 4.000 0.340 0.288 0.408 0.408 0.359E+01 0.638E-07 0.490E-02 27.22 7.11
6.72 31.27 12.58 0.146E+02 0.492E-05 0.174E-01
177 39.03 0.070 0.334 0.260 0.381 0.381 -0.311E+00 0.638E-07 0.206E-03 27.29 7.45
6.98 31.65 12.96 0.143E+02 0.498E-05 0.175E-01
178 38.48 0.000 0.357 0.346 0.389 0.206 -0.206E+00 0.638E-07 0.658E-04 27.29 7.81
7.32 32.04 13.17 0.141E+02 0.504E-05 0.177E-01
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
6 of 7
179 37.91 0.000 0.400 0.400 0.415 0.167 -0.167E+00 0.638E-07 0.636E-04 27.29 8.21
7.72 32.45 13.33 0.140E+02 0.511E-05 0.180E-01
180 37.39 0.000 0.376 0.376 0.372 0.146 -0.146E+00 0.638E-07 0.568E-04 27.29 8.58
8.10 32.83 13.48 0.138E+02 0.517E-05 0.181E-01
181 36.91 0.000 0.349 0.349 0.329 0.132 -0.132E+00 0.638E-07 0.509E-04 27.29 8.93
8.45 33.15 13.61 0.137E+02 0.523E-05 0.183E-01
182 36.40 0.000 0.389 0.389 0.349 0.121 -0.121E+00 0.638E-07 0.605E-04 27.29 9.32
8.84 33.50 13.73 0.136E+02 0.530E-05 0.185E-01
183 35.87 0.000 0.412 0.412 0.352 0.114 -0.114E+00 0.638E-07 0.735E-04 27.29 9.73
9.25 33.86 13.85 0.134E+02 0.536E-05 0.186E-01
184 35.36 0.000 0.410 0.410 0.333 0.107 -0.107E+00 0.638E-07 0.784E-04 27.29 10.14
9.66 34.19 13.95 0.133E+02 0.543E-05 0.188E-01
185 40.34 5.650 0.429 0.333 0.332 0.332 0.532E+01 0.638E-07 0.464E-01 32.94 10.57
9.99 34.52 14.28 0.187E+02 0.549E-05 0.123E-01
186 40.15 0.390 0.443 0.259 0.327 0.327 0.626E-01 0.638E-07 0.308E-02 33.33 11.01
10.25 34.85 14.61 0.187E+02 0.555E-05 0.952E-02
187 40.40 0.800 0.512 0.338 0.361 0.206 0.594E+00 0.638E-07 0.407E-04 34.13 11.53
10.59 35.21 14.82 0.193E+02 0.562E-05 0.922E-02
188 40.15 0.180 0.374 0.264 0.252 0.167 0.130E-01 0.638E-07 0.163E-02 34.31 11.90
10.85 35.46 14.99 0.193E+02 0.568E-05 0.921E-02
189 39.68 0.000 0.394 0.324 0.253 0.146 -0.146E+00 0.638E-07 0.895E-04 34.31 12.29
11.18 35.71 15.13 0.192E+02 0.575E-05 0.928E-02
190 39.13 0.000 0.457 0.424 0.280 0.132 -0.132E+00 0.638E-07 0.815E-04 34.31 12.75
11.60 35.99 15.26 0.190E+02 0.581E-05 0.935E-02
191 38.55 0.000 0.461 0.455 0.269 0.121 -0.121E+00 0.638E-07 0.598E-04 34.31 13.21
12.06 36.26 15.38 0.189E+02 0.587E-05 0.941E-02
192 37.91 0.000 0.528 0.528 0.294 0.114 -0.114E+00 0.638E-07 0.907E-04 34.31 13.74
12.58 36.56 15.50 0.188E+02 0.594E-05 0.946E-02
193 37.35 0.000 0.455 0.455 0.241 0.107 -0.107E+00 0.638E-07 0.697E-04 34.31 14.20
13.04 36.80 15.61 0.187E+02 0.600E-05 0.952E-02
194 36.80 0.000 0.443 0.443 0.224 0.102 -0.102E+00 0.638E-07 0.720E-04 34.31 14.64
13.48 37.02 15.71 0.186E+02 0.606E-05 0.957E-02
195 36.22 0.000 0.487 0.487 0.235 0.098 -0.976E-01 0.638E-07 0.998E-04 34.31 15.13
13.97 37.26 15.80 0.185E+02 0.613E-05 0.962E-02
196 41.73 6.000 0.426 0.296 0.196 0.196 0.580E+01 0.638E-07 0.767E-01 40.31 15.55
14.26 37.45 16.00 0.243E+02 0.619E-05 0.221E-02
197 41.29 0.000 0.484 0.228 0.212 0.212 -0.212E+00 0.638E-07 0.131E-02 40.31 16.04
c:\LIQUID0.7\LIQUID (m files)\WATERBAL.txt
7 of 7
14.49 37.66 16.21 0.241E+02 0.626E-05 0.177E-02
198 40.77 0.000 0.496 0.313 0.207 0.206 -0.206E+00 0.638E-07 0.134E-03 40.31 16.53
14.81 37.87 16.42 0.239E+02 0.632E-05 0.179E-02
199 40.23 0.000 0.493 0.374 0.197 0.167 -0.167E+00 0.638E-07 0.116E-03 40.31 17.03
15.18 38.07 16.59 0.237E+02 0.638E-05 0.181E-02
200 39.59 0.000 0.572 0.494 0.217 0.146 -0.146E+00 0.638E-07 0.122E-03 40.31 17.60
15.67 38.28 16.73 0.236E+02 0.645E-05 0.182E-02
C:\LIQUID0.7\LIQUID (m files)\GNDATA 1 of 2
10,4,2005 19,7,2005 2,10,2005 1,0 20,1 10,10,100,0,2 4 1,8 9,12 13,16 17,20 0.2200,0.5000,0.0650,0.0108,1.2170 0.1500,0.5900,0.0680,0.0239,1.2210 0.0800,0.5300,0.0590,0.0420,1.2040 0.0100,0.5200,0.0700,0.0530,1.1650 2,2 2 1 1 -1,-6,-150.0000 4 1,0,1,0 2.0 WATER.BAL PROFILE.OUT 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 0.050 -7.400 -7.400 -7.400 -7.400 -7.400 -7.400 -7.400 -7.400 -5.580 -5.580 -5.580
C:\LIQUID0.7\LIQUID (m files)\GNDATA 2 of 2
-5.580 -8.096 -8.096 -8.096 -8.096 -35.800 -35.800 -35.800 -35.800