source: palm/trunk/SCRIPTS/NCL/.ncl.config.default @ 526

Last change on this file since 526 was 526, checked in by heinze, 14 years ago

Adjustment of the NCL scripts and palmplot to allow for the use of special characters in NetCDF variable names

File size: 70.3 KB
Line 
1;*********************************************************
2; Copying .hluresfile in the home directory
3;*********************************************************
4
5command = "ksh 'if [ ! -f $HOME/.hluresfile ]; then; "+\
6          "cp $PALM_BIN/NCL/.hluresfile $HOME; fi'"
7system(command)
8   
9;*********************************************************
10
11
12begin
13
14;*********************************************************
15
16script=which_script
17
18   ;******************************************************
19   ; BE AWARE: NCl uses double quotes (") to denote strings
20   ;       to retrieve the double quote character - use dq:
21
22    dq=str_get_dq()
23
24   ;******************************************************
25   
26;*********************************************************
27   
28   ;******************************************************
29   ; parameters used by CROSS_SECTIONS
30   ;******************************************************
31   
32   if (script .EQ. "cross_section")then
33   
34      ;***************************************************
35      ; REQUIRED --file_1-- INPUT FILE
36      ;
37      ; input file produced by PALM; if there is more than one file for
38      ; all timesteps
39      ; of a job chain,
40      ; declare path and file name without cycle number and ".nc" (first and
41      ; last cycle numbers are given with the parameters 'start_f' and
42      ; 'end_f');
43      ; otherwise declare path and full file name
44      ;
45      ; data type: string
46      ;
47      ; example: file_1 = "/path_to_file/file_xy_av"      if you use more than
48      ;                                                   one cycle number
49      ;          file_1 = "/path_to_file/file_xy_av.4.nc" if you use one file
50      ;                                              (e.g. with cycle number 4)
51      ;
52      ; default:   "File in"
53      ;***************************************************
54      if(.not. isvar("file_1"))then
55
56
57         file_1 = "File in"
58         
59         
60      end if
61      ;***************************************************
62      ; OPTIONAL/REQUIRED if more than one file of a job chain
63      ;          --start_f-- START OF CYCLIC NUMBER
64      ;
65      ; if there is more than one file for all timesteps of a job chain,
66      ; declare the first cyclicnumber which contains timesteps
67      ; you'd like to use
68      ;
69      ; data type: integer
70      ;
71      ; example:   start_f = 3 (if first file: example_xy_av.3.nc) and
72      ;            start_f = 0 (if first file: example_xy_av.nc)
73      ;
74      ; default:   -1 
75      ;***************************************************
76      if (.not. isvar("start_f"))then 
77     
78         
79         start_f = -1
80         
81         
82      end if
83      ;***************************************************
84      ; OPTIONAL/REQUIRED if more than one file of a job chain
85      ;          --end_f-- END OF CYCLIC NUMBER
86      ;
87      ; if there is more than one file for all timesteps of a job chain,
88      ; declare the last cyclicnumber which contains timesteps you'd like
89      ; to use
90      ;
91      ; data type: integer
92      ;
93      ; example:   end_f = 48 (if last file: example_xy_av.48.nc) and
94      ;            end_f = 0 (if last file: example_xy_av.nc)
95      ;
96      ; default:   -1 
97      ;***************************************************
98      if (.not. isvar("end_f"))then 
99     
100         
101         end_f = -1
102         
103         
104      end if
105      ;***************************************************
106      ; OPTIONAL --xyc--xzc--yzc-- SELECTION of XY or XZ or YZ CROSS SECTIONS
107      ;
108      ; desired section has to be set to 1;
109      ; e.g.: xyc=1, xzc=0 and yzc=0 for xy-section
110      ;
111      ; data type: integer
112      ;
113      ; example: xyc = 1
114      ;          xzc = 0
115      ;          yzc = 0
116      ;
117      ; default:   0
118      ;***************************************************
119      if(.not. isvar("xyc"))then     
120       
121         xyc = 0
122       
123      end if
124      if (.not. isvar("xzc"))then
125     
126         xzc = 0
127       
128      end if
129      if (.not. isvar("yzc"))then
130     
131         yzc = 0
132                 
133      end if             
134      ;***************************************************
135      ; OPTIONAL --format_out-- OUTPUT FORMAT
136      ;
137      ; format of the output file;
138      ; supported file formats: x11, pdf, ps, eps, epsi or ncgm
139      ;
140      ; data type: string
141      ;
142      ; example: format_out = "pdf"
143      ;
144      ; default:   "x11"
145      ;***************************************************
146      if(.not. isvar("format_out"))then 
147     
148     
149         format_out = "x11"
150         
151         
152      end if
153      ;***************************************************
154      ; OPTIONAL --file_out-- OUTPUT FILE
155      ;
156      ; path and name of the output file
157      ;
158      ; data type: string
159      ;
160      ; example: file_out = "/home/path_to_output/test_cs"
161      ;
162      ; default:   "~/test_cs"
163      ;***************************************************
164      if(.not. isvar("file_out"))then   
165     
166     
167         file_out = "~/test_cs"
168         
169         
170      end if     
171      ;***************************************************
172      ; OPTIONAL --no_columns-- NUMBER OF COLUMNS
173      ;
174      ; number of plots in one row
175      ;
176      ; data type: integer
177      ;
178      ; example: no_columns = 1
179      ;
180      ; default:   1
181      ;***************************************************
182      if(.not. isvar("no_columns"))then 
183     
184     
185         no_columns = 1
186         
187         
188      end if     
189      ;***************************************************
190      ; OPTIONAL --no_rows-- NUMBER OF ROWS
191      ;
192      ; number of plots in one column
193      ;
194      ; data type: integer
195      ;
196      ; example: no_rows = 2
197      ;
198      ; default:   2
199      ;***************************************************
200      if(.not. isvar("no_rows"))then     
201     
202     
203         no_rows = 2
204         
205         
206      end if     
207      ;***************************************************
208      ; OPTIONAL --sort-- TYPE OF SORTING
209      ;
210      ; sequence of plots; sorting either by time step [="time"] or
211      ; by layer/height [="layer"]
212      ;
213      ; data type: string
214      ;
215      ; example: sort = "layer"
216      ;
217      ; default:   "layer"
218      ;***************************************************
219      if(.not. isvar("sort"))then       
220     
221     
222         sort = "layer"
223         
224         
225      end if     
226      ;***************************************************
227      ; OPTIONAL --var-- OUTPUT VARIABLES
228      ;
229      ; names of output variables;
230      ; inidcate them with one comma before and after each variable;
231      ; if the name contains double quotes (") use dq and the '+' operation to
232      ; concatenate the strings
233      ;
234      ; data type: string
235      ;
236      ; example: var = ",u,v,w,"
237      ;
238      ; default:   "all" (all available variables are plotted)
239      ;***************************************************
240      if(.not. isvar("var"))then
241     
242         
243         var = "all"
244         
245         
246      end if     
247      ;***************************************************
248      ; OPTIONAL --start_time_step-- FIRST TIME STEP
249      ;
250      ; first time step of plot; there is no need to specify a precise time
251      ; value from the input file,
252      ; 'start_time_step' is rounded to the next existent time step
253      ;
254      ; data type: double; dimension: [hour]
255      ;
256      ; example:   start_time_step = 0.5d
257      ;
258      ; default:   -1.d (first available time step)
259      ;***************************************************
260      if(.not. isvar("start_time_step"))then
261     
262         
263         start_time_step = -1.d
264         
265         
266      end if     
267      ;***************************************************
268      ; OPTIONAL --end_time_step-- LAST TIME STEP
269      ;
270      ; last time step of plot; there is no need to specify a precise time
271      ; value from the input file,
272      ; 'end_time_step' is rounded to the next existent time step
273      ;
274      ; data type: double; dimension: [hour]
275      ;
276      ; example:   end_time_step = 2.0d
277      ;
278      ; default:   -1.d (last available time step)
279      ;***************************************************
280      if(.not. isvar("end_time_step"))then       
281     
282     
283         end_time_step = -1.d
284         
285         
286      end if     
287      ;***************************************************
288      ; OPTIONAL --xs-- MINIMUM X-AXIS
289      ;
290      ; value for minimum of x-axis, selectable if there are
291      ; NO preseted layers
292      ; for x (as for XY or XZ 2D-DATA);
293      ; there is no need to specify a precise meter value from the input file,
294      ; it is rounded to the next existent value
295      ;
296      ; data type: double; dimension: [meter]
297      ;
298      ; example: xs = 150.0d
299      ;
300      ; default:   -1.d (minimum of range)
301      ;***************************************************
302      if(.not. isvar("xs"))then     
303     
304     
305         xs = -1.d
306         
307         
308      end if     
309      ;***************************************************
310      ; OPTIONAL --xe-- MAXIMUM X-AXIS
311      ;
312      ; value for maximum of x-axis, selectable if there are
313      ; NO preseted layers
314      ; for x (as for XY or XZ 2D-DATA);
315      ; there is no need to specify a precise meter value from the input file,
316      ; it is rounded to the next existent value
317      ;
318      ; data type: double; dimension: [meter]
319      ;
320      ; example: xe = 300.0d
321      ;
322      ; default:   -1.d (maximum of range)
323      ;***************************************************
324      if(.not. isvar("xe"))then     
325     
326     
327         xe = -1.d
328         
329         
330      end if     
331      ;***************************************************
332      ; OPTIONAL --ys-- MINIMUM Y-AXIS
333      ;
334      ; value for minimum of y-axis, selectable if there are
335      ; NO preseted layers
336      ; for y (as for XY or YZ 2D-DATA);
337      ; there is no need to specify a precise meter value from the input file,
338      ; it is rounded to the next existent value
339      ;
340      ; data type: double; dimension: [meter]
341      ;
342      ; example: ys = 150.0d
343      ;
344      ; default:   -1.d (minimum of range)
345      ;***************************************************
346      if(.not. isvar("ys"))then     
347     
348     
349         ys = -1.d
350         
351         
352      end if     
353      ;***************************************************
354      ; OPTIONAL --ye-- MAXIMUM Y-AXIS
355      ;
356      ; value for maximum of y-axis, selectable if there are NO preseted layers
357      ; for y (as for XY or YZ 2D-DATA);
358      ; there is no need to specify a precise meter value from the input file,
359      ; it is rounded to the next existent value
360      ;
361      ; data type: double; dimension: [meter]
362      ;
363      ; example: ye = 300.0d
364      ;
365      ; default:   -1.d (maximum of range)
366      ;***************************************************
367      if(.not. isvar("ye"))then   
368     
369         
370         ye = -1.d
371         
372         
373      end if     
374      ;***************************************************
375      ; OPTIONAL --zs-- MINIMUM Z-AXIS
376      ;
377      ; index for minimum of z-axis, selectable if there are
378      ; NO preseted layers
379      ; for z (as for XZ or YZ 2D-DATA);
380      ; you cannot specify a meter value from the input file due to
381      ; grid stretching 
382      ;
383      ; data type: integer
384      ;
385      ; example: zs = 0
386      ;
387      ; default:   -1 (minimum of range)
388      ;***************************************************
389      if(.not. isvar("zs"))then     
390     
391     
392         zs = -1
393         
394         
395      end if     
396      ;***************************************************
397      ; OPTIONAL --ze-- MAXIMUM Z-AXIS
398      ;
399      ; index for maximum of z-axis, selectable if there are
400      ; NO preseted layers
401      ; for z (as for XZ or YZ 2D-DATA);
402      ; you cannot specify a meter value from the input file due to
403      ; grid stretching 
404      ;
405      ; data type: integer
406      ;
407      ; example: ze = 15
408      ;
409      ; default:   -1 (maximum of range)
410      ;***************************************************
411      if(.not. isvar("ze"))then
412     
413           
414         ze = -1
415         
416         
417      end if     
418      ;***************************************************
419      ; OPTIONAL --mode-- TYPE OF PLOT
420      ;
421      ; isoline plots [="Line"], contour plots [="Fill"] or both [="Both"]
422      ; can be choosen
423      ;
424      ; data type: string
425      ;
426      ; example: mode = "Fill"
427      ;
428      ; default:   "Fill"
429      ;***************************************************
430      if(.not. isvar("mode"))then       
431     
432     
433         mode = "Fill"
434         
435         
436      end if     
437      ;***************************************************
438      ; OPTIONAL --fill_mode-- TYPE OF FILLING
439      ;
440      ; area fill [="AreaFill"], raster fill [="RasterFill"] or
441      ; cell fill [="CellFill"] can be choosen
442      ;
443      ; data type: string
444      ;
445      ; example: fill_mode = "AreaFill"
446      ;
447      ; default:    "RasterFill"
448      ;***************************************************
449      if(.not. isvar("fill_mode"))then   
450     
451     
452         fill_mode = "RasterFill"
453         
454         
455      end if     
456      ;***************************************************
457      ; OPTIONAL --shape-- ASPECT RATIO
458      ;
459      ; aspect ratio of axis is kept [=1] or not[=0]
460      ;
461      ; data type: integer
462      ;
463      ; example: shape = 1
464      ;
465      ; default:   1
466      ;***************************************************
467      if(.not. isvar("shape"))then
468     
469         
470         shape = 1
471         
472         
473      end if
474      ;***************************************************
475      ; OPTIONAL --font_size-- FONT SIZE OF STRINGS
476      ;
477      ; font size can be changed to fit to the current plot
478      ;
479      ; data type: float
480      ;
481      ; example: font_size = 0.04
482      ;
483      ; default:   0.04
484      ;***************************************************
485      if(.not. isvar("font_size"))then
486     
487         
488         font_size = 0.04
489         
490         
491      end if
492      ;***************************************************
493      ; OPTIONAL --font_size_legend-- FONT SIZE OF LEGEND STRINGS
494      ;
495      ; font size of the legend can be changed to fit to the current plot
496      ;
497      ; data type: float
498      ;
499      ; example: font_size_legend = 0.04
500      ;
501      ; default:   0.04
502      ;***************************************************
503      if(.not. isvar("font_size_legend"))then
504     
505         
506         font_size_legend = 0.04
507         
508         
509      end if   
510      ;***************************************************
511      ; OPTIONAL --legend_label_stride-- REDUCTION OF THE NUMBER
512      ;                                  OF LABELS IN THE LEGEND
513      ;
514      ; if legend_label_stride is set to 1 every label is shown;
515      ; if set to 2 every second, ...
516      ;
517      ; data type: integer
518      ;
519      ; example: legend_label_stride = 2
520      ;
521      ; default:   2
522      ;***************************************************
523      if(.not. isvar("legend_label_reduction"))then
524     
525         
526         legend_label_stride = 2
527         
528         
529      end if
530      ;***************************************************
531      ; OPTIONAL --axes_explicit--
532      ;          EXPLICIT SETTINGS OF X- AND Y-AXES ARE SWITCHED ON
533      ;
534      ; to use several parameters to set up the axes, 'axes_explicit'
535      ; must be switched on [=1]; if switched off [=0] units of axes are [m]
536      ;
537      ; data type: integer
538      ;
539      ; example: axes_explicit = 0
540      ;
541      ; default:   0
542      ;***************************************************
543      if(.not. isvar("axes_explicit"))then
544     
545         
546         axes_explicit = 0
547         
548         
549      end if
550      ;***************************************************
551      ; OPTIONAL if axes_explicit = 1 --major_ticks_x--
552      ;                              NUMBER OF MAJOR TICK MARKS AT X-AXIS
553      ;
554      ; major_ticks_x can be set to any integer, best segmentation of x-axis
555      ; can be achieved, if
556      ; (number of gripdpoints in x-direction)/(major_ticks_x-1)=INTEGER,
557      ; e.g. 128/8 = 16 -> major_ticks_x should be set to 9
558      ;
559      ; data type: integer
560      ;
561      ; example: major_ticks_x = 6
562      ;
563      ; default:   6
564      ;***************************************************
565      if(.not. isvar("major_ticks_x"))then
566     
567         
568         major_ticks_x = 6
569         
570         
571      end if
572      ;***************************************************
573      ; OPTIONAL if axes_explicit = 1 --major_ticks_y--
574      ;                              NUMBER OF MAJOR TICK MARKS AT Y-AXIS
575      ;
576      ; major_ticks_y can be set to any integer, best segmentation of y-axis
577      ; can be achieved, if
578      ; (number of gripdpoints in y-direction)/(major_ticks_y-1)=INTEGER,
579      ; e.g. 128/8 = 16 -> major_ticks_y should be set to 9
580      ;
581      ; data type: integer
582      ;
583      ; example: major_ticks_y = 6
584      ;
585      ; default:   6
586      ;***************************************************
587      if(.not. isvar("major_ticks_y"))then
588     
589         
590         major_ticks_y = 6
591         
592         
593      end if
594      ;***************************************************
595      ; OPTIONAL if axes_explicit = 1 --norm_x--norm_y--norm_z--
596      ;                              NORMALISE X-, Y- and Z-AXES
597      ;
598      ; normalising the axes with the given value;
599      ; units can explicitly be set;
600      ; by default no normalising is used and units are [meter]
601      ;
602      ; data type: float
603      ;
604      ; default:   1.0
605      ;***************************************************
606      if(.not. isvar("norm_x"))then     
607         
608         norm_x = 1.0   
609         
610      end if
611      if(.not. isvar("norm_y"))then     
612         
613         norm_y = 1.0   
614         
615      end if
616      if(.not. isvar("norm_z"))then     
617         
618         norm_z = 1.0   
619         
620      end if
621      ;***************************************************
622      ; OPTIONAL if axes_explicit = 1 --unit_x--unit_y--unit_z--
623      ;                              UNITS OF X-, Y- and Z-AXES
624      ;
625      ; units of the axes can be set; by default no units are given,
626      ; if norm_x, norm_y or norm_z are unequal 1., otherwise units are [meter]
627      ;
628      ; data type: string,
629      ;
630      ; example: unit_x = "m/s"
631      ;
632      ; default:   " "
633      ;***************************************************
634      if(.not. isvar("unit_x"))then     
635         
636         unit_x = " "   
637         
638      end if
639      if(.not. isvar("unit_y"))then     
640         
641         unit_y = " "   
642         
643      end if
644      if(.not. isvar("unit_z"))then     
645         
646         unit_z = " "   
647         
648      end if
649      ;***************************************************
650      ; OPTIONAL --vector-- VECTOR PLOT
651      ;
652      ; a vector plot for one defined vector is switched on [=1] or off [=0]
653      ;
654      ; data type: integer
655      ;
656      ; example: vector = 0
657      ;
658      ; default:   0
659      ;***************************************************
660      if(.not. isvar("vector"))then
661     
662         
663         vector = 0
664         
665         
666      end if     
667      ;***************************************************
668      ; REQUIRED IF vector=1 --vec1, vec2-- VECTOR FOR VECTOR PLOT
669      ;
670      ; variables for the vector, vec1 hast to be set to component 1 and
671      ; vec2 to component 2;
672      ; inidcate them with one comma before and after each variable;
673      ;
674      ; data type: string
675      ;
676      ; example: vec1=",u,"
677      ;          vec2=",v,"
678      ;
679      ; default:   vec1 = "component1", vec2 = "component2"
680      ;***************************************************
681      if(.not. isvar("vec1"))then     
682         
683         vec1 = "component1"
684         
685      end if
686      if (.not. isvar("vec2"))then
687     
688         vec2 = "component2"     
689         
690      end if     
691      ;***************************************************
692      ; OPTIONAL --plotvec-- VARIABLE FOR EXTRA VECTOR PLOT
693      ;
694      ; the vector plot can be combined with other plots of variables;
695      ; if this is desired inidcate the variables,
696      ; where a vector plot shall overlay; inidcate them with one comma
697      ; before and after each variable
698      ;
699      ; data type: string
700      ;
701      ; example: plotvec = ",u,w,"
702      ;
703      ; default:   "plotvec" (no combining,
704      ;                       the vector plot is created seperately)
705      ;***************************************************
706      if(.not. isvar("plotvec"))then
707     
708         
709         plotvec = "plotvec"
710         
711         
712      end if     
713      ;***************************************************
714      ; OPTIONAL --ref_mag-- REFERENCE VECTOR
715      ;
716      ; length of the reference vector in a vector plot
717      ;
718      ; data type: float
719      ;
720      ; example: ref_mag = 0.05
721      ;
722      ; default:   0.05
723      ;***************************************************
724      if(.not. isvar("ref_mag"))then
725     
726         
727         ref_mag = 0.05
728         
729         
730      end if             
731      ;***************************************************
732
733   end if
734
735   ;******************************************************
736   ; parameters used by PROFILES
737   ;******************************************************
738   
739   if (script .EQ. "profiles")then
740
741      ;***************************************************
742      ; REQUIRED --file_1-- 1ST INPUT FILE
743      ;
744      ; 1st input file produced by PALM; if there is more than one file for
745      ; all timesteps of a job chain, declare path and file name without
746      ; cycle number and ".nc" (first and last cycle numbers are given with
747      ; the parameters 'start_f' and 'end_f');
748      ; otherwise declare path and full file name
749      ;
750      ; data type: string
751      ;
752      ; example: file_1 = "/path_to_file/file_pr"     
753      ;                     if you use more than one cycle number
754      ;          file_1 = "/path_to_file/file_pr.4.nc"
755      ;                     if you use one file (e.g. with cycle number 4)
756      ;
757      ; default:   "File in"
758      ;***************************************************
759      if(.not. isvar("file_1"))then
760
761
762         file_1 = "File in"
763         
764         
765      end if
766      ;***************************************************
767      ; OPTIONAL/REQUIRED --start_f_1-- if more than one file of a job chain
768      ;                    START OF CYCLIC NUMBER OF THE 1ST INPUT FILE
769      ;
770      ; if there is more than one file for all timesteps of a job chain,
771      ; declare the first cyclicnumber which contains timesteps
772      ; you'd like to use
773      ;
774      ; data type: integer
775      ;
776      ; example:   3 (if first file: example_pr.3.nc) and
777      ;            0 (if first file: example_pr.nc)
778      ;
779      ; default:   -1 
780      ;***************************************************
781      if (.not. isvar("start_f_1"))then 
782     
783         
784         start_f_1 = -1
785         
786         
787      end if
788      ;***************************************************
789      ; OPTIONAL/REQUIRED --end_f_1--  if more than one file of a job chain
790      ;            END OF CYCLIC NUMBER OF THE 1ST INPUT FILE
791      ;
792      ; if there is more than one file for all timesteps of a job chain,
793      ; declare the last cyclicnumber which contains timesteps
794      ; you'd like to use
795      ;
796      ; data type: integer
797      ;
798      ; example:   48 (if last file: example_pr.48.nc) and
799      ;             0 (if last file: example_pr.nc)
800      ;
801      ; default:   -1 
802      ;***************************************************
803      if (.not. isvar("end_f_1"))then 
804     
805         
806         end_f_1 = -1
807         
808         
809      end if
810      ;***************************************************
811      ; OPTIONAL --format_out-- OUTPUT FORMAT
812      ;
813      ; supported file formats: x11, pdf, ps, eps, epsi or ncgm
814      ;
815      ; data type: string
816      ;
817      ; default:   "x11"
818      ;***************************************************
819      if (.not. isvar("format_out"))then         
820     
821     
822         format_out = "x11"
823         
824         
825      end if     
826      ;***************************************************
827      ; OPTIONAL --file_out-- OUTPUT FILE
828      ;
829      ; declare path and name of the output file
830      ;
831      ; data type: string
832      ;
833      ; default:   "~/test_pr"
834      ;***************************************************
835      if (.not. isvar("file_out"))then 
836     
837       
838         file_out = "~/test_pr"
839         
840         
841      end if     
842      ;***************************************************
843      ; OPTIONAL --no_columns-- NUMBER OF COLUMNS
844      ;
845      ; number of plots in one row
846      ;
847      ; data type: integer
848      ;
849      ; default:   1
850      ;***************************************************
851      if (.not. isvar("no_columns"))then         
852     
853     
854         no_columns = 1
855         
856         
857      end if     
858      ;***************************************************
859      ; OPTIONAL --no_rows-- NUMBER OF ROWS
860      ;
861      ; number of plots in one column
862      ;
863      ; data type: integer
864      ;
865      ; default:   2
866      ;***************************************************
867      if (.not. isvar("no_rows"))then   
868     
869       
870         no_rows = 2
871         
872         
873      end if     
874      ;***************************************************
875      ; OPTIONAL --var-- OUTPUT VARIABLES
876      ;
877      ; names of output variables;
878      ; inidcate them with one comma before and after each variable
879      ; if the name contains double quotes (") use dq and the '+' operation to
880      ; concatenate the strings
881      ;
882      ; data type: string
883      ;
884      ; example: var = ",u,v,w,w*pt*,w"+dq+"pt"+dq+",wpt,"
885      ;
886      ; default:   "all" (all available variables are plotted)
887      ;***************************************************
888      if (.not. isvar("var"))then
889     
890         
891         var = "all"
892         
893         
894      end if
895      ;***************************************************
896      ; OPTIONAL --legend-- SWITCHES ON A LEGEND
897      ;
898      ; a legend is switched on [=1] or off [=0]
899      ;
900      ; data type: integer
901      ;
902      ; example: legend = 1
903      ;
904      ; default:   1
905      ;***************************************************
906      if (.not. isvar("legend"))then
907     
908         
909         legend = 1
910         
911         
912      end if   
913      ;***************************************************
914      ; OPTIONAL ---no_files-- NUMBER OF INPUT FILES
915      ;
916      ; up to 6 input files of different runs can be used; all input files
917      ; must contain the same variables and dimensionalties;
918      ; identical variables are merged in one plot;
919      ; combining or overlaying of any variables is not feasible;
920      ; an extra legend (besides the time step legend) is drawn where you
921      ; can explicitily name the items
922      ;
923      ; data type: integer
924      ;
925      ; default:   1
926      ;***************************************************
927      if (.not. isvar("no_files"))then
928     
929         
930         no_files = 1
931         
932         
933      end if     
934      ;***************************************************
935      ; OPTIONAL --name_legend_1-- 1st LEGEND ITEM
936      ;
937      ; if no_files > 1: name of 1st item in extra legend
938      ;
939      ; data type: string
940      ;
941      ; default:   "File 1"
942      ;***************************************************
943      if (.not. isvar("name_legend_1"))then
944     
945           
946         name_legend_1 = "File 1"
947         
948         
949      end if
950      ;***************************************************
951      ; REQUIRED if no_files > 1 --file_2-- 2ND INPUT FILE
952      ;
953      ; 2nd input file produced by PALM; if there is more than one file
954      ; for all timesteps of a job chain,
955      ; declare path and file name without cycle number and ".nc" (first and
956      ; last cycle numbers are given with the parameters
957      ; 'start_f' and 'end_f');
958      ; otherwise declare path and full file name
959      ;
960      ; data type: string
961      ;
962      ; example: file_2 = "/path_to_file/file_pr"     
963      ;                    if you use more than one cycle number
964      ;          file_2 = "/path_to_file/file_pr.4.nc"
965      ;                    if you use one file (e.g. with cycle number 4)
966      ;
967      ; default:   "File in"
968      ;***************************************************
969      if(.not. isvar("file_2"))then
970
971
972         file_2 = "File in"
973         
974         
975      end if
976      ;***************************************************
977      ; OPTIONAL/REQUIRED --start_f_2-- if more than one file of a job chain
978      ;                       START OF CYCLIC NUMBER OF THE 2ND INPUT FILE
979      ;
980      ; if there is more than one file for all timesteps of a job chain,
981      ; declare the first cyclicnumber which contains timesteps
982      ; you'd like to use
983      ;
984      ; data type: integer
985      ;
986      ; example:   3 (if first file: example_ts.3.nc)
987      ;
988      ; default:   -1 
989      ;***************************************************
990      if (.not. isvar("start_f_2"))then 
991     
992         
993         start_f_2 = -1
994         
995         
996      end if
997      ;***************************************************
998      ; REQUIRED --end_f_2-- if more than one file of a job chain
999      ;                      END OF CYCLIC NUMBER OF THE 2ND INPUT FILE
1000      ;
1001      ; if there is more than one file for all timesteps of a job chain,
1002      ; declare the last cyclicnumber which contains timesteps
1003      ; you'd like to use
1004      ;
1005      ; data type: integer
1006      ;
1007      ; example:   48 (if last file: example_ts.48.nc)
1008      ;
1009      ; default:   -1 
1010      ;***************************************************
1011      if (.not. isvar("end_f_2"))then 
1012     
1013         
1014         end_f_2 = -1
1015         
1016         
1017      end if             
1018      ;***************************************************
1019      ; OPTIONAL --name_legend_2-- 2nd LEGEND ITEM
1020      ;
1021      ; if no_files > 1: name of 2nd item in extra legend
1022      ;
1023      ; data type: string
1024      ;
1025      ; default:   "File 2"
1026      ;***************************************************
1027      if (.not. isvar("name_legend_2"))then   
1028     
1029         
1030         name_legend_2 = "File 2"
1031         
1032         
1033      end if
1034      ;***************************************************
1035      ; REQUIRED if no_files > 2 --file_3-- 3RD INPUT FILE
1036      ;
1037      ; 3rd input file produced by PALM; if there is more than one file
1038      ; for all timesteps of a job chain,
1039      ; declare path and file name without cycle number and ".nc" (first and
1040      ; last cycle numbers are given with the parameters
1041      ; 'start_f' and 'end_f');
1042      ; otherwise declare path and full file name
1043      ;
1044      ; data type: string
1045      ;
1046      ; example: file_3 = "/path_to_file/file_pr"     
1047      ;                     if you use more than one cycle number
1048      ;          file_3 = "/path_to_file/file_pr.4.nc"
1049      ;                     if you use one file (e.g. with cycle number 4)
1050      ;
1051      ; default:   "File in"
1052      ;***************************************************
1053      if(.not. isvar("file_3"))then
1054
1055
1056         file_3 = "File in"
1057         
1058         
1059      end if
1060      ;***************************************************
1061      ; OPTIONAL/REQUIRED --start_f_3-- if more than one file of a job chain
1062      ;                        START OF CYCLIC NUMBER OF THE 3RD INPUT FILE
1063      ;
1064      ; if there is more than one file for all timesteps of a job chain,
1065      ; declare the first cyclicnumber which contains timesteps
1066      ; you'd like to use
1067      ;
1068      ; data type: integer
1069      ;
1070      ; example:   3 (if first file: example_ts.3.nc)
1071      ;
1072      ; default:   -1 
1073      ;***************************************************
1074      if (.not. isvar("start_f_3"))then 
1075     
1076         
1077         start_f_3 = -1
1078         
1079         
1080      end if
1081      ;***************************************************
1082      ; OPTIONAL/REQUIRED --end_f_3-- if more than one file of a job chain
1083      ;                    END OF CYCLIC NUMBER OF THE 3RD INPUT FILE
1084      ;
1085      ; if there is more than one file for all timesteps of a job chain,
1086      ; declare
1087      ; the last cyclicnumber which contains timesteps you'd like to use
1088      ;
1089      ; data type: integer
1090      ;
1091      ; example:   48 (if last file: example_ts.48.nc)
1092      ;
1093      ; default:   -1 
1094      ;***************************************************
1095      if (.not. isvar("end_f_3"))then 
1096     
1097         
1098         end_f_3 = -1
1099         
1100         
1101      end if   
1102      ;***************************************************
1103      ; OPTIONAL --name_legend_3-- 3rd LEGEND ITEM
1104      ;
1105      ; if no_files > 2: name of 3rd item in extra legend
1106      ;
1107      ; data type: string
1108      ;
1109      ; default:   "File 3"
1110      ;***************************************************
1111      if (.not. isvar("name_legend_3"))then
1112     
1113           
1114         name_legend_3 = "File 3"
1115         
1116         
1117      end if
1118      ;***************************************************
1119      ; REQUIRED if no_files > 3 --file_4-- 4TH INPUT FILE
1120      ;
1121      ; 4th input file produced by PALM; if there is more than one file for
1122      ; all timesteps of a job chain,
1123      ; declare path and file name without cycle number and ".nc" (first and
1124      ; last cycle numbers are given with the parameters
1125      ; 'start_f' and 'end_f');
1126      ; otherwise declare path and full file name
1127      ;
1128      ; data type: string
1129      ;
1130      ; example: file_4 = "/path_to_file/file_pr"     
1131      ;                     if you use more than one cycle number
1132      ;          file_4 = "/path_to_file/file_pr.4.nc"
1133      ;                      if you use one file (e.g. with cycle number 4)
1134      ;
1135      ; default:   "File in"
1136      ;***************************************************
1137      if(.not. isvar("file_4"))then
1138
1139
1140         file_4 = "File in"
1141         
1142         
1143      end if
1144      ;***************************************************
1145      ; OPTIONAL/REQUIRED --start_f_4-- if more than one file of a job chain
1146      ;                          START OF CYCLIC NUMBER OF THE 4TH INPUT FILE
1147      ;
1148      ; if there is more than one file for all timesteps of a job chain,
1149      ; declare the first cyclicnumber which contains timesteps
1150      ; you'd like to use
1151      ;
1152      ; data type: integer
1153      ;
1154      ; example:   3 (if first file: example_ts.3.nc)
1155      ;
1156      ; default:   -1 
1157      ;***************************************************
1158      if (.not. isvar("start_f_4"))then 
1159     
1160         
1161         start_f_4 = -1
1162         
1163         
1164      end if
1165      ;***************************************************
1166      ; OPTIONAL/REQUIRED --end_f_4-- if more than one file of a job chain
1167      ;                   END OF CYCLIC NUMBER OF THE 4TH INPUT FILE
1168      ;
1169      ; if there is more than one file for all timesteps of a job chain,
1170      ; declare the last cyclicnumber which contains timesteps
1171      ; you'd like to use
1172      ;
1173      ; data type: integer
1174      ;
1175      ; example:   48 (if last file: example_ts.48.nc)
1176      ;
1177      ; default:   -1 
1178      ;***************************************************
1179      if (.not. isvar("end_f_4"))then 
1180     
1181         
1182         end_f_4 = -1
1183         
1184         
1185      end if 
1186      ;***************************************************
1187      ; OPTIONAL --name_legend_4-- 4th LEGEND ITEM
1188      ;
1189      ; if no_files > 3: name of 4th item in extra legend
1190      ;
1191      ; data type: string
1192      ;
1193      ; default:   "File 4"
1194      ;***************************************************
1195      if (.not. isvar("name_legend_4"))then   
1196     
1197       
1198         name_legend_4 = "File 4"
1199         
1200         
1201      end if
1202      ;***************************************************
1203      ; REQUIRED if no_files > 4 --file_5-- 5TH INPUT FILE
1204      ;
1205      ; 5th input file produced by PALM; if there is more than one file for
1206      ; all timesteps of a job chain,
1207      ; declare path and file name without cycle number and ".nc" (first and
1208      ; last cycle numbers are given with the parameters
1209      ; 'start_f' and 'end_f');
1210      ; otherwise declare path and full file name
1211      ;
1212      ; data type: string
1213      ;
1214      ; example: file_5 = "/path_to_file/file_pr"     
1215      ;                     if you use more than one cycle number
1216      ;          file_5 = "/path_to_file/file_pr.4.nc"
1217      ;                     if you use one file (e.g. with cycle number 4)
1218      ;
1219      ; default:   "File in"
1220      ;***************************************************
1221      if(.not. isvar("file_5"))then
1222
1223
1224         file_5 = "File in"
1225         
1226         
1227      end if
1228      ;***************************************************
1229      ; OPTIONAL/REQUIRED --start_f_5-- if more than one file of a job chain
1230      ;                     START OF CYCLIC NUMBER OF THE 5TH INPUT FILE
1231      ;
1232      ; if there is more than one file for all timesteps of a job chain,
1233      ; declare the first cyclicnumber which contains timesteps
1234      ; you'd like to use
1235      ;
1236      ; data type: integer
1237      ;
1238      ; example:   3 (if first file: example_ts.3.nc)
1239      ;
1240      ; default:   -1 
1241      ;***************************************************
1242      if (.not. isvar("start_f_5"))then 
1243     
1244         
1245         start_f_5 = -1
1246         
1247         
1248      end if
1249      ;***************************************************
1250      ; OPTIONAL/REQUIRED --end_f_5-- if more than one file of a job chain
1251      ;END OF CYCLIC NUMBER OF THE 5TH INPUT FILE
1252      ;
1253      ; if there is more than one file for all timesteps of a job chain,
1254      ; declare the last cyclicnumber which contains timesteps
1255      ; you'd like to use
1256      ;
1257      ; data type: integer
1258      ;
1259      ; example:   48 (if last file: example_ts.48.nc)
1260      ;
1261      ; default:   -1 
1262      ;***************************************************
1263      if (.not. isvar("end_f_5"))then 
1264     
1265         
1266         end_f_5 = -1
1267         
1268         
1269      end if     
1270      ;***************************************************
1271      ; OPTIONAL --name_legend_5-- 5th LEGEND ITEM
1272      ;
1273      ; if no_files > 4: name of 5th item in extra legend
1274      ;
1275      ; data type: string
1276      ;
1277      ; default:   "File 5"
1278      ;***************************************************
1279      if (.not. isvar("name_legend_5"))then
1280     
1281           
1282         name_legend_5 = "File 5"
1283         
1284         
1285      end if
1286      ;***************************************************
1287      ; REQUIRED if no_files > 5 --file_6-- 6TH INPUT FILE
1288      ;
1289      ; 6th input file produced by PALM; if there is more than one file for
1290      ; all timesteps of a job chain,
1291      ; declare path and file name without cycle number and ".nc" (first and
1292      ; last cycle numbers are given with the parameters
1293      ; 'start_f' and 'end_f');
1294      ; otherwise declare path and full file name
1295      ;
1296      ; data type: string
1297      ;
1298      ; example: file_6 = "/path_to_file/file_pr"     
1299      ;                     if you use more than one cycle number
1300      ;          file_6 = "/path_to_file/file_pr.4.nc"
1301      ;                     if you use one file (e.g. with cycle number 4)
1302      ;
1303      ; default:   "File in"
1304      ;***************************************************
1305      if(.not. isvar("file_6"))then
1306
1307
1308         file_6 = "File in"
1309         
1310         
1311      end if
1312      ;***************************************************
1313      ; OPTIONAL/REQUIRED --start_f_6-- if more than one file of a job chain
1314      ;                     START OF CYCLIC NUMBER OF THE 6TH INPUT FILE
1315      ;
1316      ; if there is more than one file for all timesteps of a job chain,
1317      ; declare the first cyclicnumber which contains timesteps
1318      ; you'd like to use
1319      ;
1320      ; data type: integer
1321      ;
1322      ; example:   3 (if first file: example_ts.3.nc)
1323      ;
1324      ; default:   -1 
1325      ;***************************************************
1326      if (.not. isvar("start_f_6"))then 
1327     
1328         
1329         start_f_6 = -1
1330         
1331         
1332      end if
1333      ;***************************************************
1334      ; OPTIONAL/REQUIRED --end_f_6-- if more than one file of a job chain
1335      ; END OF CYCLIC NUMBER OF THE 6TH INPUT FILE
1336      ;
1337      ; if there is more than one file for all timesteps of a job chain,
1338      ; declare the last cyclicnumber which contains timesteps
1339      ; you'd like to use
1340      ;
1341      ; data type: integer
1342      ;
1343      ; example:   48 (if last file: example_ts.48.nc)
1344      ;
1345      ; default:   -1 
1346      ;***************************************************
1347      if (.not. isvar("end_f_6"))then 
1348     
1349         
1350         end_f_6 = -1
1351         
1352         
1353      end if                     
1354      ;***************************************************
1355      ; OPTIONAL --name_legend_6-- 6TH LEGEND ITEM
1356      ;
1357      ; if no_files > 5: name of 6th item in extra legend
1358      ;
1359      ; data type: string
1360      ;
1361      ; default:   "File 6"
1362      ;***************************************************
1363      if (.not. isvar("name_legend_6"))then
1364     
1365           
1366         name_legend_6 = "File 6"
1367         
1368         
1369      end if             
1370      ;***************************************************
1371      ; OPTIONAL --start_time_step-- FIRST TIME STEP
1372      ;
1373      ; first time step of plot; there is no need to specify a precise
1374      ; time value from the input file,
1375      ; 'start_time_step' is rounded to the next existent time step
1376      ;
1377      ; data type: double; dimension: [hour]
1378      ;
1379      ; example:   start_time_step = 0.5d
1380      ;
1381      ; default:   -1.d (first available time step)
1382      ;***************************************************
1383      if (.not. isvar("start_time_step"))then   
1384     
1385       
1386         start_time_step = -1.d
1387         
1388         
1389      end if     
1390      ;***************************************************
1391      ; OPTIONAL --end_time_step-- LAST TIME STEP
1392      ;
1393      ; last time step of plot; there is no need to specify a precise
1394      ; time value from the input file,
1395      ; 'end_time_step' is rounded to the next existent time step
1396      ;
1397      ; data type: double; dimension: [hour]
1398      ;
1399      ; example:   end_time_step = 2.0d
1400      ;
1401      ; default:   -1.d (last available time step)
1402      ;***************************************************
1403      if (.not. isvar("end_time_step"))then
1404     
1405         
1406         end_time_step = -1.d   
1407         
1408         
1409      end if
1410      ;***************************************************
1411      ; OPTIONAL --time_stride-- TEMPORAL STRIDE
1412      ;
1413      ; temporal stride for the plots; if time_stride=1 all the profiles
1414      ; between first_time_step and end_time_step are plotted
1415      ; (including first_time_step and end_time_step),
1416      ; if time_stride=3 every third time step between start_time_step and
1417      ; end_time_step is plotted
1418      ;
1419      ; data type: integer
1420      ;
1421      ; example:   time_stride = 3
1422      ;
1423      ; default:   1
1424      ;***************************************************
1425      if (.not. isvar("time_stride"))then       
1426     
1427       
1428         time_stride = 1
1429         
1430         
1431      end if
1432      ;***************************************************
1433      ; OPTIONAL --start_x-- STARTVALUE IN X-DIRECTION 
1434      ;
1435      ; if 3D data is used for profiles you can choose a startvalue
1436      ; in x-direction for horizontal averaging
1437      ;
1438      ; data type: integer; dimension [grippoint]
1439      ;
1440      ; example: start_x = 0
1441      ;
1442      ; default:   0 (minimum of range)
1443      ;***************************************************
1444      if (.not. isvar("start_x"))then   
1445     
1446         
1447         start_x = 0
1448         
1449         
1450      end if
1451      ;***************************************************
1452      ; OPTIONAL --end_x-- ENDVALUE IN X-DIRECTION 
1453      ;
1454      ; if 3D data is used for profiles you can choose an endvalue
1455      ; in x-direction for horizontal averaging
1456      ;
1457      ; data type: integer; dimension [grippoint]
1458      ;
1459      ; example: end_x = 200
1460      ;
1461      ; default:   -1 (maximum of range excluding ghostpoint)
1462      ;***************************************************
1463      if (.not. isvar("end_x"))then   
1464     
1465         
1466         end_x = -1
1467         
1468         
1469      end if
1470      ;***************************************************
1471      ; OPTIONAL --start_y-- STARTVALUE IN Y-DIRECTION 
1472      ;
1473      ; if 3D data is used for profiles you can choose a startvalue
1474      ; in y-direction for horizontal averaging
1475      ;
1476      ; data type: integer; dimension [grippoint]
1477      ;
1478      ; example: start_y = 0
1479      ;
1480      ; default:   0 (minimum of range)
1481      ;***************************************************
1482      if (.not. isvar("start_y"))then   
1483     
1484         
1485         start_y = 0
1486         
1487         
1488      end if
1489      ;***************************************************
1490      ; OPTIONAL --end_y-- ENDVALUE IN Y-DIRECTION 
1491      ;
1492      ; if 3D data is used for profiles you can choose an endvalue
1493      ; in y-direction for horizontal averaging
1494      ;
1495      ; data type: integer; dimension [grippoint]
1496      ;
1497      ; example: end_y = 200
1498      ;
1499      ; default:   -1 (maximum of range excluding ghostpoint)
1500      ;***************************************************
1501      if (.not. isvar("end_y"))then   
1502     
1503         
1504         end_y = -1
1505         
1506         
1507      end if     
1508      ;***************************************************
1509      ; OPTIONAL --xs-- MINIMUM X-AXIS
1510      ;
1511      ; value for minimum of x-axis
1512      ;
1513      ; data type: float; dimension of variable
1514      ;
1515      ; example: xs = 300. (e.g. if var=",pt")
1516      ;
1517      ; default:   -1. (minimum of range)
1518      ;***************************************************
1519      if (.not. isvar("xs"))then   
1520     
1521         
1522         xs = -1.
1523         
1524         
1525      end if     
1526      ;***************************************************
1527      ; OPTIONAL --xe-- MAXIMUM X-AXIS
1528      ;
1529      ; value for maximum of x-axis
1530      ;
1531      ; data type: float; dimension of variable
1532      ;
1533      ; example: xe = 302. (e.g. if var=",pt")
1534      ;
1535      ; default:   -1. (maximum of range)
1536      ;***************************************************
1537      if (.not. isvar("xe"))then 
1538     
1539         
1540         xe = -1.
1541         
1542         
1543      end if     
1544      ;***************************************************
1545      ; OPTIONAL --min_z-- MINIMUM Z-AXIS
1546      ;
1547      ; value for minimum height of z-axis
1548      ;
1549      ; data type: double; dimension: [meter]
1550      ;
1551      ; example: min_z = 0.0d
1552      ;
1553      ; default:   -1.d (related to the minimum of z-axis in input file)
1554      ;***************************************************
1555      if (.not. isvar("min_z"))then   
1556     
1557         
1558         min_z = -1.d
1559         
1560         
1561      end if     
1562      ;***************************************************
1563      ; OPTIONAL --max_z-- MAXIMUM Z-AXIS
1564      ;
1565      ; value for maximum height of z-axis
1566      ;
1567      ; data type: double; dimension: [meter]
1568      ;
1569      ; example: max_z = 1000.0d
1570      ;
1571      ; default:   -1.d (related to the maximum of z-axis in input file)
1572      ;***************************************************
1573      if (.not. isvar("max_z"))then   
1574     
1575         
1576         max_z = -1.d
1577         
1578         
1579      end if     
1580      ;***************************************************
1581      ; OPTIONAL --log_z-- LOGARITHMIC SCALE OF Z-AXIS
1582      ;
1583      ; logarithmic scale for z-axis is switched on [=1] or off [=0]
1584      ;
1585      ; data type: integer
1586      ;
1587      ; example: log_z = 0
1588      ;
1589      ; default:   0
1590      ;***************************************************
1591      if (.not. isvar("log_z"))then
1592     
1593           
1594         log_z = 0
1595         
1596         
1597      end if     
1598      ;***************************************************
1599      ; OPTIONAL --norm_z-- NORMALISING Z-AXIS
1600      ;
1601      ; value for normalising the z-axis
1602      ;
1603      ; data type: float
1604      ;
1605      ; example: norm_z = 1.
1606      ;
1607      ; default:   1. (no normalising)
1608      ;***************************************************
1609      if (.not. isvar("norm_z"))then
1610     
1611           
1612         norm_z = 1.
1613         
1614         
1615      end if     
1616      ;***************************************************
1617      ; OPTIONAL --over-- OVERLAYING
1618      ;
1619      ; predefined overlaying of standard variables is switched
1620      ; on [=1] or off [=0];
1621      ; this feature cannot be used with statistic regions
1622      ;
1623      ; data type: integer
1624      ;
1625      ; example: over = 0
1626      ;
1627      ; default:   0
1628      ;***************************************************
1629      if (.not. isvar("over"))then
1630     
1631         
1632         over = 0
1633         
1634         
1635      end if     
1636      ;***************************************************
1637      ; OPTIONAL --combine-- COMBINING
1638      ;
1639      ; combining of two or three individual variables is possible and
1640      ; switched on [=1] or off[=0]
1641      ;
1642      ; data type: integer
1643      ;
1644      ; example: combine = 0
1645      ;
1646      ; default:   0
1647      ;***************************************************
1648      if (.not. isvar("combine"))then 
1649     
1650         
1651         combine = 0
1652         
1653         
1654      end if     
1655      ;***************************************************
1656      ; REQUIRED IF combine=1 --number_comb-- NUMBER FOR COMBINING
1657      ;
1658      ; number of variables for combining; 2 or 3 is valid
1659      ;
1660      ; data type: integer
1661      ;
1662      ; example: number_comb = 2
1663      ;
1664      ; default:   -1
1665      ;***************************************************
1666      if (.not. isvar("number_comb"))then
1667     
1668           
1669         number_comb = -1
1670         
1671         
1672      end if     
1673      ;***************************************************
1674      ; REQUIRED IF combine=1 --c_var-- VARIABLES FOR COMBINING
1675      ;
1676      ; names of variables;
1677      ; inidcate them with one comma before and after each variable
1678      ; if the name contains double quotes (") use dq and the '+' operation to
1679      ; concatenate the strings
1680      ;
1681      ; data type: string
1682      ;
1683      ; example: c_var = ",u,v,w,w*pt*,w"+dq+"pt"+dq+",wpt,"
1684      ;
1685      ; default:   "c_variables"
1686      ;***************************************************
1687      if (.not. isvar("c_var"))then
1688     
1689           
1690         c_var = "c_variables"
1691         
1692         
1693      end if     
1694      ;***************************************************
1695      ; OPTIONAL --black-- BLACK OR COLOR LINES
1696      ;
1697      ; colored [=0] or black and white [=1] plots
1698      ;
1699      ; data type: integer
1700      ;
1701      ; example: black = 0
1702      ;
1703      ; default:   0
1704      ;***************************************************
1705      if (.not. isvar("black"))then
1706     
1707           
1708         black = 0
1709         
1710         
1711      end if     
1712      ;***************************************************
1713      ; OPTIONAL --dash-- DASHED LINES
1714      ;
1715      ; use of different line patterns [=1] or continous lines [=0]
1716      ; for different time steps
1717      ;
1718      ; data type: integer
1719      ;
1720      ; example: dash = 0
1721      ;
1722      ; default:   0
1723      ;***************************************************
1724      if (.not. isvar("dash"))then     
1725     
1726       
1727         dash = 0     
1728         
1729         
1730      end if
1731      ;***************************************************
1732      ; OPTIONAL --font_size-- FONT SIZE OF STRINGS
1733      ;
1734      ; font size can be changed to fit to the current plot
1735      ;
1736      ; data type: float
1737      ;
1738      ; example: font_size = 0.02
1739      ;
1740      ; default:   0.02
1741      ;***************************************************
1742      if(.not. isvar("font_size"))then
1743     
1744         
1745         font_size = 0.02
1746         
1747         
1748      end if
1749      ;***************************************************
1750      ; OPTIONAL --font_size_legend-- FONT SIZE OF LEGEND STRINGS
1751      ;
1752      ; font size of the legend can be changed to fit to the current plot
1753      ;
1754      ; data type: float
1755      ;
1756      ; example: font_size_legend = 0.2
1757      ;
1758      ; default:   0.2
1759      ;***************************************************
1760      if(.not. isvar("font_size_legend"))then
1761     
1762         
1763         font_size_legend = 0.2
1764         
1765         
1766      end if     
1767      ;***************************************************
1768       
1769   end if
1770
1771   ;******************************************************
1772   ; parameters used by SPECTRA
1773   ;******************************************************
1774   
1775   if (script .EQ. "spectra") then
1776
1777      ;***************************************************
1778      ; REQUIRED --file_1-- INPUT FILE
1779      ;
1780      ; input file produced by PALM; if there is more than one file for
1781      ; all timesteps of a job chain,
1782      ; declare path and file name without cycle number and ".nc" (first and
1783      ; last cycle numbers are given with the parameters
1784      ; 'start_f' and 'end_f');
1785      ; otherwise declare path and full file name
1786      ;
1787      ; data type: string
1788      ;
1789      ; example: file_1 = "/path_to_file/file_sp"     
1790      ;                     if you use more than one cycle number
1791      ;          file_1 = "/path_to_file/file_sp.4.nc"
1792      ;                     if you use one file (e.g. with cycle number 4)
1793      ;
1794      ; default:   "File in"
1795      ;***************************************************
1796      if(.not. isvar("file_1"))then
1797
1798
1799         file_1 = "File in"
1800         
1801         
1802      end if
1803      ;***************************************************
1804      ; OPTIONAL/REQUIRED if more than one file of a job chain
1805      ;           --start_f-- START OF CYCLIC NUMBER
1806      ;
1807      ; if there is more than one file for all timesteps of a job chain,
1808      ; declare the first cyclicnumber which contains timesteps
1809      ; you'd like to use
1810      ;
1811      ; data type: integer
1812      ;
1813      ; example:   start_f = 3 (if first file: example_sp.3.nc) and
1814      ;            start_f = 0 (if first file: example_sp.nc)
1815      ;
1816      ; default:   -1 
1817      ;***************************************************
1818      if (.not. isvar("start_f"))then 
1819     
1820         
1821         start_f = -1
1822         
1823         
1824      end if
1825      ;***************************************************
1826      ; OPTIONAL/REQUIRED if more than one file of a job chain
1827      ;          --end_f-- END OF CYCLIC NUMBER
1828      ;
1829      ; if there is more than one file for all timesteps of a job chain,
1830      ; declare the last cyclicnumber which contains timesteps
1831      ; you'd like to use
1832      ;
1833      ; data type: integer
1834      ;
1835      ; example:   end_f = 48 (if last file: example_sp.48.nc) and
1836      ;            end_f =  0 (if last file: example_sp.nc)
1837      ;
1838      ; default:   -1 
1839      ;***************************************************
1840      if (.not. isvar("end_f"))then 
1841     
1842         
1843         end_f = -1
1844         
1845         
1846      end if
1847      ;***************************************************
1848      ; OPTIONAL --format_out-- OUTPUT FORMAT
1849      ;
1850      ; format of the output file;
1851      ; supported file formats: x11, pdf, ps, eps, epsi or ncgm
1852      ;
1853      ; data type: string
1854      ;
1855      ; example: format_out = "pdf"
1856      ;
1857      ; default:   "x11"
1858      ;***************************************************
1859      if (.not. isvar("format_out"))then       
1860     
1861       
1862         format_out = "x11"
1863         
1864         
1865      end if     
1866      ;***************************************************
1867      ; OPTIONAL --file_out-- OUTPUT FILE
1868      ;
1869      ; path and name of the output file
1870      ;
1871      ; data type: string
1872      ;
1873      ; example: file_out = "/home/path_to_output/test_sp"
1874      ;
1875      ; default:   "~/test_sp"
1876      ;***************************************************
1877      if (.not. isvar("file_out"))then 
1878     
1879       
1880         file_out = "~/test_sp"
1881         
1882         
1883      end if     
1884      ;***************************************************
1885      ; OPTIONAL --no_columns-- NUMBER OF COLUMNS
1886      ;
1887      ; number of plots in one row
1888      ;
1889      ; data type: integer
1890      ;
1891      ; example: no_columns = 1
1892      ;
1893      ; default:   1
1894      ;***************************************************
1895      if (.not. isvar("no_columns"))then         
1896     
1897     
1898         no_columns = 1
1899         
1900         
1901      end if     
1902      ;***************************************************
1903      ; OPTIONAL --no_rows-- NUMBER OF ROWS
1904      ;
1905      ; number of plots in one column
1906      ;
1907      ; data type: integer
1908      ;
1909      ; example: no_rows = 2
1910      ;
1911      ; default:   2
1912      ;***************************************************
1913      if (.not. isvar("no_rows"))then
1914     
1915         
1916         no_rows = 2
1917         
1918         
1919      end if     
1920      ;***************************************************
1921      ; OPTIONAL --var-- OUTPUT VARIABLES
1922      ;
1923      ; names of output variables;
1924      ; inidcate them with one comma before and after each variable
1925      ; if the name contains double quotes (") use dq and the '+' operation to
1926      ; concatenate the strings
1927      ;
1928      ; data type: string
1929      ;
1930      ; example: var = ",u,v,w,"
1931      ;
1932      ; default:   "all" (all available variables are plotted)
1933      ;***************************************************
1934      if (.not. isvar("var"))then
1935     
1936         
1937         var = "all"
1938         
1939         
1940      end if     
1941      ;***************************************************
1942      ; OPTIONAL --height_level-- HEIGHT LEVELS
1943      ;
1944      ; defines if all levels or selected levels are output;
1945      ; a 1D array with up to 100 elements
1946      ; from 0 to 99 must be indicated
1947      ;
1948      ; data type: integer array
1949      ;
1950      ; example: height_level=(/0,3,7/)
1951      ;
1952      ; default:   (/-1/) (all levels are output)
1953      ;***************************************************
1954      if (.not. isvar("height_level"))then
1955     
1956         
1957         height_level = (/-1/)
1958         
1959         
1960      end if     
1961      ;***************************************************
1962      ; OPTIONAL --sort-- TYPE OF SORTING
1963      ;
1964      ; defines if all heights [="height"] or all timesteps [="time"]
1965      ; are merged in one plot
1966      ;
1967      ; data type: string
1968      ;
1969      ; example: sort = "height"
1970      ;
1971      ; default:   "height"
1972      ;***************************************************
1973      if (.not. isvar("sort"))then
1974     
1975         
1976         sort = "height"
1977         
1978         
1979      end if     
1980      ;***************************************************
1981      ; OPTIONAL --start_time_step-- FIRST TIME STEP
1982      ;
1983      ; first time step of plot; there is no need to specify a precise
1984      ; time value from the input file,
1985      ; 'start_time_step' is rounded to the next existent time step
1986      ;
1987      ; data type: double; dimension: [hour]
1988      ;
1989      ; example:   start_time_step = 0.5d
1990      ;
1991      ; default:   -1.d (first available time step)
1992      ;***************************************************
1993      if (.not. isvar("start_time_step"))then
1994     
1995         
1996         start_time_step = -1.d
1997         
1998         
1999      end if     
2000      ;***************************************************
2001      ; OPTIONAL --end_time_step-- LAST TIME STEP
2002      ;
2003      ; last time step of plot; there is no need to specify a precise
2004      ; time value from the input file,
2005      ; 'end_time_step' is rounded to the next existent time step
2006      ;
2007      ; data type: double; dimension: [hour]
2008      ;
2009      ; example:   end_time_step = 2.0d
2010      ;
2011      ; default:   -1.d (last available time step)
2012      ;***************************************************
2013      if (.not. isvar("end_time_step"))then
2014     
2015         
2016         end_time_step = -1.d
2017         
2018         
2019      end if   
2020      ;***************************************************
2021      ; OPTIONAL --black-- BLACK OR COLOR LINES
2022      ;
2023      ; colored [=0] or black and white [=1] plots
2024      ;
2025      ; data type: integer
2026      ;
2027      ; example: black = 0
2028      ;
2029      ; default:   0
2030      ;***************************************************
2031      if (.not. isvar("black"))then
2032     
2033           
2034         black = 0
2035         
2036         
2037      end if     
2038      ;***************************************************
2039      ; OPTIONAL --dash-- DASHED LINES
2040      ;
2041      ; use of different line patterns [=1] or continous lines [=0]
2042      ;
2043      ; data type: integer
2044      ;
2045      ; example: dash = 0
2046      ;
2047      ; default:   0
2048      ;***************************************************
2049      if (.not. isvar("dash"))then   
2050     
2051         
2052         dash = 0
2053         
2054         
2055      end if
2056      ;***************************************************
2057      ; OPTIONAL --log_x-- LOGARITHMIC SCALE X-AXIS
2058      ;
2059      ; logarithmic scale for x-axis is switched on [=1] or off [=0]
2060      ;
2061      ; data type: integer
2062      ;
2063      ; example: log_x = 1
2064      ;
2065      ; default:   1
2066      ;***************************************************
2067      if (.not. isvar("log_x"))then   
2068     
2069         
2070         log_x = 1
2071         
2072         
2073      end if     
2074      ;***************************************************
2075      ; OPTIONAL --log_y-- LOGARITHMIC SCALE Y-AXIS
2076      ;
2077      ; logarithmic scale for y-axis is switched on [=1] or off [=0]
2078      ;
2079      ; data type: integer
2080      ;
2081      ; example: log_y = 1
2082      ;
2083      ; default:   1
2084      ;***************************************************
2085      if (.not. isvar("log_y"))then   
2086     
2087         
2088         log_y = 1
2089         
2090         
2091      end if     
2092      ;***************************************************
2093      ; OPTIONAL --norm_x-- NORMALISING X-AXIS
2094      ;
2095      ; value for normalising the x-axis
2096      ;
2097      ; data type: float
2098      ;
2099      ; example: norm_x = 1.
2100      ;
2101      ; default:   1. (no normalising)
2102      ;***************************************************
2103      if (.not. isvar("norm_x"))then   
2104     
2105         
2106         norm_x = 1.
2107         
2108         
2109      end if
2110      ;***************************************************
2111      ; OPTIONAL --norm_height-- NORMALISING X-AXIS WITH HEIGHT
2112      ;
2113      ; normalising the x-axis with the height of each spectra
2114      ; is switched on [=1] or off [=0]
2115      ;
2116      ; data type: integer
2117      ;
2118      ; example: norm_height = 0
2119      ;
2120      ; default:   0 (no normalising)
2121      ;***************************************************
2122      if (.not. isvar("norm_height"))then   
2123     
2124         
2125         norm_height = 0
2126         
2127         
2128      end if     
2129      ;***************************************************
2130      ; OPTIONAL --norm_y-- NORMALISE Y-AXIS
2131      ;
2132      ; value for normalising the y-axis
2133      ;
2134      ; data type: float
2135      ;
2136      ; example: norm_y = 1.
2137      ;
2138      ; default:   1. (no normalising)
2139      ;***************************************************
2140      if (.not. isvar("norm_y"))then     
2141     
2142       
2143         norm_y = 1.
2144         
2145         
2146      end if
2147      ;***************************************************
2148      ; OPTIONAL --unit_x--unit_y-- UNITS OF X-, Y-AXES
2149      ;
2150      ; unit of the x-axis can be set if norm_x is unequal 1,
2151      ; otherwise the unit is [1/m]; by default no unit is set for the y-axis
2152      ;
2153      ; data type: string,
2154      ;
2155      ; example: unit_x = "100/m"
2156      ;
2157      ; default:   " "
2158      ;***************************************************
2159      if(.not. isvar("unit_x"))then     
2160         
2161         unit_x = " "   
2162         
2163      end if
2164      if(.not. isvar("unit_y"))then     
2165         
2166         unit_y = " "   
2167         
2168      end if
2169      ;***************************************************
2170      ; OPTIONAL --font_size-- FONT SIZE OF STRINGS
2171      ;
2172      ; font size can be changed to fit to the current plot
2173      ;
2174      ; data type: float
2175      ;
2176      ; example: font_size = 0.02
2177      ;
2178      ; default:   0.02
2179      ;***************************************************
2180      if(.not. isvar("font_size"))then
2181     
2182         
2183         font_size = 0.02
2184         
2185         
2186      end if
2187      ;***************************************************
2188      ; OPTIONAL --font_size_legend-- FONT SIZE OF LEGEND STRINGS
2189      ;
2190      ; font size of the legend can be changed to fit to the current plot
2191      ;
2192      ; data type: float
2193      ;
2194      ; example: font_size_legend = 0.2
2195      ;
2196      ; default:   0.2
2197      ;***************************************************
2198      if(.not. isvar("font_size_legend"))then
2199     
2200         
2201         font_size_legend = 0.2
2202         
2203         
2204      end if     
2205      ;***************************************************
2206     
2207   end if
2208
2209   ;******************************************************
2210   ; parameters used by TIMESERIES
2211   ;******************************************************
2212
2213   if (script .EQ. "timeseries") then
2214
2215      ;***************************************************
2216      ; REQUIRED --file_1-- INPUT FILE
2217      ;
2218      ; input file produced by PALM; if there is more than one file for
2219      ; all timesteps of a job chain,
2220      ; declare path and file name without cycle number and ".nc" (first and
2221      ; last cycle numbers are given with the parameters
2222      ; 'start_f' and 'end_f');
2223      ; otherwise declare path and full file name
2224      ;
2225      ; data type: string
2226      ;
2227      ; example: file_1 = "/path_to_file/file_ts"     
2228      ;                      if you use more than one cycle number
2229      ;          file_1 = "/path_to_file/file_ts.4.nc"
2230      ;                      if you use one file (e.g. with cycle number 4)
2231      ;
2232      ; default:   "File in"
2233      ;***************************************************
2234      if(.not. isvar("file_1"))then
2235
2236
2237         file_1 = "File in"
2238         
2239         
2240      end if
2241      ;***************************************************
2242      ; OPTIONAL/REQUIRED if more than one file of a job chain
2243      ;          --start_f-- START OF CYCLIC NUMBER
2244      ;
2245      ; if there is more than one file for all timesteps of a job chain,
2246      ; declare the first cyclicnumber which contains timesteps
2247      ; you'd like to use
2248      ;
2249      ; data type: integer
2250      ;
2251      ; example:   start_f = 3 (if first file: example_ts.3.nc) and
2252      ;            start_f = 0 (if first file: example_ts.nc)
2253      ;
2254      ; default:   -1 
2255      ;***************************************************
2256      if (.not. isvar("start_f"))then 
2257     
2258         
2259         start_f = -1
2260         
2261         
2262      end if
2263      ;***************************************************
2264      ; OPTIONAL/REQUIRED if more than one file of a job chain
2265      ;           --end_f-- END OF CYCLIC NUMBER
2266      ;
2267      ; if there is more than one file for all timesteps of a job chain,
2268      ; declare the last cyclicnumber which contains timesteps
2269      ; you'd like to use
2270      ;
2271      ; data type: integer
2272      ;
2273      ; example:   end_f = 48 (if last file: example_ts.48.nc) and
2274      ;            end_f = 0 (if last file: example_ts.nc)
2275      ;
2276      ; default:   -1 
2277      ;***************************************************
2278      if (.not. isvar("end_f"))then 
2279     
2280         
2281         end_f = -1
2282         
2283         
2284      end if
2285      ;***************************************************
2286      ; OPTIONAL --format_out-- OUTPUT FORMAT
2287      ;
2288      ; format of the output file;
2289      ; supported file formats: x11, pdf, ps, eps, epsi or ncgm
2290      ;
2291      ; data type: string
2292      ;
2293      ; example: format_out = "pdf"
2294      ;
2295      ; default:   "x11"
2296      ;***************************************************
2297      if (.not. isvar("format_out"))then         
2298     
2299     
2300         format_out = "x11"
2301         
2302         
2303      end if     
2304      ;***************************************************
2305      ; OPTIONAL --file_out-- OUTPUT FILE
2306      ;
2307      ; path and name of the output file
2308      ;
2309      ; data type: string
2310      ;
2311      ; example: file_out = "/home/path_to_output/test_ts"
2312      ;
2313      ; default:   "~/test_ts"
2314      ;***************************************************
2315      if (.not. isvar("file_out"))then 
2316     
2317       
2318         file_out = "~/test_ts"
2319         
2320         
2321      end if     
2322      ;***************************************************
2323      ; OPTIONAL --no_columns-- NUMBER OF COLUMNS
2324      ;
2325      ; number of plots in one row
2326      ;
2327      ; data type: integer
2328      ;
2329      ; example: no_columns = 1
2330      ;
2331      ; default:   1
2332      ;***************************************************
2333      if (.not. isvar("no_columns"))then       
2334     
2335       
2336         no_columns = 1
2337         
2338         
2339      end if     
2340      ;***************************************************
2341      ; OPTIONAL --no_rows-- NUMBER OF ROWS
2342      ;
2343      ; number of plots in one column
2344      ;
2345      ; data type: integer
2346      ;
2347      ; example: no_rows = 2
2348      ;
2349      ; default:   2
2350      ;***************************************************
2351      if (.not. isvar("no_rows"))then
2352     
2353         
2354         no_rows = 1
2355         
2356         
2357      end if     
2358      ;***************************************************
2359      ; OPTIONAL --var-- OUTPUT VARIABLES
2360      ;
2361      ; names of output variables;
2362      ; inidcate them with one comma before and after each variable
2363      ; if the name contains double quotes (") use dq and the '+' operation to
2364      ; concatenate the strings
2365      ;
2366      ; data type: string
2367      ;
2368      ; example: var = ",umax,vmax,wmax,w"+dq+"pt"+dq+"0,"
2369      ;
2370      ; default:   "all" (all available variables are plotted)
2371      ;***************************************************
2372      if (.not. isvar("var"))then
2373     
2374         
2375         var = "all"
2376         
2377         
2378      end if     
2379      ;***************************************************
2380      ; OPTIONAL --start_time_step-- FIRST TIME STEP
2381      ;
2382      ; first time step of plot; there is no need to specify a precise
2383      ; time value from the input file,
2384      ; 'start_time_step' is rounded to the next existent time step
2385      ;
2386      ; data type: double; dimension: [hour]
2387      ;
2388      ; example:   start_time_step = 0.5d
2389      ;
2390      ; default:   -1.d (first available time step)
2391      ;***************************************************
2392      if (.not. isvar("start_time_step"))then
2393     
2394         
2395         start_time_step = -1.d
2396         
2397         
2398      end if     
2399      ;***************************************************
2400      ; OPTIONAL --end_time_step-- LAST TIME STEP
2401      ;
2402      ; last time step of plot; there is no need to specify a precise
2403      ; time value from the input file,
2404      ; 'end_time_step' is rounded to the next existent time step
2405      ;
2406      ; data type: double; dimension: [hour]
2407      ;
2408      ; example:   end_time_step = 2.0d
2409      ;
2410      ; default:   -1.d (last available time step)
2411      ;***************************************************
2412      if (.not. isvar("end_time_step"))then
2413     
2414         
2415         end_time_step = -1.d
2416         
2417
2418      end if     
2419      ;***************************************************
2420      ; OPTIONAL --over-- OVERLAYING
2421      ;
2422      ; predefined overlaying of standard variables are switched
2423      ; on [=1] or off [=0];
2424      ; this feature cannot be used with statistic regions
2425      ;
2426      ; data type: integer
2427      ;
2428      ; example: over = 0
2429      ;
2430      ; default:   0
2431      ;***************************************************
2432      if (.not. isvar("over"))then
2433     
2434         
2435         over = 0
2436         
2437         
2438      end if
2439      ;***************************************************
2440      ; OPTIONAL --font_size-- FONT SIZE OF STRINGS
2441      ;
2442      ; font size can be changed to fit to the current plot
2443      ;
2444      ; data type: float
2445      ;
2446      ; example: font_size = 0.07
2447      ;
2448      ; default:   0.07
2449      ;***************************************************
2450      if(.not. isvar("font_size"))then
2451     
2452         
2453         font_size = 0.07
2454         
2455         
2456      end if
2457      ;***************************************************
2458      ; OPTIONAL --norm_t-- NORMALISING X-AXIS OF TIMESERIES PLOTS (T-AXIS)
2459      ;
2460      ; normalising the x-axis with the given value;
2461      ; the unit can explicitly set;
2462      ; by default no normalising and unit is set to [s]
2463      ;
2464      ; data type: float
2465      ;
2466      ; example: norm_t = 3600.
2467      ;
2468      ; default:   1.
2469      ;***************************************************
2470      if(.not. isvar("norm_t"))then
2471     
2472         
2473         norm_t = 1.
2474         
2475         
2476      end if
2477      ;***************************************************
2478      ; OPTIONAL --unit_t-- UNIT OF X-AXIS OF TIMESERIES PLOTS (T-AXIS)
2479      ;
2480      ; unit of the x-axis can be set; by default unit is set to [s]
2481      ;
2482      ; data type: string
2483      ;
2484      ; example: unit_t = "h"
2485      ;
2486      ; default:   " "
2487      ;***************************************************
2488      if(.not. isvar("unit_t"))then
2489     
2490         
2491         unit_t = " "
2492         
2493         
2494      end if
2495      ;***************************************************
2496
2497   end if
2498         
2499;*********************************************************       
2500   
2501end
Note: See TracBrowser for help on using the repository browser.