source: XIOS/trunk/doc/XIOS_reference_guide.lyx @ 1740

Last change on this file since 1740 was 1740, checked in by ymipsl, 3 years ago

Update of the reference guide documentation - YM

File size: 185.8 KB
Line 
1#LyX 2.2 created this file. For more info see http://www.lyx.org/
2\lyxformat 508
3\begin_document
4\begin_header
5\save_transient_properties true
6\origin unavailable
7\textclass book
8\use_default_options true
9\begin_modules
10logicalmkup
11\end_modules
12\maintain_unincluded_children false
13\language english
14\language_package auto
15\inputencoding auto
16\fontencoding global
17\font_roman "default" "default"
18\font_sans "default" "default"
19\font_typewriter "default" "default"
20\font_math "auto" "auto"
21\font_default_family default
22\use_non_tex_fonts false
23\font_sc false
24\font_osf false
25\font_sf_scale 100 100
26\font_tt_scale 100 100
27\graphics default
28\default_output_format default
29\output_sync 0
30\bibtex_command default
31\index_command default
32\paperfontsize default
33\spacing single
34\use_hyperref false
35\papersize a4paper
36\use_geometry false
37\use_package amsmath 1
38\use_package amssymb 1
39\use_package cancel 1
40\use_package esint 1
41\use_package mathdots 1
42\use_package mathtools 1
43\use_package mhchem 1
44\use_package stackrel 1
45\use_package stmaryrd 1
46\use_package undertilde 1
47\cite_engine basic
48\cite_engine_type default
49\biblio_style plain
50\use_bibtopic false
51\use_indices false
52\paperorientation portrait
53\suppress_date false
54\justification true
55\use_refstyle 0
56\index Index
57\shortcut idx
58\color #008000
59\end_index
60\secnumdepth 3
61\tocdepth 3
62\paragraph_separation indent
63\paragraph_indentation default
64\quotes_language english
65\papercolumns 1
66\papersides 1
67\paperpagestyle default
68\tracking_changes false
69\output_changes false
70\html_math_output 0
71\html_css_as_file 0
72\html_be_strict false
73\end_header
74
75\begin_body
76
77\begin_layout Title
78XIOS Fortran Reference Guide
79\end_layout
80
81\begin_layout Chapter
82Attribute reference
83\end_layout
84
85\begin_layout Section
86Context attribute reference
87\end_layout
88
89\begin_layout Section
90Calendar attribute reference
91\end_layout
92
93\begin_layout Subsection*
94type:
95\begin_inset Flex Emph
96status collapsed
97
98\begin_layout Plain Layout
99enumeration {Gregorian, Julian, D360, AllLeap, NoLeap, user_defined}
100\end_layout
101
102\end_inset
103
104
105\end_layout
106
107\begin_layout Standard
108Fortran:
109\end_layout
110
111\begin_layout LyX-Code
112CHARACTER(LEN=*) :: type
113\end_layout
114
115\begin_layout Standard
116Define the calendar used for the current context.
117 This attribute is mandatory and cannot be modified once it has been set.
118\begin_inset Newline newline
119\end_inset
120
121
122\begin_inset Newline newline
123\end_inset
124
125When using the Fortran interface, this attribute must be defined using the
126 following subroutine:
127\end_layout
128
129\begin_layout LyX-Code
130SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
131\begin_inset Newline newline
132\end_inset
133
134                                day_length, month_lengths, year_length,
135\begin_inset Newline newline
136\end_inset
137
138                                leap_year_month, leap_year_drift,
139\begin_inset Newline newline
140\end_inset
141
142                                leap_year_drift_offset)
143\end_layout
144
145\begin_layout Subsection*
146start_date:
147\begin_inset Flex Emph
148status collapsed
149
150\begin_layout Plain Layout
151date
152\end_layout
153
154\end_inset
155
156
157\end_layout
158
159\begin_layout Standard
160Fortran:
161\end_layout
162
163\begin_layout LyX-Code
164TYPE(xios_date) :: start_date
165\end_layout
166
167\begin_layout Standard
168Define the start date of the simulation for the current context.
169 This attribute is optional, the default value is
170\begin_inset Flex Emph
171status collapsed
172
173\begin_layout Plain Layout
174
175\series bold
1760000-01-01 00:00:00
177\end_layout
178
179\end_inset
180
181.
182 The
183\begin_inset Flex Strong
184status collapsed
185
186\begin_layout Plain Layout
187type
188\end_layout
189
190\end_inset
191
192 attribute must always be set at the same time or before this attribute
193 is defined.
194\begin_inset Newline newline
195\end_inset
196
197
198\begin_inset Newline newline
199\end_inset
200
201A partial date is allowed in the configuration file as long as the omitted
202 parts are at the end, in which case they are initialized as in the default
203 value.
204 Optionally an offset can be added to the date using the notation "
205\emph on
206+ duration
207\emph default
208".
209 
210\begin_inset Newline newline
211\end_inset
212
213
214\begin_inset Newline newline
215\end_inset
216
217When using the Fortran interface, this attribute can be defined at the same
218 time as the calendar
219\series bold
220type
221\series default
222:
223\end_layout
224
225\begin_layout LyX-Code
226SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
227\begin_inset Newline newline
228\end_inset
229
230                                day_length, month_lengths, year_length,
231\begin_inset Newline newline
232\end_inset
233
234                                leap_year_month, leap_year_drift,
235\begin_inset Newline newline
236\end_inset
237
238                                leap_year_drift_offset)
239\end_layout
240
241\begin_layout Standard
242or later using the following subroutine:
243\end_layout
244
245\begin_layout LyX-Code
246SUBROUTINE xios_set_start_date(start_date)
247\end_layout
248
249\begin_layout Subsection*
250time_origin:
251\begin_inset Flex Emph
252status collapsed
253
254\begin_layout Plain Layout
255date
256\end_layout
257
258\end_inset
259
260
261\end_layout
262
263\begin_layout Standard
264Fortran:
265\end_layout
266
267\begin_layout LyX-Code
268TYPE(xios_date) :: time_origin
269\end_layout
270
271\begin_layout Standard
272Define the time origin of a time axis.
273 It will appear as metadata attached to the time axis in an output file.
274 This attribute is optional, the default value is
275\begin_inset Flex Emph
276status collapsed
277
278\begin_layout Plain Layout
279
280\series bold
2810000-01-01 00:00:00
282\end_layout
283
284\end_inset
285
286.
287 The
288\begin_inset Flex Strong
289status collapsed
290
291\begin_layout Plain Layout
292type
293\end_layout
294
295\end_inset
296
297 attribute must always be set at the same time or before this attribute
298 is defined.
299\begin_inset Newline newline
300\end_inset
301
302
303\begin_inset Newline newline
304\end_inset
305
306A partial date is allowed in the configuration file as long as the omitted
307 parts are at the end, in which case they are initialized as in the default
308 value.
309 Optionally an offset can be added to the date using the notation "
310\emph on
311+ duration
312\emph default
313".
314 
315\begin_inset Newline newline
316\end_inset
317
318
319\begin_inset Newline newline
320\end_inset
321
322When using the Fortran interface, this attribute can be defined at the same
323 time as the calendar
324\series bold
325type
326\series default
327:
328\end_layout
329
330\begin_layout LyX-Code
331SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
332\begin_inset Newline newline
333\end_inset
334
335                                day_length, month_lengths, year_length,
336\begin_inset Newline newline
337\end_inset
338
339                                leap_year_month, leap_year_drift,
340\begin_inset Newline newline
341\end_inset
342
343                                leap_year_drift_offset)
344\end_layout
345
346\begin_layout Standard
347or later using the following subroutine:
348\end_layout
349
350\begin_layout LyX-Code
351SUBROUTINE xios_set_time_origin(time_origin)
352\end_layout
353
354\begin_layout Subsection*
355timestep:
356\begin_inset Flex Emph
357status collapsed
358
359\begin_layout Plain Layout
360duration
361\end_layout
362
363\end_inset
364
365
366\end_layout
367
368\begin_layout Standard
369Fortran:
370\end_layout
371
372\begin_layout LyX-Code
373TYPE(xios_duration) :: timestep
374\end_layout
375
376\begin_layout Standard
377Define the time step of the simulation for the current context.
378 This attribute is mandatory.
379\begin_inset Newline newline
380\end_inset
381
382
383\begin_inset Newline newline
384\end_inset
385
386When using the Fortran interface, this attribute can be defined at the same
387 time as the calendar
388\series bold
389type
390\series default
391:
392\end_layout
393
394\begin_layout LyX-Code
395SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
396\begin_inset Newline newline
397\end_inset
398
399                                day_length, month_lengths, year_length,
400\begin_inset Newline newline
401\end_inset
402
403                                leap_year_month, leap_year_drift,
404\begin_inset Newline newline
405\end_inset
406
407                                leap_year_drift_offset)
408\end_layout
409
410\begin_layout Standard
411or using the following subroutine:
412\end_layout
413
414\begin_layout LyX-Code
415SUBROUTINE xios_set_timestep(timestep)
416\end_layout
417
418\begin_layout Subsection*
419day_length:
420\begin_inset Flex Emph
421status collapsed
422
423\begin_layout Plain Layout
424integer
425\end_layout
426
427\end_inset
428
429
430\end_layout
431
432\begin_layout Standard
433Fortran:
434\end_layout
435
436\begin_layout LyX-Code
437INTEGER :: day_length
438\end_layout
439
440\begin_layout Standard
441Define the duration of a day in seconds when using a custom calendar.
442 This attribute is mandatory if the calendar
443\series bold
444type
445\series default
446 is set to "
447\emph on
448user_defined
449\emph default
450", otherwise it must not be defined.
451\begin_inset Newline newline
452\end_inset
453
454
455\begin_inset Newline newline
456\end_inset
457
458When using the Fortran interface, this attribute must be defined at the
459 same time as the calendar
460\series bold
461type
462\series default
463:
464\end_layout
465
466\begin_layout LyX-Code
467SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
468\begin_inset Newline newline
469\end_inset
470
471                                day_length, month_lengths, year_length,
472\begin_inset Newline newline
473\end_inset
474
475                                leap_year_month, leap_year_drift,
476\begin_inset Newline newline
477\end_inset
478
479                                leap_year_drift_offset)
480\end_layout
481
482\begin_layout Subsection*
483month_lengths:
484\begin_inset Flex Emph
485status collapsed
486
487\begin_layout Plain Layout
4881D-array of integer
489\end_layout
490
491\end_inset
492
493
494\end_layout
495
496\begin_layout Standard
497Fortran:
498\end_layout
499
500\begin_layout LyX-Code
501INTEGER :: month_lengths(:)
502\end_layout
503
504\begin_layout Standard
505Define the duration of each month, in days, when using a custom calendar.
506 The number of elements in the array defines the number of months in a year
507 and the sum of all elements is the total number of days in a year.
508 This attribute is mandatory if the calendar
509\series bold
510type
511\series default
512 is set to
513\series bold
514\emph on
515user_defined
516\series default
517\emph default
518 and the
519\series bold
520year_length
521\series default
522 attribute is not used, otherwise it must not be defined.
523\begin_inset Newline newline
524\end_inset
525
526
527\begin_inset Newline newline
528\end_inset
529
530When using the Fortran interface, this attribute must be defined at the
531 same time as the calendar
532\series bold
533type
534\series default
535:
536\end_layout
537
538\begin_layout LyX-Code
539SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
540\begin_inset Newline newline
541\end_inset
542
543                                day_length, month_lengths, year_length,
544\begin_inset Newline newline
545\end_inset
546
547                                leap_year_month, leap_year_drift,
548\begin_inset Newline newline
549\end_inset
550
551                                leap_year_drift_offset)
552\end_layout
553
554\begin_layout Subsection*
555year_length:
556\begin_inset Flex Emph
557status collapsed
558
559\begin_layout Plain Layout
560integer
561\end_layout
562
563\end_inset
564
565
566\end_layout
567
568\begin_layout Standard
569Fortran:
570\end_layout
571
572\begin_layout LyX-Code
573INTEGER :: year_length
574\end_layout
575
576\begin_layout Standard
577Define the duration of a year, in seconds, when using a custom calendar.
578 This attribute is mandatory if the calendar
579\series bold
580type
581\series default
582 is set to
583\series bold
584\emph on
585user_defined
586\series default
587\emph default
588 and the
589\series bold
590month_lengths
591\series default
592 attribute is not used, otherwise it must not be defined.
593\begin_inset Newline newline
594\end_inset
595
596
597\begin_inset Newline newline
598\end_inset
599
600Note that the date format is modified when using this attribute: the month
601 must be always be omitted and the day must also be omitted if
602\begin_inset Formula $year\_length\leq day\_length$
603\end_inset
604
605.
606\begin_inset Newline newline
607\end_inset
608
609
610\begin_inset Newline newline
611\end_inset
612
613When using the Fortran interface, this attribute must be defined at the
614 same time as the calendar
615\series bold
616type
617\series default
618:
619\end_layout
620
621\begin_layout LyX-Code
622SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
623\begin_inset Newline newline
624\end_inset
625
626                                day_length, month_lengths, year_length,
627\begin_inset Newline newline
628\end_inset
629
630                                leap_year_month, leap_year_drift,
631\begin_inset Newline newline
632\end_inset
633
634                                leap_year_drift_offset)
635\end_layout
636
637\begin_layout Subsection*
638leap_year_month:
639\begin_inset Flex Emph
640status collapsed
641
642\begin_layout Plain Layout
643integer
644\end_layout
645
646\end_inset
647
648
649\end_layout
650
651\begin_layout Standard
652Fortran:
653\end_layout
654
655\begin_layout LyX-Code
656INTEGER :: leap_year_month
657\end_layout
658
659\begin_layout Standard
660Define the month to which the extra day will be added in case of leap year,
661 when using a custom calendar.
662 This attribute is optional if the calendar
663\series bold
664type
665\series default
666 is set to
667\series bold
668\emph on
669user_defined
670\series default
671\emph default
672 and the
673\series bold
674month_lengths
675\series default
676 attribute is used, otherwise it must not be defined.
677 The default behavior is not to have any leap year.
678 If defined, this attribute must comply with the following constraint:
679\begin_inset Formula $1\leq leap\_year\_month\leq size(month\_lengths)$
680\end_inset
681
682 and the
683\series bold
684leap_year_drift
685\series default
686 attribute must also be defined.
687\begin_inset Newline newline
688\end_inset
689
690
691\begin_inset Newline newline
692\end_inset
693
694When using the Fortran interface, this attribute must be defined at the
695 same time as the calendar
696\series bold
697type
698\series default
699:
700\end_layout
701
702\begin_layout LyX-Code
703SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
704\begin_inset Newline newline
705\end_inset
706
707                                day_length, month_lengths, year_length,
708\begin_inset Newline newline
709\end_inset
710
711                                leap_year_month, leap_year_drift,
712\begin_inset Newline newline
713\end_inset
714
715                                leap_year_drift_offset)
716\end_layout
717
718\begin_layout Subsection*
719leap_year_drift:
720\begin_inset Flex Emph
721status collapsed
722
723\begin_layout Plain Layout
724double
725\end_layout
726
727\end_inset
728
729
730\end_layout
731
732\begin_layout Standard
733Fortran:
734\end_layout
735
736\begin_layout LyX-Code
737DOUBLE PRECISION :: leap_year_drift
738\end_layout
739
740\begin_layout Standard
741Define the yearly drift, expressed as a fraction of a day, between the calendar
742 year and the astronomical year, when using a custom calendar.
743 This attribute is optional if the calendar
744\series bold
745type
746\series default
747 is set to
748\series bold
749\emph on
750user_defined
751\series default
752\emph default
753 and the
754\series bold
755month_lengths
756\series default
757 attribute is used, otherwise it must not be defined.
758 The default behavior is not to have any leap year, i.e.
759 the default value is
760\begin_inset Formula $\mathbf{0}$
761\end_inset
762
763.
764 If defined, this attribute must comply with the following constraint:
765\begin_inset Formula $0\leq leap\_year\_drift<1$
766\end_inset
767
768 and the
769\series bold
770leap_year_month
771\series default
772 attribute must also be defined.
773\begin_inset Newline newline
774\end_inset
775
776
777\begin_inset Newline newline
778\end_inset
779
780When using the Fortran interface, this attribute must be defined at the
781 same time as the calendar
782\series bold
783type
784\series default
785:
786\end_layout
787
788\begin_layout LyX-Code
789SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
790\begin_inset Newline newline
791\end_inset
792
793                                day_length, month_lengths, year_length,
794\begin_inset Newline newline
795\end_inset
796
797                                leap_year_month, leap_year_drift,
798\begin_inset Newline newline
799\end_inset
800
801                                leap_year_drift_offset)
802\end_layout
803
804\begin_layout Subsection*
805leap_year_drift_offset:
806\begin_inset Flex Emph
807status collapsed
808
809\begin_layout Plain Layout
810double
811\end_layout
812
813\end_inset
814
815
816\end_layout
817
818\begin_layout Standard
819Fortran:
820\end_layout
821
822\begin_layout LyX-Code
823DOUBLE PRECISION :: leap_year_drift_offset
824\end_layout
825
826\begin_layout Standard
827Define the initial drift between the calendar year and the astronomical
828 year, expressed as a fraction of a day, at the beginning of the time origin's
829 year, when using a custom calendar.
830 This attribute is optional if the
831\series bold
832leap_year_month
833\series default
834 and
835\series bold
836leap_year_drift
837\series default
838 attributes are used, otherwise it must not be defined.
839 The default value is
840\begin_inset Formula $\mathbf{0}$
841\end_inset
842
843.
844 If defined, this attribute must comply with the following constraint:
845\begin_inset Formula $0\leq leap\_year\_drift\_offset<1$
846\end_inset
847
848.
849 If
850\begin_inset Formula $leap\_yeap\_drift\_offset+leap\_yeap\_drift$
851\end_inset
852
853 is greater or equal to 1, then the first year will be a leap year.
854\begin_inset Newline newline
855\end_inset
856
857
858\begin_inset Newline newline
859\end_inset
860
861When using the Fortran interface, this attribute must be defined at the
862 same time as the calendar
863\series bold
864type
865\series default
866:
867\end_layout
868
869\begin_layout LyX-Code
870SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
871\begin_inset Newline newline
872\end_inset
873
874                                day_length, month_lengths, year_length,
875\begin_inset Newline newline
876\end_inset
877
878                                leap_year_month, leap_year_drift,
879\begin_inset Newline newline
880\end_inset
881
882                                leap_year_drift_offset)
883\end_layout
884
885\begin_layout Section
886Scalar attribute reference
887\end_layout
888
889\begin_layout Subsection*
890name (optional):
891\begin_inset Flex Emph
892status collapsed
893
894\begin_layout Plain Layout
895string
896\end_layout
897
898\end_inset
899
900
901\end_layout
902
903\begin_layout Standard
904Fortran:
905\end_layout
906
907\begin_layout LyX-Code
908CHARACTER(LEN=*) :: name
909\end_layout
910
911\begin_layout Standard
912Defines the name of a scalar as it will appear in a file.
913 If not defined, the name will be generated automatically based on the id.
914 If multiple scalars are defined in the same file, each scalar must have
915 a unique name.
916 
917\end_layout
918
919\begin_layout Subsection*
920standard_name (optional):
921\begin_inset Flex Emph
922status collapsed
923
924\begin_layout Plain Layout
925string
926\end_layout
927
928\end_inset
929
930
931\end_layout
932
933\begin_layout Standard
934Fortran:
935\end_layout
936
937\begin_layout LyX-Code
938CHARACTER(LEN=*) :: standard_name
939\end_layout
940
941\begin_layout Standard
942Defines the standard name of a scalar as it will appear in the scalar's
943 metadata in an output file.
944 
945\end_layout
946
947\begin_layout Subsection*
948long_name (optional):
949\begin_inset Flex Emph
950status collapsed
951
952\begin_layout Plain Layout
953string
954\end_layout
955
956\end_inset
957
958
959\end_layout
960
961\begin_layout Standard
962Fortran:
963\end_layout
964
965\begin_layout LyX-Code
966CHARACTER(LEN=*) :: long_name
967\end_layout
968
969\begin_layout Standard
970Defines the long name of a scalar as it will appear in the scalar's metadata
971 in an output file.
972 
973\end_layout
974
975\begin_layout Subsection*
976unit (optional):
977\begin_inset Flex Emph
978status collapsed
979
980\begin_layout Plain Layout
981string
982\end_layout
983
984\end_inset
985
986
987\end_layout
988
989\begin_layout Standard
990Fortran:
991\end_layout
992
993\begin_layout LyX-Code
994CHARACTER(LEN=*) :: unit
995\end_layout
996
997\begin_layout Standard
998Defines the scalar unit as it will appear in the scalar's metadata in an
999 output file.
1000\end_layout
1001
1002\begin_layout Subsection*
1003value (optional):
1004\begin_inset Flex Emph
1005status collapsed
1006
1007\begin_layout Plain Layout
1008double
1009\end_layout
1010
1011\end_inset
1012
1013
1014\end_layout
1015
1016\begin_layout Standard
1017Fortran:
1018\end_layout
1019
1020\begin_layout LyX-Code
1021DOUBLE PRECISION :: value
1022\end_layout
1023
1024\begin_layout Standard
1025Defines the value of a scalar.
1026 If both, the label and the value, are set then only the label will be written
1027 into a file.
1028\end_layout
1029
1030\begin_layout Subsection*
1031bounds (optional):
1032\begin_inset Flex Emph
1033status collapsed
1034
1035\begin_layout Plain Layout
10361D-array of double
1037\end_layout
1038
1039\end_inset
1040
1041
1042\end_layout
1043
1044\begin_layout Standard
1045Fortran:
1046\end_layout
1047
1048\begin_layout LyX-Code
1049DOUBLE PRECISION :: bounds(:)
1050\end_layout
1051
1052\begin_layout Standard
1053Defines (two) scalar boundaries.
1054 The array size must should be equal to 2.
1055\end_layout
1056
1057\begin_layout Subsection*
1058bounds_name (optional):
1059\begin_inset Flex Emph
1060status collapsed
1061
1062\begin_layout Plain Layout
1063string
1064\end_layout
1065
1066\end_inset
1067
1068
1069\end_layout
1070
1071\begin_layout Standard
1072Fortran:
1073\end_layout
1074
1075\begin_layout LyX-Code
1076CHARACTER(LEN=*) :: bounds_name
1077\end_layout
1078
1079\begin_layout Standard
1080Defines the name of scalar bounds as it will appear in a file.
1081 If not defined, the name will be generated automatically based on the scalar
1082 id.
1083\end_layout
1084
1085\begin_layout Subsection*
1086prec (optional):
1087\emph on
1088integer
1089\end_layout
1090
1091\begin_layout Standard
1092Fortran:
1093\end_layout
1094
1095\begin_layout LyX-Code
1096INTEGER :: prec
1097\end_layout
1098
1099\begin_layout Standard
1100Defines the precision in bytes of scalar value and boundaries as it will
1101 be written into an output file.
1102 Available values are: 4 (float single precision) and 8 (float double precision).
1103 The default value is 4.
1104\end_layout
1105
1106\begin_layout Subsection*
1107label (optional):
1108\begin_inset Flex Emph
1109status collapsed
1110
1111\begin_layout Plain Layout
1112string
1113\end_layout
1114
1115\end_inset
1116
1117
1118\end_layout
1119
1120\begin_layout Standard
1121Fortran:
1122\end_layout
1123
1124\begin_layout LyX-Code
1125CHARACTER(LEN=*) :: label
1126\end_layout
1127
1128\begin_layout Standard
1129Defines the label of a scalar.
1130 If both, the label and the value, are set then only the label will be output
1131 into a file.
1132\end_layout
1133
1134\begin_layout Subsection*
1135scalar_ref (optional): string
1136\end_layout
1137
1138\begin_layout Standard
1139Fortran:
1140\end_layout
1141
1142\begin_layout LyX-Code
1143CHARACTER(LEN=*) :: scalar_ref
1144\end_layout
1145
1146\begin_layout Standard
1147Defines the reference to a scalar.
1148 All attributes will be inherited from the referenced scalar via the classical
1149 inheritance mechanism.
1150 The value assigned to the referenced scalar will be transmitted to the
1151 current scalar.
1152\end_layout
1153
1154\begin_layout Subsection*
1155positive (optional):
1156\begin_inset Flex Emph
1157status collapsed
1158
1159\begin_layout Plain Layout
1160enumeration {up, down}
1161\end_layout
1162
1163\end_inset
1164
1165
1166\end_layout
1167
1168\begin_layout Standard
1169Fortran:
1170\end_layout
1171
1172\begin_layout LyX-Code
1173CHARACTER(LEN=*) :: positive
1174\end_layout
1175
1176\begin_layout Standard
1177Defines the positive direction for fields representing height or depth.
1178\end_layout
1179
1180\begin_layout Subsection*
1181axis_type (optional):
1182\begin_inset Flex Emph
1183status collapsed
1184
1185\begin_layout Plain Layout
1186enumeration {X, Y, Z, T}
1187\end_layout
1188
1189\end_inset
1190
1191
1192\end_layout
1193
1194\begin_layout Standard
1195Fortran:
1196\end_layout
1197
1198\begin_layout LyX-Code
1199CHARACTER(LEN=*) :: axis_type
1200\end_layout
1201
1202\begin_layout Standard
1203Defines the type of a (scalar) axis.
1204 The values correspond to the following axis types:
1205\end_layout
1206
1207\begin_layout Itemize
1208
1209\series bold
1210\shape italic
1211X:
1212\series default
1213\shape default
1214 longitude
1215\end_layout
1216
1217\begin_layout Itemize
1218
1219\series bold
1220\shape italic
1221\emph on
1222Y
1223\emph default
1224:
1225\series default
1226\shape default
1227 latitude
1228\end_layout
1229
1230\begin_layout Itemize
1231
1232\series bold
1233\shape italic
1234\emph on
1235Z
1236\emph default
1237:
1238\series default
1239\shape default
1240 vertical axis
1241\end_layout
1242
1243\begin_layout Itemize
1244
1245\series bold
1246\shape italic
1247T:
1248\series default
1249\shape default
1250time axis.
1251\end_layout
1252
1253\begin_layout Subsection*
1254comment:
1255\begin_inset Flex Emph
1256status collapsed
1257
1258\begin_layout Plain Layout
1259string
1260\end_layout
1261
1262\end_inset
1263
1264
1265\end_layout
1266
1267\begin_layout Standard
1268Fortran:
1269\end_layout
1270
1271\begin_layout LyX-Code
1272CHARACTER(LEN=*) :: comment
1273\end_layout
1274
1275\begin_layout Standard
1276Allows a user to set a comment.
1277 
1278\end_layout
1279
1280\begin_layout Section
1281Axis attribute reference
1282\end_layout
1283
1284\begin_layout Subsection*
1285name (optional):
1286\begin_inset Flex Emph
1287status collapsed
1288
1289\begin_layout Plain Layout
1290string
1291\end_layout
1292
1293\end_inset
1294
1295
1296\end_layout
1297
1298\begin_layout Standard
1299Fortran:
1300\end_layout
1301
1302\begin_layout LyX-Code
1303CHARACTER(LEN=*) :: name
1304\end_layout
1305
1306\begin_layout Standard
1307Defines the name of a vertical axis as it will appear in an output file.
1308 If not defined, the name will be generated automatically based on the axis
1309 id.
1310 If multiple vertical axes are defined in the same file, each axis must
1311 have a unique name.
1312 
1313\end_layout
1314
1315\begin_layout Subsection*
1316standard_name (optional):
1317\begin_inset Flex Emph
1318status collapsed
1319
1320\begin_layout Plain Layout
1321string
1322\end_layout
1323
1324\end_inset
1325
1326
1327\end_layout
1328
1329\begin_layout Standard
1330Fortran:
1331\end_layout
1332
1333\begin_layout LyX-Code
1334CHARACTER(LEN=*) :: standard_name
1335\end_layout
1336
1337\begin_layout Standard
1338Defines the standard name of a vertical axis as it will appear in the axis'
1339 metadata in an output file.
1340 
1341\end_layout
1342
1343\begin_layout Subsection*
1344long_name (optional):
1345\begin_inset Flex Emph
1346status collapsed
1347
1348\begin_layout Plain Layout
1349string
1350\end_layout
1351
1352\end_inset
1353
1354
1355\end_layout
1356
1357\begin_layout Standard
1358Fortran:
1359\end_layout
1360
1361\begin_layout LyX-Code
1362CHARACTER(LEN=*) :: long_name
1363\end_layout
1364
1365\begin_layout Standard
1366Defines the long name of a vertical axis as it will appear in the axis'
1367 metadata in an output file.
1368 
1369\end_layout
1370
1371\begin_layout Subsection*
1372unit (optional):
1373\begin_inset Flex Emph
1374status collapsed
1375
1376\begin_layout Plain Layout
1377string
1378\end_layout
1379
1380\end_inset
1381
1382
1383\end_layout
1384
1385\begin_layout Standard
1386Fortran:
1387\end_layout
1388
1389\begin_layout LyX-Code
1390CHARACTER(LEN=*) :: unit
1391\end_layout
1392
1393\begin_layout Standard
1394Defines the unit of an axis as it will appear in the axis' metadata in an
1395 output file.
1396\end_layout
1397
1398\begin_layout Subsection*
1399dim_name (optional):
1400\begin_inset Flex Emph
1401status collapsed
1402
1403\begin_layout Plain Layout
1404string
1405\end_layout
1406
1407\end_inset
1408
1409
1410\end_layout
1411
1412\begin_layout Standard
1413Fortran:
1414\end_layout
1415
1416\begin_layout LyX-Code
1417CHARACTER(LEN=*) :: dim_name
1418\end_layout
1419
1420\begin_layout Standard
1421Defines the name of axis dimension as it will appear in the file's metadata.
1422 The default axis dimension name is the axis name.
1423\end_layout
1424
1425\begin_layout Subsection*
1426formula (optional):
1427\begin_inset Flex Emph
1428status collapsed
1429
1430\begin_layout Plain Layout
1431string
1432\end_layout
1433
1434\end_inset
1435
1436
1437\end_layout
1438
1439\begin_layout Standard
1440Fortran:
1441\end_layout
1442
1443\begin_layout LyX-Code
1444CHARACTER(LEN=*) :: formula
1445\end_layout
1446
1447\begin_layout Standard
1448Adds the
1449\begin_inset Flex Code
1450status open
1451
1452\begin_layout Plain Layout
1453formula
1454\end_layout
1455
1456\end_inset
1457
1458 attribute to the metadata associated to the axis in the output file, for
1459 CF conformance.
1460\end_layout
1461
1462\begin_layout Subsection*
1463formula_term (optional):
1464\begin_inset Flex Emph
1465status collapsed
1466
1467\begin_layout Plain Layout
1468string
1469\end_layout
1470
1471\end_inset
1472
1473
1474\end_layout
1475
1476\begin_layout Standard
1477Fortran:
1478\end_layout
1479
1480\begin_layout LyX-Code
1481CHARACTER(LEN=*) :: formula_term
1482\end_layout
1483
1484\begin_layout Standard
1485Adds the
1486\begin_inset Flex Code
1487status open
1488
1489\begin_layout Plain Layout
1490formula_term
1491\end_layout
1492
1493\end_inset
1494
1495 attribute to the metadata associated to the axis in the output file, for
1496 CF conformance.
1497\end_layout
1498
1499\begin_layout Subsection*
1500formula_bounds (optional):
1501\begin_inset Flex Emph
1502status collapsed
1503
1504\begin_layout Plain Layout
1505string
1506\end_layout
1507
1508\end_inset
1509
1510
1511\end_layout
1512
1513\begin_layout Standard
1514Fortran:
1515\end_layout
1516
1517\begin_layout LyX-Code
1518CHARACTER(LEN=*) :: formula_bounds
1519\end_layout
1520
1521\begin_layout Standard
1522Adds the
1523\begin_inset Flex Code
1524status open
1525
1526\begin_layout Plain Layout
1527formula
1528\end_layout
1529
1530\end_inset
1531
1532 attribute to the metadata associated to the axis boundairies in the output
1533 file, for CF conformance.
1534 This attribute is meaningfull if
1535\begin_inset Flex Code
1536status open
1537
1538\begin_layout Plain Layout
1539axis_bounds
1540\end_layout
1541
1542\end_inset
1543
1544 is not defined.
1545\end_layout
1546
1547\begin_layout Subsection*
1548formula_term_bounds (optional):
1549\begin_inset Flex Emph
1550status collapsed
1551
1552\begin_layout Plain Layout
1553string
1554\end_layout
1555
1556\end_inset
1557
1558
1559\end_layout
1560
1561\begin_layout Standard
1562Fortran:
1563\end_layout
1564
1565\begin_layout LyX-Code
1566CHARACTER(LEN=*) :: formula_term_bounds
1567\end_layout
1568
1569\begin_layout Standard
1570Adds the
1571\begin_inset Flex Code
1572status open
1573
1574\begin_layout Plain Layout
1575formula_term
1576\end_layout
1577
1578\end_inset
1579
1580 attribute to the metadata associated to the axis boundairies in the output
1581 file, for CF conformance.
1582 This attribute is meaningfull if
1583\begin_inset Flex Code
1584status open
1585
1586\begin_layout Plain Layout
1587axis_bounds
1588\end_layout
1589
1590\end_inset
1591
1592 is not defined.
1593\end_layout
1594
1595\begin_layout Subsection*
1596n_glo (mandatory):
1597\begin_inset Flex Emph
1598status collapsed
1599
1600\begin_layout Plain Layout
1601integer
1602\end_layout
1603
1604\end_inset
1605
1606
1607\end_layout
1608
1609\begin_layout Standard
1610Fortran:
1611\end_layout
1612
1613\begin_layout LyX-Code
1614INTEGER :: n_glo
1615\end_layout
1616
1617\begin_layout Standard
1618Defines the global size of an axis.
1619\end_layout
1620
1621\begin_layout Subsection*
1622begin (optional):
1623\begin_inset Flex Emph
1624status collapsed
1625
1626\begin_layout Plain Layout
1627integer
1628\end_layout
1629
1630\end_inset
1631
1632
1633\end_layout
1634
1635\begin_layout Standard
1636Fortran:
1637\end_layout
1638
1639\begin_layout LyX-Code
1640INTEGER :: begin
1641\end_layout
1642
1643\begin_layout Standard
1644Defines the beginning index of the local domain.
1645 It can take value between 0 and
1646\begin_inset Flex Strong
1647status collapsed
1648
1649\begin_layout Plain Layout
1650n_glo-1
1651\end_layout
1652
1653\end_inset
1654
1655.
1656 If not specified the default value is 0.
1657\end_layout
1658
1659\begin_layout Subsection*
1660n (optional):
1661\begin_inset Flex Emph
1662status collapsed
1663
1664\begin_layout Plain Layout
1665integer
1666\end_layout
1667
1668\end_inset
1669
1670
1671\end_layout
1672
1673\begin_layout Standard
1674Fortran:
1675\end_layout
1676
1677\begin_layout LyX-Code
1678INTEGER :: n
1679\end_layout
1680
1681\begin_layout Standard
1682Defines the local size of an axis.
1683 It can take value between 0 and
1684\begin_inset Flex Strong
1685status collapsed
1686
1687\begin_layout Plain Layout
1688n_glo
1689\end_layout
1690
1691\end_inset
1692
1693.
1694 If not specified the default value is
1695\begin_inset Flex Strong
1696status collapsed
1697
1698\begin_layout Plain Layout
1699n_glo
1700\end_layout
1701
1702\end_inset
1703
1704.
1705 Local axis decomposition can be declared either with attributes
1706\series bold
1707\shape italic
1708{n, begin}
1709\series default
1710\shape default
1711 or with
1712\series bold
1713\shape italic
1714index
1715\series default
1716\shape default
1717.
1718\end_layout
1719
1720\begin_layout Subsection*
1721index (optional):
1722\begin_inset Flex Emph
1723status collapsed
1724
1725\begin_layout Plain Layout
17261D-array of double
1727\end_layout
1728
1729\end_inset
1730
1731
1732\end_layout
1733
1734\begin_layout Standard
1735Fortran:
1736\end_layout
1737
1738\begin_layout LyX-Code
1739DOUBLE PRECISION :: index(:)
1740\end_layout
1741
1742\begin_layout Standard
1743Defines the global indexes of a local axis held by each process.
1744 If the attribute is specified, its array size must be equal to
1745\begin_inset Flex Strong
1746status collapsed
1747
1748\begin_layout Plain Layout
1749n
1750\end_layout
1751
1752\end_inset
1753
1754.
1755 Local axis decomposition can be declared either with attributes
1756\series bold
1757\shape italic
1758{n, begin}
1759\series default
1760\shape default
1761 or with
1762\series bold
1763\shape italic
1764index
1765\series default
1766\shape default
1767.
1768\end_layout
1769
1770\begin_layout Subsection*
1771value (optional):
1772\begin_inset Flex Emph
1773status collapsed
1774
1775\begin_layout Plain Layout
17761D-array of double
1777\end_layout
1778
1779\end_inset
1780
1781
1782\end_layout
1783
1784\begin_layout Standard
1785Fortran:
1786\end_layout
1787
1788\begin_layout LyX-Code
1789DOUBLE PRECISION :: value(:)
1790\end_layout
1791
1792\begin_layout Standard
1793Defines the value of each level of a vertical axis.
1794 The array size must be equal to the value of the attribute
1795\begin_inset Flex Strong
1796status collapsed
1797
1798\begin_layout Plain Layout
1799n
1800\end_layout
1801
1802\end_inset
1803
1804.
1805 If the label is provided then only the label will be written into a file
1806 and not the axis value and the axis boundaries.
1807\end_layout
1808
1809\begin_layout Subsection*
1810bounds (optional):
1811\begin_inset Flex Emph
1812status collapsed
1813
1814\begin_layout Plain Layout
18152D-array of double
1816\end_layout
1817
1818\end_inset
1819
1820
1821\end_layout
1822
1823\begin_layout Standard
1824Fortran:
1825\end_layout
1826
1827\begin_layout LyX-Code
1828DOUBLE PRECISION :: bounds(:,:)
1829\end_layout
1830
1831\begin_layout Standard
1832Defines the boundaries of each level of a vertical axis.
1833 The dimensions of the array must be
1834\begin_inset Formula $2\times n$
1835\end_inset
1836
1837.
1838\end_layout
1839
1840\begin_layout Subsection*
1841bounds_name (optional):
1842\begin_inset Flex Emph
1843status collapsed
1844
1845\begin_layout Plain Layout
1846string
1847\end_layout
1848
1849\end_inset
1850
1851
1852\end_layout
1853
1854\begin_layout Standard
1855Fortran:
1856\end_layout
1857
1858\begin_layout LyX-Code
1859CHARACTER(LEN=*) :: bounds_name
1860\end_layout
1861
1862\begin_layout Standard
1863Defines the name of axis boundaries as it will appear in an ouput file.
1864 If not defined, the name will be generated automatically based on the axis
1865 id.
1866\end_layout
1867
1868\begin_layout Subsection*
1869prec (optional):
1870\emph on
1871integer
1872\end_layout
1873
1874\begin_layout Standard
1875Fortran:
1876\end_layout
1877
1878\begin_layout LyX-Code
1879INTEGER :: prec
1880\end_layout
1881
1882\begin_layout Standard
1883Defines the precision in bytes of axis value and boundaries as it will be
1884 written into an output file.
1885 Available values are: 4 (float single precision) and 8 (float double precision).
1886 The default value is 4.
1887\end_layout
1888
1889\begin_layout Subsection*
1890label (optional):
1891\begin_inset Flex Emph
1892status collapsed
1893
1894\begin_layout Plain Layout
1895string
1896\end_layout
1897
1898\end_inset
1899
1900
1901\end_layout
1902
1903\begin_layout Standard
1904Fortran:
1905\end_layout
1906
1907\begin_layout LyX-Code
1908CHARACTER, ALLOCATABLE :: label(:)
1909\end_layout
1910
1911\begin_layout Standard
1912Defines the label of an axis.
1913 The size of the array must be equal to the value of the attribute
1914\begin_inset Flex Strong
1915status collapsed
1916
1917\begin_layout Plain Layout
1918n
1919\end_layout
1920
1921\end_inset
1922
1923.
1924 If the label is provided then only the label will be written into a file
1925 and not the axis value and the axis boundaries.
1926\end_layout
1927
1928\begin_layout Subsection*
1929data_begin (optional):
1930\emph on
1931 integer
1932\end_layout
1933
1934\begin_layout Standard
1935Fortran:
1936\end_layout
1937
1938\begin_layout LyX-Code
1939INTEGER :: data_begin
1940\end_layout
1941
1942\begin_layout Standard
1943Defines the beginning index of local field data owned by each process.
1944 The attribute is an offset relative to the local axis, so the value can
1945 be negative.
1946 A negative value indicates that only some valid part of the data will extracted
1947, for example in the case of a ghost cell.
1948 A positive value indicates that the local domain is greater than the data
1949 stored in memory.
1950 The 0-value means that the local domain matches the data in memory.
1951 The default value is 0.
1952 The attributes
1953\begin_inset Flex Strong
1954status collapsed
1955
1956\begin_layout Plain Layout
1957data_begin
1958\end_layout
1959
1960\end_inset
1961
1962 and
1963\begin_inset Flex Strong
1964status collapsed
1965
1966\begin_layout Plain Layout
1967data_n
1968\end_layout
1969
1970\end_inset
1971
1972 must be defined together.
1973\end_layout
1974
1975\begin_layout Subsection*
1976data_n (optional):
1977\emph on
1978integer
1979\end_layout
1980
1981\begin_layout Standard
1982Fortran:
1983\end_layout
1984
1985\begin_layout LyX-Code
1986INTEGER :: data_n
1987\end_layout
1988
1989\begin_layout Standard
1990Defines the size of local field data.
1991 The attribute can take value starting from 0 (no data on a process).
1992 The default value is
1993\begin_inset Flex Strong
1994status collapsed
1995
1996\begin_layout Plain Layout
1997n
1998\end_layout
1999
2000\end_inset
2001
2002.
2003 The attributes
2004\begin_inset Flex Strong
2005status collapsed
2006
2007\begin_layout Plain Layout
2008data_begin
2009\end_layout
2010
2011\end_inset
2012
2013 and
2014\begin_inset Flex Strong
2015status collapsed
2016
2017\begin_layout Plain Layout
2018data_n
2019\end_layout
2020
2021\end_inset
2022
2023 must be defined together.
2024\end_layout
2025
2026\begin_layout Subsection*
2027data_index (optional):
2028\emph on
2029integer
2030\end_layout
2031
2032\begin_layout Standard
2033Fortran:
2034\end_layout
2035
2036\begin_layout LyX-Code
2037INTEGER :: data_index
2038\end_layout
2039
2040\begin_layout Standard
2041In case of a compressed vertical axis, the attribute defines the position
2042 of data points stored in the memory.
2043 For example, for a local axis of size
2044\begin_inset Flex Strong
2045status collapsed
2046
2047\begin_layout Plain Layout
2048n=3
2049\end_layout
2050
2051\end_inset
2052
2053 and local data size of
2054\begin_inset Flex Strong
2055status collapsed
2056
2057\begin_layout Plain Layout
2058data_n=5
2059\end_layout
2060
2061\end_inset
2062
2063, if
2064\begin_inset Flex Strong
2065status collapsed
2066
2067\begin_layout Plain Layout
2068data_index=(/ -1, 2, 1, 0, -1 /)
2069\end_layout
2070
2071\end_inset
2072
2073 then the first and the last data points are ghosts and only the three middle
2074 values will be written in the reversed order.
2075 Only
2076\begin_inset Flex Code
2077status open
2078
2079\begin_layout Plain Layout
2080data_begin/data_n
2081\end_layout
2082
2083\end_inset
2084
2085 or
2086\begin_inset Flex Code
2087status open
2088
2089\begin_layout Plain Layout
2090data_index
2091\end_layout
2092
2093\end_inset
2094
2095 can be used together.
2096\end_layout
2097
2098\begin_layout Subsection*
2099mask (optional):
2100\emph on
21011D-array of bool
2102\end_layout
2103
2104\begin_layout Standard
2105Fortran:
2106\end_layout
2107
2108\begin_layout LyX-Code
2109LOGICAL :: mask(:)
2110\end_layout
2111
2112\begin_layout Standard
2113Defines the mask of the local axis.
2114 The masked value will be replaced by the value of the field attribute
2115\begin_inset Flex Strong
2116status collapsed
2117
2118\begin_layout Plain Layout
2119default_value
2120\end_layout
2121
2122\end_inset
2123
2124 in an output file.
2125\end_layout
2126
2127\begin_layout Subsection*
2128n_distributed_partition (optional):
2129\emph on
2130integer
2131\end_layout
2132
2133\begin_layout Standard
2134Fortran:
2135\end_layout
2136
2137\begin_layout LyX-Code
2138INTEGER :: n_distributed_partition
2139\end_layout
2140
2141\begin_layout Standard
2142Defines the number of local axes in case if the axis is generated automatically
2143 by XIOS.
2144 The default value is
2145\begin_inset Flex Strong
2146status collapsed
2147
2148\begin_layout Plain Layout
21491
2150\end_layout
2151
2152\end_inset
2153
2154.
2155 Nota: currently this functionnality is broken, this attribute is meaningfull.
2156\end_layout
2157
2158\begin_layout Subsection*
2159axis_ref (optional): string
2160\end_layout
2161
2162\begin_layout Standard
2163Fortran:
2164\end_layout
2165
2166\begin_layout LyX-Code
2167CHARACTER(LEN=*) :: axis_ref
2168\end_layout
2169
2170\begin_layout Standard
2171Defines the reference of an axis.
2172 All attributes will be inherited from the referenced axis with the classical
2173 inheritance mechanism.
2174 The value assigned to the referenced axis will be transmitted to the current
2175 axis.
2176\end_layout
2177
2178\begin_layout Subsection*
2179positive (optional):
2180\begin_inset Flex Emph
2181status collapsed
2182
2183\begin_layout Plain Layout
2184enumeration {up, down}
2185\end_layout
2186
2187\end_inset
2188
2189
2190\end_layout
2191
2192\begin_layout Standard
2193Fortran:
2194\end_layout
2195
2196\begin_layout LyX-Code
2197CHARACTER(LEN=*) :: positive
2198\end_layout
2199
2200\begin_layout Standard
2201Defines the positive direction for fields representing height or depth.
2202 It will just be appended in axis metadata in output file, for CF compliance.
2203\end_layout
2204
2205\begin_layout Subsection*
2206axis_type (optional):
2207\begin_inset Flex Emph
2208status collapsed
2209
2210\begin_layout Plain Layout
2211enumeration {X, Y, Z, T}
2212\end_layout
2213
2214\end_inset
2215
2216
2217\end_layout
2218
2219\begin_layout Standard
2220Fortran:
2221\end_layout
2222
2223\begin_layout LyX-Code
2224CHARACTER(LEN=*) :: axis_type
2225\end_layout
2226
2227\begin_layout Standard
2228Defines the type of an axis.
2229 The values correspond to the following axis types:
2230\end_layout
2231
2232\begin_layout Itemize
2233
2234\series bold
2235\shape italic
2236X:
2237\series default
2238\shape default
2239 longitude
2240\end_layout
2241
2242\begin_layout Itemize
2243
2244\series bold
2245\shape italic
2246\emph on
2247Y
2248\emph default
2249:
2250\series default
2251\shape default
2252 latitude
2253\end_layout
2254
2255\begin_layout Itemize
2256
2257\series bold
2258\shape italic
2259\emph on
2260Z
2261\emph default
2262:
2263\series default
2264\shape default
2265 vertical axis
2266\end_layout
2267
2268\begin_layout Itemize
2269
2270\series bold
2271\shape italic
2272T:
2273\series default
2274\shape default
2275time axis.
2276\end_layout
2277
2278\begin_layout Standard
2279It will just be append in axis metadata in ouput file, for CF compliance.
2280\end_layout
2281
2282\begin_layout Subsection*
2283comment (optional):
2284\begin_inset Flex Emph
2285status collapsed
2286
2287\begin_layout Plain Layout
2288string
2289\end_layout
2290
2291\end_inset
2292
2293
2294\end_layout
2295
2296\begin_layout Standard
2297Fortran:
2298\end_layout
2299
2300\begin_layout LyX-Code
2301CHARACTER(LEN=*) :: comment
2302\end_layout
2303
2304\begin_layout Standard
2305Allows a user to set a comment.
2306 
2307\end_layout
2308
2309\begin_layout Section
2310Domain attribute reference
2311\end_layout
2312
2313\begin_layout Subsection*
2314name (optional):
2315\begin_inset Flex Emph
2316status collapsed
2317
2318\begin_layout Plain Layout
2319string
2320\end_layout
2321
2322\end_inset
2323
2324
2325\end_layout
2326
2327\begin_layout Standard
2328Fortran:
2329\end_layout
2330
2331\begin_layout LyX-Code
2332CHARACTER(LEN=*) :: name
2333\end_layout
2334
2335\begin_layout Standard
2336Defines the name of a horizontal domain.
2337 This attribute may be used in case of multiple domains defined in the same
2338 file.
2339 In this case, the
2340\begin_inset Flex Strong
2341status collapsed
2342
2343\begin_layout Plain Layout
2344name
2345\end_layout
2346
2347\end_inset
2348
2349 attribute will be suffixed to the longitude and latitude dimensions and
2350 axis name.
2351 If the domain name is not provided, it will be generated automatically
2352 with the id of the domain.
2353\end_layout
2354
2355\begin_layout Subsection*
2356standard_name (optional):
2357\begin_inset Flex Emph
2358status collapsed
2359
2360\begin_layout Plain Layout
2361string
2362\end_layout
2363
2364\end_inset
2365
2366
2367\end_layout
2368
2369\begin_layout Standard
2370Fortran:
2371\end_layout
2372
2373\begin_layout LyX-Code
2374CHARACTER(LEN=*) :: standard_name
2375\end_layout
2376
2377\begin_layout Standard
2378Defines the standard name of a domain as it will appear in the domain's
2379 metadata in an output file.
2380 
2381\end_layout
2382
2383\begin_layout Subsection*
2384long_name (optional):
2385\begin_inset Flex Emph
2386status collapsed
2387
2388\begin_layout Plain Layout
2389string
2390\end_layout
2391
2392\end_inset
2393
2394
2395\end_layout
2396
2397\begin_layout Standard
2398Fortran:
2399\end_layout
2400
2401\begin_layout LyX-Code
2402CHARACTER(LEN=*) :: long_name
2403\end_layout
2404
2405\begin_layout Standard
2406Defines the long name of a domain as it will appear in the domain's metadata
2407 in an output file.
2408 
2409\end_layout
2410
2411\begin_layout Subsection*
2412type (mandatory):
2413\begin_inset Flex Emph
2414status collapsed
2415
2416\begin_layout Plain Layout
2417enumeration {rectilinear, curvilinear, unstructured, gaussian}
2418\end_layout
2419
2420\end_inset
2421
2422
2423\end_layout
2424
2425\begin_layout Standard
2426Fortran:
2427\end_layout
2428
2429\begin_layout LyX-Code
2430CHARACTER(LEN=*) :: type
2431\end_layout
2432
2433\begin_layout Standard
2434Defines the type of a grid.
2435\end_layout
2436
2437\begin_layout Subsection*
2438dim_i_name (optional):
2439\begin_inset Flex Emph
2440status collapsed
2441
2442\begin_layout Plain Layout
2443string
2444\end_layout
2445
2446\end_inset
2447
2448
2449\end_layout
2450
2451\begin_layout Standard
2452Fortran:
2453\end_layout
2454
2455\begin_layout LyX-Code
2456CHARACTER(LEN=*) :: dim_i_name
2457\end_layout
2458
2459\begin_layout Standard
2460Defines the name of the first domain dimension as it will appear in the
2461 file's metadata.
2462 The default value is '
2463\begin_inset Flex Code
2464status open
2465
2466\begin_layout Plain Layout
2467X
2468\end_layout
2469
2470\end_inset
2471
2472'.
2473 In case of multiple domain in the file, the dimension will be preffixed
2474 by the domain name.
2475\end_layout
2476
2477\begin_layout Subsection*
2478dim_j_name (optional):
2479\begin_inset Flex Emph
2480status collapsed
2481
2482\begin_layout Plain Layout
2483string
2484\end_layout
2485
2486\end_inset
2487
2488
2489\end_layout
2490
2491\begin_layout Standard
2492Fortran:
2493\end_layout
2494
2495\begin_layout LyX-Code
2496CHARACTER(LEN=*) :: dim_j_name
2497\end_layout
2498
2499\begin_layout Standard
2500Defines the name of the second domain dimension as it will appear in file's
2501 metadata.
2502 The default value is '
2503\begin_inset Flex Code
2504status open
2505
2506\begin_layout Plain Layout
2507Y
2508\end_layout
2509
2510\end_inset
2511
2512'.
2513 In case of multiple domain in the file, the dimension will be preffixed
2514 by the domain name.
2515\end_layout
2516
2517\begin_layout Subsection*
2518ni_glo (mandatory):
2519\begin_inset Flex Emph
2520status collapsed
2521
2522\begin_layout Plain Layout
2523integer
2524\end_layout
2525
2526\end_inset
2527
2528
2529\end_layout
2530
2531\begin_layout Standard
2532Fortran:
2533\end_layout
2534
2535\begin_layout LyX-Code
2536INTEGER :: ni_glo
2537\end_layout
2538
2539\begin_layout Standard
2540Defines the size of the first dimension of the global domain.
2541\end_layout
2542
2543\begin_layout Subsection*
2544nj_glo (mandatory):
2545\begin_inset Flex Emph
2546status collapsed
2547
2548\begin_layout Plain Layout
2549integer
2550\end_layout
2551
2552\end_inset
2553
2554
2555\end_layout
2556
2557\begin_layout Standard
2558Fortran:
2559\end_layout
2560
2561\begin_layout LyX-Code
2562INTEGER :: nj_glo
2563\end_layout
2564
2565\begin_layout Standard
2566Defines the size of the second dimension of the global domain.
2567\end_layout
2568
2569\begin_layout Subsection*
2570ibegin (optional):
2571\begin_inset Flex Emph
2572status collapsed
2573
2574\begin_layout Plain Layout
2575integer
2576\end_layout
2577
2578\end_inset
2579
2580
2581\end_layout
2582
2583\begin_layout Standard
2584Fortran:
2585\end_layout
2586
2587\begin_layout LyX-Code
2588INTEGER :: ibegin
2589\end_layout
2590
2591\begin_layout Standard
2592Defines the beginning index of the first dimension of a local domain.
2593 The attribute takes value between
2594\begin_inset Flex Strong
2595status collapsed
2596
2597\begin_layout Plain Layout
25980
2599\end_layout
2600
2601\end_inset
2602
2603 and
2604\begin_inset Flex Strong
2605status collapsed
2606
2607\begin_layout Plain Layout
2608ni_glo-1
2609\end_layout
2610
2611\end_inset
2612
2613.
2614 If not specified the default value is
2615\begin_inset Flex Strong
2616status collapsed
2617
2618\begin_layout Plain Layout
26190
2620\end_layout
2621
2622\end_inset
2623
2624.
2625\end_layout
2626
2627\begin_layout Subsection*
2628ni (optional):
2629\begin_inset Flex Emph
2630status collapsed
2631
2632\begin_layout Plain Layout
2633integer
2634\end_layout
2635
2636\end_inset
2637
2638
2639\end_layout
2640
2641\begin_layout Standard
2642Fortran:
2643\end_layout
2644
2645\begin_layout LyX-Code
2646INTEGER :: ni
2647\end_layout
2648
2649\begin_layout Standard
2650Defines the size of the first dimension of a local domain.
2651 The attribute takes value between
2652\begin_inset Flex Strong
2653status collapsed
2654
2655\begin_layout Plain Layout
26561
2657\end_layout
2658
2659\end_inset
2660
2661and
2662\begin_inset Flex Strong
2663status collapsed
2664
2665\begin_layout Plain Layout
2666ni_glo
2667\end_layout
2668
2669\end_inset
2670
2671.
2672 If not specified the default value is
2673\begin_inset Flex Strong
2674status collapsed
2675
2676\begin_layout Plain Layout
2677ni_glo
2678\end_layout
2679
2680\end_inset
2681
2682.
2683\end_layout
2684
2685\begin_layout Subsection*
2686jbegin (optional):
2687\begin_inset Flex Emph
2688status collapsed
2689
2690\begin_layout Plain Layout
2691integer
2692\end_layout
2693
2694\end_inset
2695
2696
2697\end_layout
2698
2699\begin_layout Standard
2700Fortran:
2701\end_layout
2702
2703\begin_layout LyX-Code
2704INTEGER :: jbegin
2705\end_layout
2706
2707\begin_layout Standard
2708Defines the beginning index of the second dimension of a local domain.
2709 The attribute takes value between
2710\begin_inset Flex Strong
2711status collapsed
2712
2713\begin_layout Plain Layout
27140
2715\end_layout
2716
2717\end_inset
2718
2719 and
2720\begin_inset Flex Strong
2721status collapsed
2722
2723\begin_layout Plain Layout
2724nj_glo-1
2725\end_layout
2726
2727\end_inset
2728
2729.
2730 If not specified the default value is
2731\begin_inset Flex Strong
2732status collapsed
2733
2734\begin_layout Plain Layout
27350
2736\end_layout
2737
2738\end_inset
2739
2740.
2741\end_layout
2742
2743\begin_layout Subsection*
2744nj (optional):
2745\begin_inset Flex Emph
2746status collapsed
2747
2748\begin_layout Plain Layout
2749integer
2750\end_layout
2751
2752\end_inset
2753
2754
2755\end_layout
2756
2757\begin_layout Standard
2758Fortran:
2759\end_layout
2760
2761\begin_layout LyX-Code
2762INTEGER :: nj
2763\end_layout
2764
2765\begin_layout Standard
2766Defines the size of the second dimension of a local domain.
2767 he attribute takes value between
2768\begin_inset Flex Strong
2769status collapsed
2770
2771\begin_layout Plain Layout
27721
2773\end_layout
2774
2775\end_inset
2776
2777and
2778\begin_inset Flex Strong
2779status collapsed
2780
2781\begin_layout Plain Layout
2782nj_glo
2783\end_layout
2784
2785\end_inset
2786
2787.
2788 If not specified the default value is
2789\begin_inset Flex Strong
2790status collapsed
2791
2792\begin_layout Plain Layout
2793nj_glo
2794\end_layout
2795
2796\end_inset
2797
2798.
2799\end_layout
2800
2801\begin_layout Subsection*
2802lonvalue_1d (optional):
2803\emph on
28041D-array of double
2805\end_layout
2806
2807\begin_layout Standard
2808Fortran:
2809\end_layout
2810
2811\begin_layout LyX-Code
2812DOUBLE PRECISION :: lonvalue(:)
2813\end_layout
2814
2815\begin_layout Standard
2816Defines the longitude values of a local domain.
2817 For a cartesian grid, the array size should be
2818\begin_inset Flex Strong
2819status collapsed
2820
2821\begin_layout Plain Layout
2822ni
2823\end_layout
2824
2825\end_inset
2826
2827.
2828 For a curvilinear grid, the array size should be
2829\begin_inset Flex Strong
2830status collapsed
2831
2832\begin_layout Plain Layout
2833ni
2834\begin_inset Formula $\times$
2835\end_inset
2836
2837nj
2838\end_layout
2839
2840\end_inset
2841
2842.
2843 In this case the first and second dimensions are collapsed into a linear
2844 array.
2845 For unstrutured and gaussian grid, the array size sould be
2846\begin_inset Flex Strong
2847status collapsed
2848
2849\begin_layout Plain Layout
2850ni
2851\end_layout
2852
2853\end_inset
2854
2855 (the second dimension
2856\begin_inset Flex Strong
2857status collapsed
2858
2859\begin_layout Plain Layout
2860nj
2861\end_layout
2862
2863\end_inset
2864
2865 is not used).
2866 Only latvalue_1d or latvalue_2d can be defined.
2867 Also the layout of latitude and longitude should be in conformance with
2868 each other: either 1D or 2D.
2869\end_layout
2870
2871\begin_layout Subsection*
2872lonvalue_2d (optional):
2873\emph on
28742D-array of double
2875\end_layout
2876
2877\begin_layout Standard
2878Fortran:
2879\end_layout
2880
2881\begin_layout LyX-Code
2882DOUBLE PRECISION :: lonvalue(:,:)
2883\end_layout
2884
2885\begin_layout Standard
2886Defines the longitude values of a local domain.
2887 For cartesian grid, the array size must beand curvilinear grids the array
2888 size should be
2889\begin_inset Flex Strong
2890status collapsed
2891
2892\begin_layout Plain Layout
2893(ni,nj)
2894\end_layout
2895
2896\end_inset
2897
2898.
2899 For unstructured or gaussian grid it sould be
2900\begin_inset Flex Strong
2901status collapsed
2902
2903\begin_layout Plain Layout
2904(ni,1)
2905\end_layout
2906
2907\end_inset
2908
2909.
2910 Only lonvalue_1d or lonvalue_2d can be defined.
2911 Also the layout of latitude and longitude should be in conformance with
2912 each other: either 1D or 2D.
2913\end_layout
2914
2915\begin_layout Subsection*
2916latvalue_1d (optional):
2917\emph on
29181D-array of double
2919\end_layout
2920
2921\begin_layout Standard
2922Fortran:
2923\end_layout
2924
2925\begin_layout LyX-Code
2926DOUBLE PRECISION :: latvalue(:)
2927\end_layout
2928
2929\begin_layout Standard
2930Defines the latitude values of a local domain.
2931 For a cartesian and curvilinear grid, the array size should be
2932\begin_inset Flex Strong
2933status collapsed
2934
2935\begin_layout Plain Layout
2936ni
2937\begin_inset Formula $\times$
2938\end_inset
2939
2940nj
2941\end_layout
2942
2943\end_inset
2944
2945.
2946 In this case the first and second dimensions are collapsed into a linear
2947 array.
2948 For unstrutured and gaussian grid, the array size sould be
2949\begin_inset Flex Strong
2950status collapsed
2951
2952\begin_layout Plain Layout
2953ni
2954\end_layout
2955
2956\end_inset
2957
2958 (the second dimension
2959\begin_inset Flex Strong
2960status collapsed
2961
2962\begin_layout Plain Layout
2963nj
2964\end_layout
2965
2966\end_inset
2967
2968 is not used).
2969 Only latvalue_1d or latvalue_2d can be defined.
2970 Also the layout of latitude and longitude should be in conformance with
2971 each other: either 1D or 2D.
2972\end_layout
2973
2974\begin_layout Subsection*
2975latvalue_2d (optional):
2976\emph on
29772D-array of double
2978\end_layout
2979
2980\begin_layout Standard
2981Fortran:
2982\end_layout
2983
2984\begin_layout LyX-Code
2985DOUBLE PRECISION :: latvalue(:,:)
2986\end_layout
2987
2988\begin_layout Standard
2989Defines the latitude values of a local domain.
2990 For cartesian grid and curvilinear grids the array size should be
2991\begin_inset Flex Strong
2992status collapsed
2993
2994\begin_layout Plain Layout
2995(ni,nj)
2996\end_layout
2997
2998\end_inset
2999
3000.
3001 For unstructured or gaussian grid it sould be
3002\begin_inset Flex Strong
3003status collapsed
3004
3005\begin_layout Plain Layout
3006(ni,1)
3007\end_layout
3008
3009\end_inset
3010
3011.
3012 Only latvalue_1d or latvalue_2d can be defined.
3013 Also the layout of latitude and longitude should be in conformance with
3014 each other: either 1D or 2D.
3015\end_layout
3016
3017\begin_layout Subsection*
3018lon_name (optional):
3019\begin_inset Flex Emph
3020status collapsed
3021
3022\begin_layout Plain Layout
3023string
3024\end_layout
3025
3026\end_inset
3027
3028
3029\end_layout
3030
3031\begin_layout Standard
3032Fortran:
3033\end_layout
3034
3035\begin_layout LyX-Code
3036CHARACTER(LEN=*) :: lon_name
3037\end_layout
3038
3039\begin_layout Standard
3040Define the longitude name as it will appear in an output file.
3041 If not defined, the default will be '
3042\begin_inset Flex Code
3043status open
3044
3045\begin_layout Plain Layout
3046lon
3047\end_layout
3048
3049\end_inset
3050
3051'.
3052 In case of multiple domain defined in a file, the longitude name will be
3053 suffixed by the domain name.
3054\end_layout
3055
3056\begin_layout Subsection*
3057lat_name (optional):
3058\begin_inset Flex Emph
3059status collapsed
3060
3061\begin_layout Plain Layout
3062string
3063\end_layout
3064
3065\end_inset
3066
3067
3068\end_layout
3069
3070\begin_layout Standard
3071Fortran:
3072\end_layout
3073
3074\begin_layout LyX-Code
3075CHARACTER(LEN=*) :: lat_name
3076\end_layout
3077
3078\begin_layout Standard
3079efine the longitude name as it will appear in an output file.
3080 If not defined, the default will be '
3081\begin_inset Flex Code
3082status open
3083
3084\begin_layout Plain Layout
3085lat
3086\end_layout
3087
3088\end_inset
3089
3090'.
3091 In case of multiple domain defined in a file, the longitude name will be
3092 suffixed by the domain name.
3093\end_layout
3094
3095\begin_layout Subsection*
3096nvertex (optional):
3097\emph on
3098integer
3099\end_layout
3100
3101\begin_layout Standard
3102Fortran:
3103\end_layout
3104
3105\begin_layout LyX-Code
3106INTEGER :: nvertex
3107\end_layout
3108
3109\begin_layout Standard
3110Used only for unstructured domain.
3111 Defines the maximum number of vertices for a grid.
3112 The attribute is required for specifying the cell boundaries of the unstructure
3113d meshes.
3114 For other grid (cartesian, curvilinear or gaussian), the nvertex value
3115 will be set automatically to 4.
3116\end_layout
3117
3118\begin_layout Subsection*
3119bounds_lon_1d (optional):
3120\emph on
31212D-array of double
3122\end_layout
3123
3124\begin_layout Standard
3125Fortran:
3126\end_layout
3127
3128\begin_layout LyX-Code
3129DOUBLE PRECISION :: bounds_lon(:,:)
3130\end_layout
3131
3132\begin_layout Standard
3133Defines the longitude values of the domain vertexes.
3134 For unstructured domain, the attribute
3135\begin_inset Flex Strong
3136status collapsed
3137
3138\begin_layout Plain Layout
3139nvertex
3140\end_layout
3141
3142\end_inset
3143
3144 must be also defined (for other mesh it is set automatically to 4).
3145 The array dimensions shape must be of size
3146\begin_inset Flex Code
3147status open
3148
3149\begin_layout Plain Layout
3150(nvertex, ni)
3151\end_layout
3152
3153\end_inset
3154
3155.
3156\end_layout
3157
3158\begin_layout Subsection*
3159bounds_lon_2d (optional):
3160\emph on
31613D-array of double
3162\end_layout
3163
3164\begin_layout Standard
3165Fortran:
3166\end_layout
3167
3168\begin_layout LyX-Code
3169DOUBLE PRECISION :: bounds_lon(:,:,:)
3170\end_layout
3171
3172\begin_layout Standard
3173Defines the longitude values of the domain vertexes.
3174 For unstructured domain, the attribute
3175\begin_inset Flex Strong
3176status collapsed
3177
3178\begin_layout Plain Layout
3179nvertex
3180\end_layout
3181
3182\end_inset
3183
3184 must be also defined (for other mesh it is set automatically to 4).
3185 This attribute is useful when lonvalue_2d is defined.
3186 for cartesian and curvilinear domain, the array dimensions shape must be
3187 of size
3188\begin_inset Flex Code
3189status open
3190
3191\begin_layout Plain Layout
3192(nvertex, ni, nj)
3193\end_layout
3194
3195\end_inset
3196
3197, and for gaussian or unstructured domain, it sould be of size
3198\begin_inset Flex Code
3199status open
3200
3201\begin_layout Plain Layout
3202(nvertex, ni, 1)
3203\end_layout
3204
3205\end_inset
3206
3207.
3208 For cartesian, curvilinear .
3209 Either
3210\begin_inset Flex Code
3211status open
3212
3213\begin_layout Plain Layout
3214bounds_lon_1d
3215\end_layout
3216
3217\end_inset
3218
3219 or
3220\begin_inset Flex Code
3221status open
3222
3223\begin_layout Plain Layout
3224bounds_lon_2d
3225\end_layout
3226
3227\end_inset
3228
3229 can be defined.
3230\end_layout
3231
3232\begin_layout Subsection*
3233bounds_lat_1d (optional):
3234\emph on
32352D-array of double
3236\end_layout
3237
3238\begin_layout Standard
3239Fortran:
3240\end_layout
3241
3242\begin_layout LyX-Code
3243DOUBLE PRECISION :: bounds_lat(:,:)
3244\end_layout
3245
3246\begin_layout Standard
3247Defines the latitude values of the domain vertexes.
3248 For unstructured domain, the attribute
3249\begin_inset Flex Strong
3250status collapsed
3251
3252\begin_layout Plain Layout
3253nvertex
3254\end_layout
3255
3256\end_inset
3257
3258 must be also defined (for other mesh it is set automatically to 4).
3259 The array dimensions shape must be of size
3260\begin_inset Flex Code
3261status open
3262
3263\begin_layout Plain Layout
3264(nvertex, ni)
3265\end_layout
3266
3267\end_inset
3268
3269.
3270\end_layout
3271
3272\begin_layout Subsection*
3273bounds_lat_2d (optional):
3274\emph on
32753D-array of double
3276\end_layout
3277
3278\begin_layout Standard
3279Fortran:
3280\end_layout
3281
3282\begin_layout LyX-Code
3283DOUBLE PRECISION :: bounds_lat(:,:)
3284\end_layout
3285
3286\begin_layout Standard
3287Defines the latitude values of domain vertexes.
3288 For unstructured domain, the attribute
3289\begin_inset Flex Strong
3290status collapsed
3291
3292\begin_layout Plain Layout
3293nvertex
3294\end_layout
3295
3296\end_inset
3297
3298 must be also defined.
3299 This attribute is useful when lonvalue_2d is defined.
3300 for cartesian and curvilinear domain, the array dimensions shape must be
3301 of size
3302\begin_inset Flex Code
3303status open
3304
3305\begin_layout Plain Layout
3306(nvertex, ni, nj)
3307\end_layout
3308
3309\end_inset
3310
3311, and for gaussian or unstructured domain, it sould be of size
3312\begin_inset Flex Code
3313status open
3314
3315\begin_layout Plain Layout
3316(nvertex, ni, 1)
3317\end_layout
3318
3319\end_inset
3320
3321.
3322 For cartesian, curvilinear .
3323 Either
3324\begin_inset Flex Code
3325status open
3326
3327\begin_layout Plain Layout
3328bounds_lon_1d
3329\end_layout
3330
3331\end_inset
3332
3333 or
3334\begin_inset Flex Code
3335status open
3336
3337\begin_layout Plain Layout
3338bounds_lon_2d
3339\end_layout
3340
3341\end_inset
3342
3343 can be defined.
3344\end_layout
3345
3346\begin_layout Subsection*
3347bounds_lon_name (optional):
3348\begin_inset Flex Emph
3349status collapsed
3350
3351\begin_layout Plain Layout
3352string
3353\end_layout
3354
3355\end_inset
3356
3357
3358\end_layout
3359
3360\begin_layout Standard
3361Fortran:
3362\end_layout
3363
3364\begin_layout LyX-Code
3365CHARACTER(LEN=*) :: bounds_lon_name
3366\end_layout
3367
3368\begin_layout Standard
3369Defines the boundaries longitude boundaries name of domain as it will appear
3370 in an output file.
3371 Default value is '
3372\begin_inset Flex Code
3373status open
3374
3375\begin_layout Plain Layout
3376bounds_lon
3377\end_layout
3378
3379\end_inset
3380
3381'.
3382 In case of multiple domains defined in a same file, the boundaries name
3383 will be suffixed by the domain name.
3384 
3385\end_layout
3386
3387\begin_layout Subsection*
3388bounds_lat_name (optional):
3389\begin_inset Flex Emph
3390status collapsed
3391
3392\begin_layout Plain Layout
3393string
3394\end_layout
3395
3396\end_inset
3397
3398
3399\end_layout
3400
3401\begin_layout Standard
3402Fortran:
3403\end_layout
3404
3405\begin_layout LyX-Code
3406CHARACTER(LEN=*) :: lat_name
3407\end_layout
3408
3409\begin_layout Standard
3410Defines the boundaries longitude boundaries name of domain as it will appear
3411 in an output file.
3412 Default value is '
3413\begin_inset Flex Code
3414status open
3415
3416\begin_layout Plain Layout
3417bounds_lon
3418\end_layout
3419
3420\end_inset
3421
3422'.
3423 In case of multiple domains defined in a same file, the boundaries name
3424 will be suffixed by the domain name.
3425 
3426\end_layout
3427
3428\begin_layout Subsection*
3429area (optional):
3430\emph on
34312D-array of double
3432\end_layout
3433
3434\begin_layout Standard
3435Fortran:
3436\end_layout
3437
3438\begin_layout LyX-Code
3439DOUBLE PRECISION :: area(:,:)
3440\end_layout
3441
3442\begin_layout Standard
3443The area of cells.
3444 The size of the array must
3445\begin_inset Flex Code
3446status open
3447
3448\begin_layout Plain Layout
3449(ni, nj)
3450\end_layout
3451
3452\end_inset
3453
3454 for cartesian or curvilinear domain and (ni, 1) for unstructured or gaussian
3455 domain.
3456 If this attribute is defined, it will be wrote in the output file as domain
3457 metadata.
3458 This attribute could be also used in domain interpolation to take into
3459 account the area of the cell instead to take the computed value (for conservati
3460on consideration).
3461 
3462\end_layout
3463
3464\begin_layout Subsection*
3465radius (optional):
3466\emph on
3467double
3468\end_layout
3469
3470\begin_layout Standard
3471Fortran:
3472\end_layout
3473
3474\begin_layout LyX-Code
3475DOUBLE PRECISION :: radius
3476\end_layout
3477
3478\begin_layout Standard
3479Define the radius of the planet (or earth).
3480 If defined, it can be used by domain interpolation together with
3481\begin_inset Flex Code
3482status open
3483
3484\begin_layout Plain Layout
3485area
3486\end_layout
3487
3488\end_inset
3489
3490 domain attribute in order to renormalize weight to compute conservative
3491 interpolation (see
3492\begin_inset Flex Code
3493status open
3494
3495\begin_layout Plain Layout
3496domain_interpolate
3497\end_layout
3498
3499\end_inset
3500
3501 filter).
3502\end_layout
3503
3504\begin_layout Subsection*
3505prec (optional):
3506\emph on
3507integer
3508\end_layout
3509
3510\begin_layout Standard
3511Fortran:
3512\end_layout
3513
3514\begin_layout LyX-Code
3515INTEGER :: prec
3516\end_layout
3517
3518\begin_layout Standard
3519Defines the precision (in bytes) for which domain attributes (longitude,
3520 latitude, boudairies, ...) will be written in output file.
3521 Available values are: 4 (float single precision) and 8 (float double precision).
3522 The default value is 4 bytes.
3523\end_layout
3524
3525\begin_layout Subsection*
3526data_dim (optional):
3527\emph on
3528integer
3529\end_layout
3530
3531\begin_layout Standard
3532Fortran:
3533\end_layout
3534
3535\begin_layout LyX-Code
3536INTEGER :: datadim
3537\end_layout
3538
3539\begin_layout Standard
3540Defines how a field is stored on memory for the client code.
3541 The value can be either
3542\begin_inset Flex Strong
3543status collapsed
3544
3545\begin_layout Plain Layout
35461
3547\end_layout
3548
3549\end_inset
3550
3551 or
3552\begin_inset Flex Strong
3553status collapsed
3554
3555\begin_layout Plain Layout
35562
3557\end_layout
3558
3559\end_inset
3560
3561.
3562 The value of
3563\begin_inset Flex Strong
3564status collapsed
3565
3566\begin_layout Plain Layout
35671
3568\end_layout
3569
3570\end_inset
3571
3572 indicates that the horizontal layer of the field is stored as a 1D array.
3573 The value of
3574\begin_inset Flex Strong
3575status collapsed
3576
3577\begin_layout Plain Layout
35782
3579\end_layout
3580
3581\end_inset
3582
3583 indicates that the horizontal layer is stored as a 2D array.
3584 The default value is
3585\begin_inset Flex Strong
3586status collapsed
3587
3588\begin_layout Plain Layout
35891
3590\end_layout
3591
3592\end_inset
3593
3594.
3595\end_layout
3596
3597\begin_layout Subsection*
3598data_ibegin (optional):
3599\emph on
3600 integer
3601\end_layout
3602
3603\begin_layout Standard
3604Fortran:
3605\end_layout
3606
3607\begin_layout LyX-Code
3608INTEGER :: data_ibegin
3609\end_layout
3610
3611\begin_layout Standard
3612Defines the beginning index of field data for the first dimension.
3613 This attribute is an offset relative to the local domain, so the value
3614 can be negative.
3615 A negative value indicates that only some valid part of the data will extracted
3616, for example in the case of a ghost cell.
3617 A positive value indicates that the local domain is greater than the data
3618 stored in memory.
3619 A 0-value means that the local domain matches the data in memory.
3620 The default value is 0.
3621 The attributes
3622\begin_inset Flex Strong
3623status collapsed
3624
3625\begin_layout Plain Layout
3626data_ibegin
3627\end_layout
3628
3629\end_inset
3630
3631 and
3632\begin_inset Flex Strong
3633status collapsed
3634
3635\begin_layout Plain Layout
3636data_ni
3637\end_layout
3638
3639\end_inset
3640
3641 must be defined together.
3642 Only data_ibegin/data_ni or data_i_index/
3643\end_layout
3644
3645\begin_layout Subsection*
3646data_ni (optional):
3647\emph on
3648integer
3649\end_layout
3650
3651\begin_layout Standard
3652Fortran:
3653\end_layout
3654
3655\begin_layout LyX-Code
3656INTEGER :: data_ni
3657\end_layout
3658
3659\begin_layout Standard
3660Defines the size of field data for the first dimension.
3661 The default value is
3662\begin_inset Flex Strong
3663status collapsed
3664
3665\begin_layout Plain Layout
3666ni
3667\end_layout
3668
3669\end_inset
3670
3671.
3672 The attributes
3673\begin_inset Flex Strong
3674status collapsed
3675
3676\begin_layout Plain Layout
3677data_ibegin
3678\end_layout
3679
3680\end_inset
3681
3682 and
3683\begin_inset Flex Strong
3684status collapsed
3685
3686\begin_layout Plain Layout
3687data_ni
3688\end_layout
3689
3690\end_inset
3691
3692 must be defined together.
3693\end_layout
3694
3695\begin_layout Subsection*
3696data_jbegin (optional):
3697\emph on
3698integer
3699\end_layout
3700
3701\begin_layout Standard
3702Fortran:
3703\end_layout
3704
3705\begin_layout LyX-Code
3706INTEGER :: data_jbegin
3707\end_layout
3708
3709\begin_layout Standard
3710Defines the beginning index of field data for the second dimension.
3711 The attribute is taken into account only if
3712\begin_inset Flex Strong
3713status collapsed
3714
3715\begin_layout Plain Layout
3716 data_dim=2
3717\end_layout
3718
3719\end_inset
3720
3721.
3722 The attribute is an offset relative to the local domain, so the value can
3723 be negative.
3724 A negative value indicate that only some valid part of the data will extracted,
3725 for example in case of ghost cell.
3726 A positive value indicate that the local domain is greater than the data
3727 stored in memory.
3728 The 0-value means that the local domain matches the data in memory.
3729 The default value is
3730\begin_inset Flex Strong
3731status collapsed
3732
3733\begin_layout Plain Layout
37340
3735\end_layout
3736
3737\end_inset
3738
3739.
3740 The attributes
3741\begin_inset Flex Strong
3742status collapsed
3743
3744\begin_layout Plain Layout
3745data_jbegin
3746\end_layout
3747
3748\end_inset
3749
3750 and
3751\begin_inset Flex Strong
3752status collapsed
3753
3754\begin_layout Plain Layout
3755data_nj
3756\end_layout
3757
3758\end_inset
3759
3760 must be defined together.
3761\end_layout
3762
3763\begin_layout Subsection*
3764data_nj (optional):
3765\emph on
3766integer
3767\end_layout
3768
3769\begin_layout Standard
3770Fortran:
3771\end_layout
3772
3773\begin_layout LyX-Code
3774INTEGER :: data_nj
3775\end_layout
3776
3777\begin_layout Standard
3778Defines the size of field data for the second dimension.
3779 The attribute is taken account only if
3780\begin_inset Flex Strong
3781status collapsed
3782
3783\begin_layout Plain Layout
3784data_dim=2
3785\end_layout
3786
3787\end_inset
3788
3789.
3790 The default value is
3791\begin_inset Flex Strong
3792status collapsed
3793
3794\begin_layout Plain Layout
3795nj
3796\end_layout
3797
3798\end_inset
3799
3800.
3801 The attributes
3802\begin_inset Flex Strong
3803status collapsed
3804
3805\begin_layout Plain Layout
3806data_jbegin
3807\end_layout
3808
3809\end_inset
3810
3811 and
3812\begin_inset Flex Strong
3813status collapsed
3814
3815\begin_layout Plain Layout
3816data_nj
3817\end_layout
3818
3819\end_inset
3820
3821 must be defined together.
3822\end_layout
3823
3824\begin_layout Subsection*
3825data_i_index (optional):
3826\emph on
38271D-array of integer
3828\end_layout
3829
3830\begin_layout Standard
3831Fortran:
3832\end_layout
3833
3834\begin_layout LyX-Code
3835INTEGER :: data_i_index(:)
3836\end_layout
3837
3838\begin_layout Standard
3839In case of a compressed horizontal domain, define the data indexation for
3840 the first dimension.
3841 This attribute cannot be used together with
3842\begin_inset Flex Code
3843status open
3844
3845\begin_layout Plain Layout
3846data_ibegin/data_ni
3847\end_layout
3848
3849\end_inset
3850
3851 attributes.
3852 This attribute can be used only when
3853\begin_inset Flex Code
3854status open
3855
3856\begin_layout Plain Layout
3857data_dim=1
3858\end_layout
3859
3860\end_inset
3861
3862.
3863 The size of data_i_index determine the size of the fields dimension of
3864 the corresponding domain, that is sent from the model.
3865 Value can be negative or greater than
3866\begin_inset Flex Code
3867status open
3868
3869\begin_layout Plain Layout
3870ni
3871\end_layout
3872
3873\end_inset
3874
3875.
3876 In this case, the corresponding point will be considered as masked and
3877 will not be extracted to enter the workflow.
3878\end_layout
3879
3880\begin_layout Subsection*
3881data_j_index (optional):
3882\emph on
38831D-array of integer
3884\end_layout
3885
3886\begin_layout Standard
3887Fortran:
3888\end_layout
3889
3890\begin_layout LyX-Code
3891INTEGER :: data_j_index(:)
3892\end_layout
3893
3894\begin_layout Standard
3895In case of a compressed horizontal domain, define the data indexation for
3896 the first dimension.
3897 This attribute cannot be used together with
3898\begin_inset Flex Code
3899status open
3900
3901\begin_layout Plain Layout
3902data_jbegin/data_nj
3903\end_layout
3904
3905\end_inset
3906
3907 attributes.
3908 This attribute can be used only when
3909\begin_inset Flex Code
3910status open
3911
3912\begin_layout Plain Layout
3913data_dim=1
3914\end_layout
3915
3916\end_inset
3917
3918.
3919 The size of data_i_index determine the size of the fields dimension of
3920 the corresponding domain, that is sent from the model.
3921 Value can be negative or greater than
3922\begin_inset Flex Code
3923status open
3924
3925\begin_layout Plain Layout
3926nj
3927\end_layout
3928
3929\end_inset
3930
3931.
3932 In this case, the corresponding point will be considered as masked and
3933 will not be extracted to enter the workflow.
3934\end_layout
3935
3936\begin_layout Subsection*
3937mask_1d (optional):
3938\emph on
39391D-array of bool
3940\end_layout
3941
3942\begin_layout Standard
3943Fortran:
3944\end_layout
3945
3946\begin_layout LyX-Code
3947LOGICAL :: mask(:)
3948\end_layout
3949
3950\begin_layout Standard
3951Defines a 1D mask of a local domain.
3952 The masked value will be replaced by the value of the field attribute
3953\begin_inset Flex Strong
3954status collapsed
3955
3956\begin_layout Plain Layout
3957default_value
3958\end_layout
3959
3960\end_inset
3961
3962 in an output file.
3963 This attribute must be of size
3964\begin_inset Flex Code
3965status open
3966
3967\begin_layout Plain Layout
3968ni*nj
3969\end_layout
3970
3971\end_inset
3972
3973.
3974 By default no values are masked.
3975\end_layout
3976
3977\begin_layout Subsection*
3978mask_2d (optional):
3979\emph on
39802D-array of bool
3981\end_layout
3982
3983\begin_layout Standard
3984Fortran:
3985\end_layout
3986
3987\begin_layout LyX-Code
3988LOGICAL :: mask(:,:)
3989\end_layout
3990
3991\begin_layout Standard
3992Defines a 2D mask of a local domain.
3993 The masked values will be replaced by the value of the field attribute
3994 
3995\begin_inset Flex Strong
3996status collapsed
3997
3998\begin_layout Plain Layout
3999default_value
4000\end_layout
4001
4002\end_inset
4003
4004 in an output file.
4005 This attribute must be of size
4006\begin_inset Flex Code
4007status open
4008
4009\begin_layout Plain Layout
4010(ni,nj)
4011\end_layout
4012
4013\end_inset
4014
4015.
4016 By default no values are masked.
4017\end_layout
4018
4019\begin_layout Subsection*
4020domain_ref (optional): string
4021\end_layout
4022
4023\begin_layout Standard
4024Fortran:
4025\end_layout
4026
4027\begin_layout LyX-Code
4028CHARACTER(LEN=*) :: domain_ref
4029\end_layout
4030
4031\begin_layout Standard
4032Defines the reference to a domain.
4033 All attributes are inherited from the referenced domain with the classic
4034 inheritance mechanism.
4035 The value assigned to the referenced domain is transmitted to to current
4036 domain.
4037\end_layout
4038
4039\begin_layout Subsection*
4040i_index (optional):
4041\begin_inset Flex Emph
4042status collapsed
4043
4044\begin_layout Plain Layout
40451D-array of double
4046\end_layout
4047
4048\end_inset
4049
4050
4051\end_layout
4052
4053\begin_layout Standard
4054Fortran:
4055\end_layout
4056
4057\begin_layout LyX-Code
4058DOUBLE PRECISION :: i_index(:)
4059\end_layout
4060
4061\begin_layout Standard
4062Defines the global index of the first dimension of a local domain held by
4063 a process.
4064 By default the size of the array must be
4065\begin_inset Flex Strong
4066status collapsed
4067
4068\begin_layout Plain Layout
4069ni*nj
4070\end_layout
4071
4072\end_inset
4073
4074.
4075\end_layout
4076
4077\begin_layout Subsection*
4078j_index (optional):
4079\begin_inset Flex Emph
4080status collapsed
4081
4082\begin_layout Plain Layout
40831D-array of double
4084\end_layout
4085
4086\end_inset
4087
4088
4089\end_layout
4090
4091\begin_layout Standard
4092Fortran:
4093\end_layout
4094
4095\begin_layout LyX-Code
4096DOUBLE PRECISION :: j_index(:)
4097\end_layout
4098
4099\begin_layout Standard
4100Defines the global index of the second dimension of a local domain held
4101 by a process.
4102 By default the size of the array must be
4103\begin_inset Flex Strong
4104status collapsed
4105
4106\begin_layout Plain Layout
4107ni*nj
4108\end_layout
4109
4110\end_inset
4111
4112.
4113\end_layout
4114
4115\begin_layout Subsection*
4116comment (optional):
4117\begin_inset Flex Emph
4118status collapsed
4119
4120\begin_layout Plain Layout
4121string
4122\end_layout
4123
4124\end_inset
4125
4126
4127\end_layout
4128
4129\begin_layout Standard
4130Fortran:
4131\end_layout
4132
4133\begin_layout LyX-Code
4134CHARACTER(LEN=*) :: comment
4135\end_layout
4136
4137\begin_layout Standard
4138Allows a user to set a comment.
4139\end_layout
4140
4141\begin_layout Section
4142Grid attribute reference
4143\end_layout
4144
4145\begin_layout Subsection*
4146name (optional): string
4147\end_layout
4148
4149\begin_layout Standard
4150Fortran:
4151\end_layout
4152
4153\begin_layout LyX-Code
4154CHARACTER(LEN=*) :: name
4155\end_layout
4156
4157\begin_layout Standard
4158Defines the name of a grid.
4159\end_layout
4160
4161\begin_layout Subsection*
4162description (optional): string
4163\end_layout
4164
4165\begin_layout Standard
4166Fortran:
4167\end_layout
4168
4169\begin_layout LyX-Code
4170CHARACTER(LEN=*) :: description
4171\end_layout
4172
4173\begin_layout Standard
4174Defines the descriptions of a grid.
4175\end_layout
4176
4177\begin_layout Subsection*
4178mask_1d (optional):
4179\emph on
41801D-array of bool
4181\end_layout
4182
4183\begin_layout Standard
4184Fortran:
4185\end_layout
4186
4187\begin_layout LyX-Code
4188LOGICAL :: mask_1d(:)
4189\end_layout
4190
4191\begin_layout Standard
4192Defines the mask of a local 1D grid.
4193 Masked values will be replaced by the value of the field attribute
4194\begin_inset Flex Strong
4195status collapsed
4196
4197\begin_layout Plain Layout
4198default_value
4199\end_layout
4200
4201\end_inset
4202
4203 in an output file.
4204 By default none of the value are masked.
4205\end_layout
4206
4207\begin_layout Subsection*
4208mask_2d (optional):
4209\emph on
42102D-array of bool
4211\end_layout
4212
4213\begin_layout Standard
4214Fortran:
4215\end_layout
4216
4217\begin_layout LyX-Code
4218LOGICAL :: mask_2d(:,:)
4219\end_layout
4220
4221\begin_layout Standard
4222Defines the mask of a local 2D grid.
4223 Masked values will be replaced by the value of the field attribute
4224\begin_inset Flex Strong
4225status collapsed
4226
4227\begin_layout Plain Layout
4228default_value
4229\end_layout
4230
4231\end_inset
4232
4233 in an output file.
4234 By default none of the value are masked.
4235\end_layout
4236
4237\begin_layout Subsection*
4238mask_3d (optional):
4239\emph on
42403D-array of bool
4241\end_layout
4242
4243\begin_layout Standard
4244Fortran:
4245\end_layout
4246
4247\begin_layout LyX-Code
4248LOGICAL :: mask_3d(:,:,:)
4249\end_layout
4250
4251\begin_layout Standard
4252Define the mask of a local 3D grid.
4253 Masked values will be replaced by the value of the field attribute
4254\begin_inset Flex Strong
4255status collapsed
4256
4257\begin_layout Plain Layout
4258default_value
4259\end_layout
4260
4261\end_inset
4262
4263 in an output file.
4264 By default none of the value are masked.
4265\end_layout
4266
4267\begin_layout Subsection*
4268mask_4d (optional):
4269\emph on
42704D-array of bool
4271\end_layout
4272
4273\begin_layout Standard
4274Fortran:
4275\end_layout
4276
4277\begin_layout LyX-Code
4278LOGICAL :: mask_4d(:,:,:)
4279\end_layout
4280
4281\begin_layout Standard
4282Define the mask of a local 4D grid.
4283 Masked values will be replaced by the value of the field attribute
4284\begin_inset Flex Strong
4285status collapsed
4286
4287\begin_layout Plain Layout
4288default_value
4289\end_layout
4290
4291\end_inset
4292
4293 in an output file.
4294 By default none of the value are masked.
4295\end_layout
4296
4297\begin_layout Subsection*
4298mask_5d (optional):
4299\emph on
43005D-array of bool
4301\end_layout
4302
4303\begin_layout Standard
4304Fortran:
4305\end_layout
4306
4307\begin_layout LyX-Code
4308LOGICAL :: mask_5d(:,:,:)
4309\end_layout
4310
4311\begin_layout Standard
4312Define the mask of a local 5D grid.
4313 Masked values will be replaced by the value of the field attribute
4314\begin_inset Flex Strong
4315status collapsed
4316
4317\begin_layout Plain Layout
4318default_value
4319\end_layout
4320
4321\end_inset
4322
4323 in an output file.
4324 By default none of the value are masked.
4325\end_layout
4326
4327\begin_layout Subsection*
4328mask_6d (optional):
4329\emph on
43306D-array of bool
4331\end_layout
4332
4333\begin_layout Standard
4334Fortran:
4335\end_layout
4336
4337\begin_layout LyX-Code
4338LOGICAL :: mask_6d(:,:,:)
4339\end_layout
4340
4341\begin_layout Standard
4342Define the mask of a local 6D grid.
4343 Masked values will be replaced by the value of the field attribute
4344\begin_inset Flex Strong
4345status collapsed
4346
4347\begin_layout Plain Layout
4348default_value
4349\end_layout
4350
4351\end_inset
4352
4353 in an output file.
4354 By default none of the value are masked.
4355\end_layout
4356
4357\begin_layout Subsection*
4358mask_7d (optional):
4359\emph on
43607D-array of bool
4361\end_layout
4362
4363\begin_layout Standard
4364Fortran:
4365\end_layout
4366
4367\begin_layout LyX-Code
4368LOGICAL :: mask_7d(:,:,:)
4369\end_layout
4370
4371\begin_layout Standard
4372Define the mask of a local 7D grid.
4373 Masked values will be replaced by the value of the field attribute
4374\begin_inset Flex Strong
4375status collapsed
4376
4377\begin_layout Plain Layout
4378default_value
4379\end_layout
4380
4381\end_inset
4382
4383 in an output file.
4384 By default none of the value are masked.
4385\end_layout
4386
4387\begin_layout Subsection*
4388comment (optional):
4389\begin_inset Flex Emph
4390status collapsed
4391
4392\begin_layout Plain Layout
4393string
4394\end_layout
4395
4396\end_inset
4397
4398
4399\end_layout
4400
4401\begin_layout Standard
4402Fortran:
4403\end_layout
4404
4405\begin_layout LyX-Code
4406CHARACTER(LEN=*) :: comment
4407\end_layout
4408
4409\begin_layout Standard
4410Allows a user to set a comment.
4411 Meaningfull for the XIOS workflow.
4412\end_layout
4413
4414\begin_layout Section
4415Field attribute reference
4416\end_layout
4417
4418\begin_layout Subsection*
4419name (optional):
4420\emph on
4421string
4422\end_layout
4423
4424\begin_layout Standard
4425Fortran:
4426\end_layout
4427
4428\begin_layout LyX-Code
4429CHARACTER(LEN=*) :: name
4430\end_layout
4431
4432\begin_layout Standard
4433Defines the name of a field as it will appear in an output file.
4434 If not present, the identifier
4435\begin_inset Flex Strong
4436status collapsed
4437
4438\begin_layout Plain Layout
4439id
4440\end_layout
4441
4442\end_inset
4443
4444 will be substituted.
4445\end_layout
4446
4447\begin_layout Subsection*
4448standard_name (optional):
4449\emph on
4450string
4451\end_layout
4452
4453\begin_layout Standard
4454Fortran:
4455\end_layout
4456
4457\begin_layout LyX-Code
4458CHARACTER(LEN=*) :: standard_name
4459\end_layout
4460
4461\begin_layout Standard
4462Defines the
4463\begin_inset Flex Strong
4464status collapsed
4465
4466\begin_layout Plain Layout
4467standard_name
4468\end_layout
4469
4470\end_inset
4471
4472 attribute as it will appear in the metadata of an output file.
4473\end_layout
4474
4475\begin_layout Subsection*
4476long_name (optional):
4477\emph on
4478string
4479\end_layout
4480
4481\begin_layout Standard
4482Fortran:
4483\end_layout
4484
4485\begin_layout LyX-Code
4486CHARACTER(LEN=*) :: long_name
4487\end_layout
4488
4489\begin_layout Standard
4490Defines the long name as it will appear in the metadata of an output file.
4491\end_layout
4492
4493\begin_layout Subsection*
4494expr (optional):
4495\emph on
4496string
4497\end_layout
4498
4499\begin_layout Standard
4500Fortran:
4501\end_layout
4502
4503\begin_layout LyX-Code
4504CHARACTER(LEN=*) :: expr
4505\end_layout
4506
4507\begin_layout Standard
4508Defines the expression for arithmetic or time-integration operations performed
4509 on a field.
4510 For example if
4511\series bold
4512expr=
4513\begin_inset Quotes erd
4514\end_inset
4515
4516sqrt(@temp2 - pow(@temp, 2))
4517\begin_inset Quotes erd
4518\end_inset
4519
4520
4521\series default
4522 then the variance will be calculated on the incoming flux of the field
4523 
4524\series bold
4525temp
4526\series default
4527 (given that field temp2 that holds the square of temp was correctly defined).
4528 
4529\end_layout
4530
4531\begin_layout Subsection*
4532unit (optional):
4533\emph on
4534string
4535\end_layout
4536
4537\begin_layout Standard
4538Fortran:
4539\end_layout
4540
4541\begin_layout LyX-Code
4542CHARACTER(LEN=*) :: unit
4543\end_layout
4544
4545\begin_layout Standard
4546Defines the unit of a field, as it will apear in the associated metadata
4547 in the output file.
4548\end_layout
4549
4550\begin_layout Subsection*
4551operation (mandatory): enumeration
4552\emph on
4553 {once, instant, average, maximum, minimum, accumulate}
4554\end_layout
4555
4556\begin_layout Standard
4557Fortran:
4558\end_layout
4559
4560\begin_layout LyX-Code
4561CHARACTER(LEN=*) :: operation
4562\end_layout
4563
4564\begin_layout Standard
4565Defines the temporal operation applied to a field.
4566\end_layout
4567
4568\begin_layout Subsection*
4569freq_op (optional):
4570\emph on
4571duration
4572\end_layout
4573
4574\begin_layout Standard
4575Fortran:
4576\end_layout
4577
4578\begin_layout LyX-Code
4579TYPE(xios_duration) :: freq_op
4580\end_layout
4581
4582\begin_layout Standard
4583Defines the sampling frequency of a temporal operation, so that field values
4584 will be used for temporal sampling at frequency
4585\begin_inset Flex Strong
4586status collapsed
4587
4588\begin_layout Plain Layout
4589freq_op
4590\end_layout
4591
4592\end_inset
4593
4594.
4595 It can be also useful for sub-processes called at different frequency in
4596 a model.
4597 The default value is equal to the file attribute
4598\begin_inset Flex Strong
4599status collapsed
4600
4601\begin_layout Plain Layout
4602output_freq
4603\end_layout
4604
4605\end_inset
4606
4607 for
4608\begin_inset Flex Strong
4609status collapsed
4610
4611\begin_layout Plain Layout
4612instant
4613\end_layout
4614
4615\end_inset
4616
4617 operations and
4618\begin_inset Flex Strong
4619status collapsed
4620
4621\begin_layout Plain Layout
46221ts
4623\end_layout
4624
4625\end_inset
4626
4627 (1 time step) otherwise.
4628\end_layout
4629
4630\begin_layout Subsection*
4631freq_offset (optional):
4632\emph on
4633duration
4634\end_layout
4635
4636\begin_layout Standard
4637Fortran:
4638\end_layout
4639
4640\begin_layout LyX-Code
4641TYPE(xios_duration) :: freq_offset
4642\end_layout
4643
4644\begin_layout Standard
4645Defines the offset when
4646\begin_inset Flex Strong
4647status collapsed
4648
4649\begin_layout Plain Layout
4650freq_op
4651\end_layout
4652
4653\end_inset
4654
4655 is defined.
4656 Accepted values lie between
4657\series bold
46580
4659\series default
4660 and
4661\begin_inset Flex Strong
4662status collapsed
4663
4664\begin_layout Plain Layout
4665freq_op - 1ts
4666\end_layout
4667
4668\end_inset
4669
4670.
4671 The default value is
4672\begin_inset Flex Strong
4673status collapsed
4674
4675\begin_layout Plain Layout
4676freq_op - 1ts
4677\end_layout
4678
4679\end_inset
4680
4681 for fields in the
4682\begin_inset Flex Strong
4683status collapsed
4684
4685\begin_layout Plain Layout
4686write
4687\end_layout
4688
4689\end_inset
4690
4691 mode and
4692\series bold
46930
4694\series default
4695 for fields in the
4696\begin_inset Flex Strong
4697status collapsed
4698
4699\begin_layout Plain Layout
4700read
4701\end_layout
4702
4703\end_inset
4704
4705 mode.
4706\end_layout
4707
4708\begin_layout Subsection*
4709level (optional):
4710\emph on
4711integer
4712\end_layout
4713
4714\begin_layout Standard
4715Fortran:
4716\end_layout
4717
4718\begin_layout LyX-Code
4719INTEGER :: level
4720\end_layout
4721
4722\begin_layout Standard
4723Defines the output level of a field.
4724 The field will be output only if the file attribute
4725\begin_inset Flex Strong
4726status collapsed
4727
4728\begin_layout Plain Layout
4729 output_level
4730\begin_inset Formula $\geq$
4731\end_inset
4732
4733level
4734\end_layout
4735
4736\end_inset
4737
4738.
4739 The default value is
4740\begin_inset Flex Strong
4741status collapsed
4742
4743\begin_layout Plain Layout
47440
4745\end_layout
4746
4747\end_inset
4748
4749.
4750\end_layout
4751
4752\begin_layout Subsection*
4753prec (optional):
4754\emph on
4755integer
4756\end_layout
4757
4758\begin_layout Standard
4759Fortran:
4760\end_layout
4761
4762\begin_layout LyX-Code
4763INTEGER :: prec
4764\end_layout
4765
4766\begin_layout Standard
4767Defines the precision in bytes of a field in an output file.
4768 Available values are: 2 (integer), 4 (float single precision) and 8 (float
4769 double precision).
4770 The default value is 4 (float single precision).
4771\end_layout
4772
4773\begin_layout Subsection*
4774enabled (optional):
4775\emph on
4776bool
4777\end_layout
4778
4779\begin_layout Standard
4780Fortran:
4781\end_layout
4782
4783\begin_layout LyX-Code
4784LOGICAL :: enabled
4785\end_layout
4786
4787\begin_layout Standard
4788Defines if a field must be output or not.
4789 The default value is
4790\begin_inset Flex Strong
4791status collapsed
4792
4793\begin_layout Plain Layout
4794true
4795\end_layout
4796
4797\end_inset
4798
4799.
4800\end_layout
4801
4802\begin_layout Subsection*
4803check_if_active (optional):
4804\emph on
4805bool
4806\end_layout
4807
4808\begin_layout Standard
4809Fortran:
4810\end_layout
4811
4812\begin_layout LyX-Code
4813LOGICAL :: check_if_active
4814\end_layout
4815
4816\begin_layout Standard
4817Sets a check if a field will be used at a given time step.
4818 Activating the check may improve performance for fields which are not used
4819 frequently, while it can detoriate performance for fields used at each
4820 time step.
4821 The default value is false.
4822\end_layout
4823
4824\begin_layout Subsection*
4825read_access (optional):
4826\emph on
4827bool
4828\end_layout
4829
4830\begin_layout Standard
4831Fortran:
4832\end_layout
4833
4834\begin_layout LyX-Code
4835LOGICAL :: read_access
4836\end_layout
4837
4838\begin_layout Standard
4839Defines whether a field can be read from the model or not.
4840 The default value is
4841\begin_inset Flex Strong
4842status collapsed
4843
4844\begin_layout Plain Layout
4845false
4846\end_layout
4847
4848\end_inset
4849
4850.
4851 Note that for fields belonging to a file in
4852\series bold
4853\emph on
4854read
4855\series default
4856\emph default
4857 
4858\series bold
4859mode
4860\series default
4861, this attribute is always
4862\series bold
4863true
4864\series default
4865.
4866\end_layout
4867
4868\begin_layout Subsection*
4869field_ref (optional):
4870\emph on
4871string
4872\end_layout
4873
4874\begin_layout Standard
4875Fortran:
4876\end_layout
4877
4878\begin_layout LyX-Code
4879CHARACTER(LEN=*) :: field_ref
4880\end_layout
4881
4882\begin_layout Standard
4883Defines the field reference.
4884 All attributes will be inherited from the referenced field via the classical
4885 inheritance mechanism.
4886 The values assigned to the referenced field will be transmitted to the
4887 current field to perform temporal operation.
4888\end_layout
4889
4890\begin_layout Subsection*
4891grid_ref (optional):
4892\emph on
4893string
4894\end_layout
4895
4896\begin_layout Standard
4897Fortran:
4898\end_layout
4899
4900\begin_layout LyX-Code
4901CHARACTER(LEN=*) :: grid_ref
4902\end_layout
4903
4904\begin_layout Standard
4905Defines the field grid.
4906 Note that only either
4907\begin_inset Flex Strong
4908status collapsed
4909
4910\begin_layout Plain Layout
4911grid_ref
4912\end_layout
4913
4914\end_inset
4915
4916 or a combination of
4917\begin_inset Flex Strong
4918status collapsed
4919
4920\begin_layout Plain Layout
4921domain_ref
4922\end_layout
4923
4924\end_inset
4925
4926,
4927\begin_inset Flex Strong
4928status collapsed
4929
4930\begin_layout Plain Layout
4931scalar_ref
4932\end_layout
4933
4934\end_inset
4935
4936 or
4937\begin_inset Flex Strong
4938status collapsed
4939
4940\begin_layout Plain Layout
4941axis_ref
4942\end_layout
4943
4944\end_inset
4945
4946 can be specified.
4947\end_layout
4948
4949\begin_layout Subsection*
4950domain_ref (optional):
4951\emph on
4952string
4953\end_layout
4954
4955\begin_layout Standard
4956Fortran:
4957\end_layout
4958
4959\begin_layout LyX-Code
4960CHARACTER(LEN=*) :: domain_ref
4961\end_layout
4962
4963\begin_layout Standard
4964Defines the field domain.
4965 If the attribute is defined, the attribute
4966\begin_inset Flex Strong
4967status collapsed
4968
4969\begin_layout Plain Layout
4970grid_ref
4971\end_layout
4972
4973\end_inset
4974
4975 must not be specified.
4976\end_layout
4977
4978\begin_layout Subsection*
4979axis_ref (optional):
4980\emph on
4981string
4982\end_layout
4983
4984\begin_layout Standard
4985Fortran:
4986\end_layout
4987
4988\begin_layout LyX-Code
4989CHARACTER(LEN=*) :: axis_ref
4990\end_layout
4991
4992\begin_layout Standard
4993Defines an axis for the current field.
4994 If the attribute is defined, the attribute
4995\begin_inset Flex Strong
4996status collapsed
4997
4998\begin_layout Plain Layout
4999grid_ref
5000\end_layout
5001
5002\end_inset
5003
5004 must not be specified.
5005\end_layout
5006
5007\begin_layout Subsection*
5008scalar_ref (optional):
5009\emph on
5010string
5011\end_layout
5012
5013\begin_layout Standard
5014Fortran:
5015\end_layout
5016
5017\begin_layout LyX-Code
5018CHARACTER(LEN=*) :: scalar_ref
5019\end_layout
5020
5021\begin_layout Standard
5022Defines a scalar domain for the current field.
5023 If the attribute is defined, the attribute
5024\begin_inset Flex Strong
5025status collapsed
5026
5027\begin_layout Plain Layout
5028grid_ref
5029\end_layout
5030
5031\end_inset
5032
5033 must not be specified.
5034\end_layout
5035
5036\begin_layout Subsection*
5037grid_path (optional):
5038\emph on
5039string
5040\end_layout
5041
5042\begin_layout Standard
5043Fortran:
5044\end_layout
5045
5046\begin_layout LyX-Code
5047CHARACTER(LEN=*) :: grid_path
5048\end_layout
5049
5050\begin_layout Standard
5051Defines the way operations pass from a grid to other grids, combined with
5052 field_ref attribute.
5053 Each grid name in
5054\begin_inset Flex Code
5055status open
5056
5057\begin_layout Plain Layout
5058grid_path
5059\end_layout
5060
5061\end_inset
5062
5063 must be separated by a comma.
5064 All tranformation realated to the grid listed in grid_path will be applyed
5065 successively, including the grid destination associated to the destination
5066 field.
5067 
5068\end_layout
5069
5070\begin_layout Subsection*
5071default_value (optional):
5072\emph on
5073double
5074\end_layout
5075
5076\begin_layout Standard
5077Fortran:
5078\end_layout
5079
5080\begin_layout LyX-Code
5081DOUBLE PRECISION :: default_value
5082\end_layout
5083
5084\begin_layout Standard
5085Defines the value which will be used instead of missing field data.
5086 For an entry field (coming from model, or from an input file), if
5087\begin_inset Flex Code
5088status open
5089
5090\begin_layout Plain Layout
5091detect_missing_value
5092\end_layout
5093
5094\end_inset
5095
5096 and
5097\begin_inset Flex Code
5098status open
5099
5100\begin_layout Plain Layout
5101default_value
5102\end_layout
5103
5104\end_inset
5105
5106 are defined the values of the field equal to
5107\begin_inset Flex Code
5108status open
5109
5110\begin_layout Plain Layout
5111default_value
5112\end_layout
5113
5114\end_inset
5115
5116 will be replaced by NaN.
5117 For output field (read from the model or sent to server), the NaN values
5118 will be replaced by
5119\begin_inset Flex Code
5120status open
5121
5122\begin_layout Plain Layout
5123default_value
5124\end_layout
5125
5126\end_inset
5127
5128, if defined.
5129 For masked value, in output, if
5130\begin_inset Flex Code
5131status open
5132
5133\begin_layout Plain Layout
5134default_value
5135\end_layout
5136
5137\end_inset
5138
5139 is defined, the corresponding value will be replaced by
5140\begin_inset Flex Code
5141status open
5142
5143\begin_layout Plain Layout
5144default_value
5145\end_layout
5146
5147\end_inset
5148
5149, otherwise, the value is undefined and will depend of the initial value
5150 of the allocated memory block.
5151\end_layout
5152
5153\begin_layout Subsection*
5154valid_min (optional):
5155\emph on
5156double
5157\end_layout
5158
5159\begin_layout Standard
5160Fortran:
5161\end_layout
5162
5163\begin_layout LyX-Code
5164DOUBLE PRECISION :: valid_min
5165\end_layout
5166
5167\begin_layout Standard
5168Define the minimum validity range of the field as it will be written as
5169 a field metadata in the output file, accordingly to CF compliance.
5170 
5171\end_layout
5172
5173\begin_layout Subsection*
5174valid_max (optional):
5175\emph on
5176double
5177\end_layout
5178
5179\begin_layout Standard
5180Fortran:
5181\end_layout
5182
5183\begin_layout LyX-Code
5184DOUBLE PRECISION :: valid_max
5185\end_layout
5186
5187\begin_layout Standard
5188Define the maximum validity range of the field as it will be written as
5189 a field metadata in the output file, accordingly to CF compliance.
5190 
5191\end_layout
5192
5193\begin_layout Subsection*
5194detect_missing_value (optional):
5195\emph on
5196bool
5197\end_layout
5198
5199\begin_layout Standard
5200Fortran:
5201\end_layout
5202
5203\begin_layout LyX-Code
5204LOGICAL: detect_missing_value
5205\end_layout
5206
5207\begin_layout Standard
5208For entry field, if
5209\begin_inset Flex Code
5210status open
5211
5212\begin_layout Plain Layout
5213detect_missing_value
5214\end_layout
5215
5216\end_inset
5217
5218 is set to true and
5219\begin_inset Flex Code
5220status open
5221
5222\begin_layout Plain Layout
5223default_value
5224\end_layout
5225
5226\end_inset
5227
5228 is defined, the corresponding value will be replaced by NaN (see
5229\begin_inset Flex Code
5230status open
5231
5232\begin_layout Plain Layout
5233default_value
5234\end_layout
5235
5236\end_inset
5237
5238 attribute).
5239 This attribute is also used during temporal operation such as averaging,
5240 minimum, maximum, accumulate..., to detect NaN value and remove it from the
5241 computation (otherwise the result will be NaN).
5242 It is used also in some spatial transformation, but will be replaced later
5243 by a specific detect_missing value attribute related to the transformation.
5244\end_layout
5245
5246\begin_layout Subsection*
5247add_offset (optional):
5248\emph on
5249double
5250\end_layout
5251
5252\begin_layout Standard
5253Fortran:
5254\end_layout
5255
5256\begin_layout LyX-Code
5257DOUBLE PRECISION: add_offset
5258\end_layout
5259
5260\begin_layout Standard
5261Sets the
5262\begin_inset Flex Strong
5263status collapsed
5264
5265\begin_layout Plain Layout
5266add_offset
5267\end_layout
5268
5269\end_inset
5270
5271 metadata CF attribute in an output file.
5272 In output, the
5273\begin_inset Flex Strong
5274status collapsed
5275
5276\begin_layout Plain Layout
5277add_offset
5278\end_layout
5279
5280\end_inset
5281
5282 value will be subtracted from the field values.
5283 It can be used together with
5284\begin_inset Flex Code
5285status open
5286
5287\begin_layout Plain Layout
5288scale_factor
5289\end_layout
5290
5291\end_inset
5292
5293 and
5294\begin_inset Flex Code
5295status open
5296
5297\begin_layout Plain Layout
5298prec
5299\end_layout
5300
5301\end_inset
5302
5303 attributes in order to reduce the data range and the volume of written
5304 data.
5305 Fo reading, this attribute is also taking into account to
5306\begin_inset Quotes eld
5307\end_inset
5308
5309decompress
5310\begin_inset Quotes erd
5311\end_inset
5312
5313 data.
5314\end_layout
5315
5316\begin_layout Subsection*
5317scale_factor:
5318\emph on
5319double
5320\end_layout
5321
5322\begin_layout Standard
5323Fortran:
5324\end_layout
5325
5326\begin_layout LyX-Code
5327DOUBLE PRECISION: scale_factor
5328\end_layout
5329
5330\begin_layout Standard
5331Sets the
5332\begin_inset Flex Strong
5333status collapsed
5334
5335\begin_layout Plain Layout
5336scale_factor
5337\end_layout
5338
5339\end_inset
5340
5341 metadata CF attribute in an output file.
5342 In output, the field values will be divided by the
5343\begin_inset Flex Strong
5344status collapsed
5345
5346\begin_layout Plain Layout
5347scale_factor
5348\end_layout
5349
5350\end_inset
5351
5352 value.
5353 It can be used together with
5354\begin_inset Flex Code
5355status open
5356
5357\begin_layout Plain Layout
5358add_offset
5359\end_layout
5360
5361\end_inset
5362
5363 and
5364\begin_inset Flex Code
5365status open
5366
5367\begin_layout Plain Layout
5368prec
5369\end_layout
5370
5371\end_inset
5372
5373 attributes in order to reduce the data range and the volume of written
5374 data.
5375 Fo reading, this attribute is also taking into account to
5376\begin_inset Quotes eld
5377\end_inset
5378
5379decompress
5380\begin_inset Quotes erd
5381\end_inset
5382
5383 data.
5384\end_layout
5385
5386\begin_layout Subsection*
5387compression_level (optional):
5388\emph on
5389integer
5390\end_layout
5391
5392\begin_layout Standard
5393Fortran:
5394\end_layout
5395
5396\begin_layout LyX-Code
5397INTEGER :: compression_level
5398\end_layout
5399
5400\begin_layout Standard
5401Defines whether a field should be compressed using NetCDF-4 built-in compression.
5402 The compression level must range from 0 to 9.
5403 A higher compression level means a better compression at the cost of using
5404 more processing power.
5405 The default value is inherited from the file attribute
5406\series bold
5407compression_level
5408\series default
5409.
5410\end_layout
5411
5412\begin_layout Subsection*
5413indexed_output (optional):
5414\emph on
5415bool
5416\end_layout
5417
5418\begin_layout Standard
5419Fortran:
5420\end_layout
5421
5422\begin_layout LyX-Code
5423LOGICAL :: indexed_output
5424\end_layout
5425
5426\begin_layout Standard
5427Defines whether field data must be output as an indexed grid instead of
5428 a full grid whenever possible.
5429 The default value is
5430\series bold
5431\emph on
5432false
5433\series default
5434\emph default
5435.
5436\end_layout
5437
5438\begin_layout Subsection*
5439ts_enabled (optional):
5440\emph on
5441bool
5442\end_layout
5443
5444\begin_layout Standard
5445Fortran:
5446\end_layout
5447
5448\begin_layout LyX-Code
5449LOGICAL :: ts_enabled
5450\end_layout
5451
5452\begin_layout Standard
5453Defines whether a field can be output as a timeseries.
5454 The default value is
5455\series bold
5456\emph on
5457false
5458\series default
5459\emph default
5460.
5461 A field will be tagged as timeseries if
5462\begin_inset Flex Code
5463status open
5464
5465\begin_layout Plain Layout
5466ts_enabled
5467\end_layout
5468
5469\end_inset
5470
5471 is set to true, and the associated file attribute timeserie is set to
5472\begin_inset Flex Code
5473status open
5474
5475\begin_layout Plain Layout
5476only
5477\end_layout
5478
5479\end_inset
5480
5481,
5482\begin_inset Flex Code
5483status open
5484
5485\begin_layout Plain Layout
5486both
5487\end_layout
5488
5489\end_inset
5490
5491 or
5492\begin_inset Flex Code
5493status open
5494
5495\begin_layout Plain Layout
5496exclusive
5497\end_layout
5498
5499\end_inset
5500
5501.
5502 A field tagged as timeseries will be output alone in a specific file suffixed
5503 by the field name.
5504 
5505\end_layout
5506
5507\begin_layout Subsection*
5508ts_split_freq (optional):
5509\emph on
5510duration
5511\end_layout
5512
5513\begin_layout Standard
5514Fortran:
5515\end_layout
5516
5517\begin_layout LyX-Code
5518TYPE(xios_duration) :: ts_split_freq
5519\end_layout
5520
5521\begin_layout Standard
5522Defines the splitting frequency that should be used for a timeseries if
5523 it has been requested.
5524 By default the attribute value is inherited from the file attribute
5525\series bold
5526split_freq
5527\series default
5528.
5529\end_layout
5530
5531\begin_layout Subsection*
5532cell_methods (optional):
5533\emph on
5534string
5535\end_layout
5536
5537\begin_layout Standard
5538Fortran:
5539\end_layout
5540
5541\begin_layout LyX-Code
5542CHARACTER(LEN=*) :: cell_methods
5543\end_layout
5544
5545\begin_layout Standard
5546Defines the cell methods field attribute.
5547 it will be written as associated field metadata, accordingly to CF compliance.
5548\end_layout
5549
5550\begin_layout Subsection*
5551cell_methods_mode (optional): enumeration
5552\emph on
5553 {overwrite, prefix, suffix, none}
5554\end_layout
5555
5556\begin_layout Standard
5557Fortran:
5558\end_layout
5559
5560\begin_layout LyX-Code
5561CHARACTER(LEN=*) :: cell_methods_mode
5562\end_layout
5563
5564\begin_layout Standard
5565Defines the cell methods mode of a field.
5566 
5567\end_layout
5568
5569\begin_layout Standard
5570XIOS defined itself the cell_method string, taking into account the operations
5571 applied on the field.
5572 But in some case it can modified, with the
5573\begin_inset Flex Code
5574status open
5575
5576\begin_layout Plain Layout
5577cell_methods
5578\end_layout
5579
5580\end_inset
5581
5582 attribute.
5583 
5584\begin_inset Flex Code
5585status open
5586
5587\begin_layout Plain Layout
5588overwrite
5589\end_layout
5590
5591\end_inset
5592
5593 will replace the computed default string by the
5594\begin_inset Flex Code
5595status open
5596
5597\begin_layout Plain Layout
5598cell_methods
5599\end_layout
5600
5601\end_inset
5602
5603 attribute,
5604\begin_inset Flex Code
5605status open
5606
5607\begin_layout Plain Layout
5608prefix
5609\end_layout
5610
5611\end_inset
5612
5613 will prefix the default string, and
5614\begin_inset Flex Code
5615status open
5616
5617\begin_layout Plain Layout
5618suffix
5619\end_layout
5620
5621\end_inset
5622
5623 will suffix the default string.
5624\end_layout
5625
5626\begin_layout Subsection*
5627comment (optional):
5628\begin_inset Flex Emph
5629status collapsed
5630
5631\begin_layout Plain Layout
5632string
5633\end_layout
5634
5635\end_inset
5636
5637
5638\end_layout
5639
5640\begin_layout Standard
5641Fortran:
5642\end_layout
5643
5644\begin_layout LyX-Code
5645CHARACTER(LEN=*) :: comment
5646\end_layout
5647
5648\begin_layout Standard
5649Allows a user to set a comment.
5650 Meaningfull on XIOS workflow.
5651\end_layout
5652
5653\begin_layout Section
5654Variable attribute reference
5655\end_layout
5656
5657\begin_layout Subsection*
5658name (optional):
5659\emph on
5660string
5661\end_layout
5662
5663\begin_layout Standard
5664Fortran:
5665\end_layout
5666
5667\begin_layout LyX-Code
5668CHARACTER(LEN=*) :: name
5669\end_layout
5670
5671\begin_layout Standard
5672Defines the name of a variable as it will appear in an output file.
5673 If not present, the variable
5674\begin_inset Flex Strong
5675status collapsed
5676
5677\begin_layout Plain Layout
5678id
5679\end_layout
5680
5681\end_inset
5682
5683 will be used.
5684\end_layout
5685
5686\begin_layout Subsection*
5687type (mandatory): enumeration {bool, int, int32, int16, int64, float, double,
5688 string}
5689\end_layout
5690
5691\begin_layout Standard
5692Fortran:
5693\end_layout
5694
5695\begin_layout LyX-Code
5696CHARACTER(LEN=*) :: type
5697\end_layout
5698
5699\begin_layout Standard
5700Defines the type of a variable.
5701 Note that the
5702\series bold
5703\emph on
5704int
5705\series default
5706\emph default
5707 type is a synonym for
5708\series bold
5709\emph on
5710int32
5711\series default
5712\emph default
5713.
5714\end_layout
5715
5716\begin_layout Subsection*
5717ts_target (optional): enumeration {file, field, both, none}
5718\end_layout
5719
5720\begin_layout Standard
5721Fortran:
5722\end_layout
5723
5724\begin_layout LyX-Code
5725CHARACTER(LEN=*) :: ts_target
5726\end_layout
5727
5728\begin_layout Standard
5729This attribute specify if a variable present in a file (global attribute)
5730 must be reported in each timeseries generated file.
5731 If
5732\begin_inset Flex Code
5733status open
5734
5735\begin_layout Plain Layout
5736ts_target=none
5737\end_layout
5738
5739\end_inset
5740
5741, the variable is not included, if
5742\begin_inset Flex Code
5743status open
5744
5745\begin_layout Plain Layout
5746ts_target=file
5747\end_layout
5748
5749\end_inset
5750
5751, the variable is included in each generated file as global attribute, if
5752 
5753\begin_inset Flex Code
5754status open
5755
5756\begin_layout Plain Layout
5757ts_target=field
5758\end_layout
5759
5760\end_inset
5761
5762, the variable is included as field attribute associated to the generated
5763 files (field metadata), if
5764\begin_inset Flex Code
5765status open
5766
5767\begin_layout Plain Layout
5768ts_target=both
5769\end_layout
5770
5771\end_inset
5772
5773, the varible is included twice as file global attribute and field attribute.
5774 
5775\end_layout
5776
5777\begin_layout Section
5778File attribute reference
5779\end_layout
5780
5781\begin_layout Subsection*
5782name (optional):
5783\emph on
5784string
5785\end_layout
5786
5787\begin_layout Standard
5788Fortran:
5789\end_layout
5790
5791\begin_layout LyX-Code
5792CHARACTER(LEN=*) :: name
5793\end_layout
5794
5795\begin_layout Standard
5796Defines the name of a file.
5797 If not specified a name is automaticaly defined from the file id.
5798 For netcdf output, a
5799\begin_inset Quotes eld
5800\end_inset
5801
5802
5803\begin_inset Flex Code
5804status open
5805
5806\begin_layout Plain Layout
5807.nc
5808\end_layout
5809
5810\end_inset
5811
5812
5813\begin_inset Quotes erd
5814\end_inset
5815
5816 suffix will be added to the file name.
5817\end_layout
5818
5819\begin_layout Subsection*
5820description (optional):
5821\emph on
5822string
5823\end_layout
5824
5825\begin_layout Standard
5826Fortran:
5827\end_layout
5828
5829\begin_layout LyX-Code
5830CHARACTER(LEN=*) :: description
5831\end_layout
5832
5833\begin_layout Standard
5834Defines the description of a file.
5835\end_layout
5836
5837\begin_layout Subsection*
5838name_suffix (optional):
5839\emph on
5840string
5841\end_layout
5842
5843\begin_layout Standard
5844Fortran:
5845\end_layout
5846
5847\begin_layout LyX-Code
5848CHARACTER(LEN=*) :: name_suffix
5849\end_layout
5850
5851\begin_layout Standard
5852Defines a suffix added to the file name.
5853\end_layout
5854
5855\begin_layout Subsection*
5856min_digits (optional):
5857\emph on
5858integer
5859\end_layout
5860
5861\begin_layout Standard
5862Fortran:
5863\end_layout
5864
5865\begin_layout LyX-Code
5866INTEGER :: min_digits
5867\end_layout
5868
5869\begin_layout Standard
5870For the
5871\series bold
5872multiple_file
5873\series default
5874 mode defines the minimum number of digits of the suffix describing the
5875 server rank which will be appended to the file name.
5876 The default value is
5877\begin_inset Flex Strong
5878status collapsed
5879
5880\begin_layout Plain Layout
58810
5882\end_layout
5883
5884\end_inset
5885
5886 (no server rank suffix is added).
5887\end_layout
5888
5889\begin_layout Subsection*
5890output_freq (mandatory):
5891\emph on
5892duration
5893\end_layout
5894
5895\begin_layout Standard
5896Fortran:
5897\end_layout
5898
5899\begin_layout LyX-Code
5900TYPE(xios_duration) :: output_freq
5901\end_layout
5902
5903\begin_layout Standard
5904Defines the output frequency for the current file.
5905\end_layout
5906
5907\begin_layout Subsection*
5908output_level (optional):
5909\emph on
5910integer
5911\end_layout
5912
5913\begin_layout Standard
5914Fortran:
5915\end_layout
5916
5917\begin_layout LyX-Code
5918INTEGER :: output_level
5919\end_layout
5920
5921\begin_layout Standard
5922Defines the output level for all fields of the current file.
5923 The field is output only if the field attribute
5924\series bold
5925level
5926\series default
5927 is less or equal to the file attribute
5928\series bold
5929output_level
5930\series default
5931.
5932\end_layout
5933
5934\begin_layout Subsection*
5935sync_freq (optional):
5936\emph on
5937duration
5938\end_layout
5939
5940\begin_layout Standard
5941Fortran:
5942\end_layout
5943
5944\begin_layout LyX-Code
5945TYPE(xios_duration) :: sync_freq
5946\end_layout
5947
5948\begin_layout Standard
5949Defines the frequency for flushing the current file onto a disk.
5950 It may result in poor performances but data will be written even if a file
5951 is not yet closed.
5952\end_layout
5953
5954\begin_layout Subsection*
5955split_freq (optional):
5956\emph on
5957duration
5958\end_layout
5959
5960\begin_layout Standard
5961Fortran:
5962\end_layout
5963
5964\begin_layout LyX-Code
5965TYPE(xios_duration) :: split_freq
5966\end_layout
5967
5968\begin_layout Standard
5969Defines the frequency for splitting the current file.
5970 The start and end dates will be added to the file name (see
5971\begin_inset Flex Emph
5972status collapsed
5973
5974\begin_layout Plain Layout
5975
5976\series bold
5977\emph on
5978split_freq_format
5979\end_layout
5980
5981\end_inset
5982
5983 attribute).
5984 By default no splitting is done.
5985\end_layout
5986
5987\begin_layout Subsection*
5988split_freq_format (optional):
5989\emph on
5990string
5991\end_layout
5992
5993\begin_layout Standard
5994Fortran:
5995\end_layout
5996
5997\begin_layout LyX-Code
5998CHARACTER(LEN=*) :: split_freq_format
5999\end_layout
6000
6001\begin_layout Standard
6002Defines the format of the split date suffixed to a file.
6003 It can contain any character,
6004\emph on
6005
6006\begin_inset Flex Code
6007status collapsed
6008
6009\begin_layout Plain Layout
6010%y
6011\end_layout
6012
6013\end_inset
6014
6015
6016\emph default
6017 will be replaced by the year (4 characters),
6018\begin_inset Flex Code
6019status collapsed
6020
6021\begin_layout Plain Layout
6022%mo
6023\end_layout
6024
6025\end_inset
6026
6027 by the month (2 char),
6028\begin_inset Flex Code
6029status collapsed
6030
6031\begin_layout Plain Layout
6032%d
6033\end_layout
6034
6035\end_inset
6036
6037 by the day (2 char),
6038\begin_inset Flex Code
6039status collapsed
6040
6041\begin_layout Plain Layout
6042%h
6043\end_layout
6044
6045\end_inset
6046
6047 by the hour (2 char),
6048\begin_inset Flex Code
6049status collapsed
6050
6051\begin_layout Plain Layout
6052%mi
6053\end_layout
6054
6055\end_inset
6056
6057 by the minute (2 char),
6058\begin_inset Flex Code
6059status collapsed
6060
6061\begin_layout Plain Layout
6062%s
6063\end_layout
6064
6065\end_inset
6066
6067 by the second (2 char),
6068\begin_inset Flex Code
6069status collapsed
6070
6071\begin_layout Plain Layout
6072%S
6073\end_layout
6074
6075\end_inset
6076
6077 by the number of seconds since the time origin and
6078\begin_inset Flex Code
6079status collapsed
6080
6081\begin_layout Plain Layout
6082%D
6083\end_layout
6084
6085\end_inset
6086
6087 by the number of full days since the time origin.
6088 The default behavior is to create a suffix with the date until the smaller
6089 non zero unit.
6090 For example, in one day split frequency, the hour, minute and second will
6091 not appear in the suffix, only year, month and day.
6092\end_layout
6093
6094\begin_layout Subsection*
6095split_start_offset (optional):
6096\emph on
6097duration
6098\end_layout
6099
6100\begin_layout Standard
6101Fortran:
6102\end_layout
6103
6104\begin_layout LyX-Code
6105TYPE(xios_duration) :: split_start_offset
6106\end_layout
6107
6108\begin_layout Standard
6109Defines the offset of the start splitting date when
6110\begin_inset Flex Code
6111status open
6112
6113\begin_layout Plain Layout
6114split_freq
6115\end_layout
6116
6117\end_inset
6118
6119 attribute is enabled.
6120 This attribute is used only to shift the start date of the splitting format.
6121 It has no impact on the real splitting date.
6122 
6123\end_layout
6124
6125\begin_layout Subsection*
6126split_end_offset(optional):
6127\emph on
6128duration
6129\end_layout
6130
6131\begin_layout Standard
6132Fortran:
6133\end_layout
6134
6135\begin_layout LyX-Code
6136TYPE(xios_duration) :: split_end_offset
6137\end_layout
6138
6139\begin_layout Standard
6140Defines the offset of the end splitting date when
6141\begin_inset Flex Code
6142status open
6143
6144\begin_layout Plain Layout
6145split_freq
6146\end_layout
6147
6148\end_inset
6149
6150 attribute is enabled.
6151 This attribute is used only to shift the end date of the splitting format.
6152 It has no impact on the real splitting date.
6153 
6154\end_layout
6155
6156\begin_layout Subsection*
6157split_last_date (optional):
6158\emph on
6159string
6160\end_layout
6161
6162\begin_layout Standard
6163Fortran:
6164\end_layout
6165
6166\begin_layout LyX-Code
6167CHARACTER(LEN=*) :: split_last_date
6168\end_layout
6169
6170\begin_layout Standard
6171Define the end splitting date when
6172\begin_inset Flex Code
6173status open
6174
6175\begin_layout Plain Layout
6176split_freq
6177\end_layout
6178
6179\end_inset
6180
6181 attribute is enabled.
6182 If
6183\begin_inset Flex Code
6184status open
6185
6186\begin_layout Plain Layout
6187split_last_date
6188\end_layout
6189
6190\end_inset
6191
6192 is lesser than the compute end splitting date, then the end splitting date
6193 will be replaced by
6194\begin_inset Flex Code
6195status open
6196
6197\begin_layout Plain Layout
6198split_last_date
6199\end_layout
6200
6201\end_inset
6202
6203 in the file name.
6204 This attribute can be usefull when a simulation is over before the computed
6205 splitting date, to be consistent with the file internal calendar.
6206 The format of
6207\begin_inset Flex Code
6208status open
6209
6210\begin_layout Plain Layout
6211split_last_date
6212\end_layout
6213
6214\end_inset
6215
6216 string attribute must be consistent with a date.
6217 
6218\end_layout
6219
6220\begin_layout Subsection*
6221enabled (optional):
6222\emph on
6223bool
6224\end_layout
6225
6226\begin_layout Standard
6227Fortran:
6228\end_layout
6229
6230\begin_layout LyX-Code
6231LOGICAL :: enabled
6232\end_layout
6233
6234\begin_layout Standard
6235Defines if a file must be written/read or not.
6236 The default value is
6237\begin_inset Flex Strong
6238status collapsed
6239
6240\begin_layout Plain Layout
6241true
6242\end_layout
6243
6244\end_inset
6245
6246.
6247\end_layout
6248
6249\begin_layout Subsection*
6250mode (optional):
6251\emph on
6252enumeration {read, write}
6253\end_layout
6254
6255\begin_layout Standard
6256Fortran:
6257\end_layout
6258
6259\begin_layout LyX-Code
6260CHARACTER(LEN=*) :: mode
6261\end_layout
6262
6263\begin_layout Standard
6264Defines whether a file will be read or written.
6265 The default value is
6266\begin_inset Flex Strong
6267status collapsed
6268
6269\begin_layout Plain Layout
6270write
6271\end_layout
6272
6273\end_inset
6274
6275.
6276\end_layout
6277
6278\begin_layout Subsection*
6279type (optionnal):
6280\emph on
6281enumeration {one_file, multiple_file}
6282\end_layout
6283
6284\begin_layout Standard
6285Fortran:
6286\end_layout
6287
6288\begin_layout LyX-Code
6289CHARACTER(LEN=*) :: type
6290\end_layout
6291
6292\begin_layout Standard
6293Defines the type of a file:
6294\begin_inset Flex Strong
6295status collapsed
6296
6297\begin_layout Plain Layout
6298
6299\emph on
6300multiple_file
6301\end_layout
6302
6303\end_inset
6304
6305: one file by server using sequential netcdf writing,
6306\begin_inset Flex Strong
6307status collapsed
6308
6309\begin_layout Plain Layout
6310
6311\emph on
6312one_file
6313\end_layout
6314
6315\end_inset
6316
6317: one single global file is wrote using netcdf4 parallel access.
6318 The default value is
6319\begin_inset Flex Code
6320status open
6321
6322\begin_layout Plain Layout
6323multiple_file
6324\end_layout
6325
6326\end_inset
6327
6328.
6329\end_layout
6330
6331\begin_layout Subsection*
6332format (optional):
6333\emph on
6334enumeration {netcdf4, netcdf4_classic}
6335\end_layout
6336
6337\begin_layout Standard
6338Fortran:
6339\end_layout
6340
6341\begin_layout LyX-Code
6342CHARACTER(LEN=*) :: format
6343\end_layout
6344
6345\begin_layout Standard
6346Define the format of a file:
6347\begin_inset Flex Strong
6348status collapsed
6349
6350\begin_layout Plain Layout
6351
6352\emph on
6353netcdf4
6354\end_layout
6355
6356\end_inset
6357
6358: the HDF5 format will be used,
6359\begin_inset Flex Strong
6360status collapsed
6361
6362\begin_layout Plain Layout
6363
6364\emph on
6365netcdf4
6366\emph default
6367_
6368\emph on
6369classic
6370\end_layout
6371
6372\end_inset
6373
6374: the classic NetCDF format will be used.
6375 The default value is
6376\series bold
6377\emph on
6378netcdf4
6379\series default
6380\emph default
6381.
6382 Note that the
6383\series bold
6384\emph on
6385netcdf4
6386\emph default
6387_
6388\emph on
6389classic
6390\series default
6391\emph default
6392 format can be used with the attribute
6393\series bold
6394type
6395\series default
6396 set to
6397\series bold
6398\emph on
6399one_file
6400\series default
6401\emph default
6402 only if the NetCDF4 library was compiled with Parallel NetCDF support (–enable-
6403pnetcdf).
6404\end_layout
6405
6406\begin_layout Subsection*
6407par_access (optional):
6408\emph on
6409enumeration {collective, independent}
6410\end_layout
6411
6412\begin_layout Standard
6413Fortran:
6414\end_layout
6415
6416\begin_layout LyX-Code
6417CHARACTER(LEN=*) :: par_access
6418\end_layout
6419
6420\begin_layout Standard
6421For parallel writing, defines which type of MPI calls will be used.
6422 The default value is
6423\begin_inset Flex Strong
6424status collapsed
6425
6426\begin_layout Plain Layout
6427
6428\emph on
6429collective
6430\end_layout
6431
6432\end_inset
6433
6434.
6435 Nota : this attribute is now deprecated, and has no effect on I/O parallelism.
6436 
6437\end_layout
6438
6439\begin_layout Subsection*
6440read_metadata_par (optional):
6441\emph on
6442bool
6443\end_layout
6444
6445\begin_layout Standard
6446Fortran:
6447\end_layout
6448
6449\begin_layout LyX-Code
6450LOGICAL :: read_metadata_par
6451\end_layout
6452
6453\begin_layout Standard
6454For files in the read mode, defines if parallel or serial I/O will be used
6455 by model processes for reading file metadata.
6456 The default value is false implying serial I/O for reading metadata on
6457 client side.
6458 
6459\end_layout
6460
6461\begin_layout Subsection*
6462convention (optional):
6463\emph on
6464enumeration {CF, UGRID}
6465\end_layout
6466
6467\begin_layout Standard
6468Fortran:
6469\end_layout
6470
6471\begin_layout LyX-Code
6472CHARACTER(LEN=*) :: convention
6473\end_layout
6474
6475\begin_layout Standard
6476Defines the file conventions.
6477 The netcdf file can be output following the CF convention (1.7) or the UGRID
6478 convention, usefull for unstructured mesh.
6479 By default the CF conventions are followed.
6480 The global file attribute
6481\begin_inset Flex Code
6482status open
6483
6484\begin_layout Plain Layout
6485Conventions
6486\end_layout
6487
6488\end_inset
6489
6490 will be added in the output file following the specified value.
6491\end_layout
6492
6493\begin_layout Subsection*
6494convention_str (optional):
6495\emph on
6496string
6497\end_layout
6498
6499\begin_layout Standard
6500Fortran:
6501\end_layout
6502
6503\begin_layout LyX-Code
6504CHARACTER(LEN=*) :: convention_str
6505\end_layout
6506
6507\begin_layout Standard
6508Defines the
6509\series bold
6510Conventions
6511\series default
6512attribute to be added to file global attributes.
6513 This attribute will overwrite the
6514\begin_inset Flex Code
6515status open
6516
6517\begin_layout Plain Layout
6518Conventions
6519\end_layout
6520
6521\end_inset
6522
6523 global file attribute generated by the
6524\begin_inset Flex Code
6525status open
6526
6527\begin_layout Plain Layout
6528convention
6529\end_layout
6530
6531\end_inset
6532
6533 XIOS attribute.
6534\end_layout
6535
6536\begin_layout Subsection*
6537append (optional):
6538\emph on
6539bool
6540\end_layout
6541
6542\begin_layout Standard
6543Fortran:
6544\end_layout
6545
6546\begin_layout LyX-Code
6547LOGICAL :: append
6548\end_layout
6549
6550\begin_layout Standard
6551If this attribute is set to
6552\begin_inset Flex Code
6553status open
6554
6555\begin_layout Plain Layout
6556true
6557\end_layout
6558
6559\end_inset
6560
6561 and if the file is present, the file is open, and data will be append at
6562 the specified time record.
6563 If the time record already exists, data will be overwritten, otherwise
6564 a new time record is created and data is appended.
6565 If append is set to
6566\begin_inset Flex Code
6567status open
6568
6569\begin_layout Plain Layout
6570false
6571\end_layout
6572
6573\end_inset
6574
6575, a new file will be created, even if a old file is present, overwritting
6576 it.
6577 The default value is
6578\begin_inset Flex Code
6579status open
6580
6581\begin_layout Plain Layout
6582append = false
6583\end_layout
6584
6585\end_inset
6586
6587.
6588\end_layout
6589
6590\begin_layout Subsection*
6591compression_level (optional):
6592\emph on
6593integer
6594\end_layout
6595
6596\begin_layout Standard
6597Fortran:
6598\end_layout
6599
6600\begin_layout LyX-Code
6601INTEGER :: compression_level
6602\end_layout
6603
6604\begin_layout Standard
6605Defines whether the fields should be compressed using NetCDF-4 built-in
6606 compression by default.
6607 The compression level must range from 0 to 9.
6608 A higher compression level means a better compression at the cost of using
6609 more processing power.
6610 The default value is
6611\begin_inset Flex Strong
6612status collapsed
6613
6614\begin_layout Plain Layout
6615
6616\emph on
66170
6618\end_layout
6619
6620\end_inset
6621
6622 (no compression).
6623\end_layout
6624
6625\begin_layout Subsection*
6626time_counter (optional):
6627\emph on
6628enumeration {centered, instant, record, exclusive, centered_exclusive, instant_e
6629xclusive, none}
6630\end_layout
6631
6632\begin_layout Standard
6633Fortran:
6634\end_layout
6635
6636\begin_layout LyX-Code
6637CHARACTER(LEN=*) :: time_counter
6638\end_layout
6639
6640\begin_layout Standard
6641Defines how the
6642\begin_inset Quotes eld
6643\end_inset
6644
6645time_counter
6646\begin_inset Quotes erd
6647\end_inset
6648
6649 variable will be output:
6650\end_layout
6651
6652\begin_layout Itemize
6653
6654\series bold
6655\emph on
6656centered
6657\series default
6658\emph default
6659: use centered times (default option for all field operations except for
6660 instant)
6661\end_layout
6662
6663\begin_layout Itemize
6664
6665\series bold
6666\emph on
6667instant
6668\series default
6669\emph default
6670: use instant times (default option for field operation
6671\series bold
6672instant
6673\series default
6674)
6675\end_layout
6676
6677\begin_layout Itemize
6678
6679\series bold
6680\emph on
6681record
6682\series default
6683\emph default
6684: use record indexes
6685\end_layout
6686
6687\begin_layout Itemize
6688
6689\series bold
6690\shape italic
6691centered_exclusive:
6692\series default
6693\shape default
6694do not include centered times into an output file
6695\end_layout
6696
6697\begin_layout Itemize
6698
6699\series bold
6700\shape italic
6701\emph on
6702instant_
6703\emph default
6704exclusive:
6705\series default
6706\shape default
6707do not include instant times into an output file
6708\end_layout
6709
6710\begin_layout Itemize
6711
6712\series bold
6713\shape italic
6714exclusive:
6715\series default
6716\shape default
6717include neither instant times nor centered times into an output file
6718\end_layout
6719
6720\begin_layout Itemize
6721
6722\series bold
6723\emph on
6724none
6725\series default
6726\emph default
6727: do not output the variable.
6728\end_layout
6729
6730\begin_layout Standard
6731The default value is
6732\begin_inset Flex Code
6733status open
6734
6735\begin_layout Plain Layout
6736centered
6737\end_layout
6738
6739\end_inset
6740
6741 if there are only centered time axis.
6742 It will be
6743\begin_inset Flex Code
6744status open
6745
6746\begin_layout Plain Layout
6747instant
6748\end_layout
6749
6750\end_inset
6751
6752 if there are only instant time axis.
6753 If both instant and centered time axis are present, the default value will
6754 be
6755\begin_inset Flex Code
6756status open
6757
6758\begin_layout Plain Layout
6759centered
6760\end_layout
6761
6762\end_inset
6763
6764.
6765 
6766\end_layout
6767
6768\begin_layout Subsection*
6769time_counter_name (optional):
6770\emph on
6771string
6772\end_layout
6773
6774\begin_layout Standard
6775Fortran:
6776\end_layout
6777
6778\begin_layout LyX-Code
6779CHARACTER(LEN=*) :: time_counter_name
6780\end_layout
6781
6782\begin_layout Standard
6783Define the name of a time counter.
6784 The default value is
6785\begin_inset Flex Code
6786status open
6787
6788\begin_layout Plain Layout
6789time_counter
6790\end_layout
6791
6792\end_inset
6793
6794.
6795\end_layout
6796
6797\begin_layout Subsection*
6798timeseries (optional):
6799\emph on
6800enumeration {none, only, both, exclusive}
6801\end_layout
6802
6803\begin_layout Standard
6804Fortran:
6805\end_layout
6806
6807\begin_layout LyX-Code
6808CHARACTER(LEN=*) :: time_series
6809\end_layout
6810
6811\begin_layout Standard
6812Defines whether the timeseries must be output:
6813\end_layout
6814
6815\begin_layout Itemize
6816
6817\series bold
6818\emph on
6819none
6820\series default
6821\emph default
6822: no timeseries is outputted, only the regular file
6823\end_layout
6824
6825\begin_layout Itemize
6826
6827\series bold
6828\emph on
6829only
6830\series default
6831\emph default
6832: only the timeseries is outputted, the regular file is not created
6833\end_layout
6834
6835\begin_layout Itemize
6836
6837\series bold
6838\emph on
6839both
6840\series default
6841\emph default
6842: both the timeseries and the regular file are outputted.
6843\end_layout
6844
6845\begin_layout Itemize
6846
6847\series bold
6848\emph on
6849exclusive
6850\series default
6851\emph default
6852: the timeseries is outputted and a regular file is created with only the
6853 fields which were not marked for output as a timeseries (if any).
6854\end_layout
6855
6856\begin_layout Standard
6857When time series is enabled, each tagged field (see
6858\begin_inset Flex Code
6859status open
6860
6861\begin_layout Plain Layout
6862ts_enabled
6863\end_layout
6864
6865\end_inset
6866
6867 field attribute) is output into a separate file.
6868 The default value is
6869\series bold
6870\emph on
6871none
6872\series default
6873\emph default
6874.
6875\end_layout
6876
6877\begin_layout Subsection*
6878ts_prefix (optional):
6879\emph on
6880string
6881\end_layout
6882
6883\begin_layout Standard
6884Fortran:
6885\end_layout
6886
6887\begin_layout LyX-Code
6888CHARACTER(LEN=*) :: ts_prefix
6889\end_layout
6890
6891\begin_layout Standard
6892Defines the prefix to use for the name of the timeseries files.
6893 By default the file name will be used.
6894\end_layout
6895
6896\begin_layout Subsection*
6897time_units (optional):
6898\emph on
6899enumeration {seconds, days}
6900\end_layout
6901
6902\begin_layout Standard
6903Fortran:
6904\end_layout
6905
6906\begin_layout LyX-Code
6907CHARACTER(LEN=*) :: time_units
6908\end_layout
6909
6910\begin_layout Standard
6911Define the time unit of the time axis present in the file.
6912 Two choices are possible :
6913\begin_inset Flex Code
6914status open
6915
6916\begin_layout Plain Layout
6917seconds
6918\end_layout
6919
6920\end_inset
6921
6922 or
6923\begin_inset Flex Code
6924status open
6925
6926\begin_layout Plain Layout
6927days
6928\end_layout
6929
6930\end_inset
6931
6932.
6933 The default value is
6934\begin_inset Flex Code
6935status open
6936
6937\begin_layout Plain Layout
6938seconds
6939\end_layout
6940
6941\end_inset
6942
6943.
6944\end_layout
6945
6946\begin_layout Subsection*
6947record_offset (optional):
6948\emph on
6949integer
6950\end_layout
6951
6952\begin_layout Standard
6953Fortran:
6954\end_layout
6955
6956\begin_layout LyX-Code
6957INTEGER :: record_offset
6958\end_layout
6959
6960\begin_layout Standard
6961Defines an offset for the time records associated to the file.
6962 For a file in
6963\begin_inset Flex Code
6964status open
6965
6966\begin_layout Plain Layout
6967read
6968\end_layout
6969
6970\end_inset
6971
6972 mode, the first record sent will be shift of
6973\begin_inset Flex Code
6974status open
6975
6976\begin_layout Plain Layout
6977record_offset
6978\end_layout
6979
6980\end_inset
6981
6982 value instead of 0.
6983 For file in write mode, the first time record to be output will begin from
6984 
6985\begin_inset Flex Code
6986status open
6987
6988\begin_layout Plain Layout
6989record_offset
6990\end_layout
6991
6992\end_inset
6993
6994 value.
6995 The default value is 0.
6996\end_layout
6997
6998\begin_layout Subsection*
6999cyclic (optional):
7000\emph on
7001bool
7002\end_layout
7003
7004\begin_layout Standard
7005Fortran:
7006\end_layout
7007
7008\begin_layout LyX-Code
7009LOGICAL :: cyclic
7010\end_layout
7011
7012\begin_layout Standard
7013If the option is activated for fields to be read, then upon reaching the
7014 last time record, reading will continue
7015\begin_inset Quotes eld
7016\end_inset
7017
7018cycle
7019\begin_inset Quotes erd
7020\end_inset
7021
7022 at the first time record.
7023 The default value is false.
7024\end_layout
7025
7026\begin_layout Subsection*
7027time_stamp_name (optional):
7028\begin_inset Flex Emph
7029status collapsed
7030
7031\begin_layout Plain Layout
7032string
7033\end_layout
7034
7035\end_inset
7036
7037
7038\end_layout
7039
7040\begin_layout Standard
7041Fortran:
7042\end_layout
7043
7044\begin_layout LyX-Code
7045CHARACTER(LEN=*) :: time_stamp_name
7046\end_layout
7047
7048\begin_layout Standard
7049Defines the timestamp name of the date and time when the program was executed
7050 which will be written into an output file.
7051 The default value is
7052\begin_inset Quotes eld
7053\end_inset
7054
7055timeStamp
7056\begin_inset Quotes erd
7057\end_inset
7058
7059.
7060\end_layout
7061
7062\begin_layout Subsection*
7063time_stamp_format (optional):
7064\begin_inset Flex Emph
7065status collapsed
7066
7067\begin_layout Plain Layout
7068string
7069\end_layout
7070
7071\end_inset
7072
7073
7074\end_layout
7075
7076\begin_layout Standard
7077Fortran:
7078\end_layout
7079
7080\begin_layout LyX-Code
7081CHARACTER(LEN=*) :: time_stamp_format
7082\end_layout
7083
7084\begin_layout Standard
7085Defines the timestamp format of the date and time when the program was executed
7086 to be written into an output file.
7087 It can contain any character.
7088 
7089\emph on
7090
7091\begin_inset Flex Code
7092status collapsed
7093
7094\begin_layout Plain Layout
7095%Y
7096\end_layout
7097
7098\end_inset
7099
7100
7101\emph default
7102 will be replaced by the 4-digit year (4 digits), while
7103\emph on
7104
7105\begin_inset Flex Code
7106status collapsed
7107
7108\begin_layout Plain Layout
7109%y
7110\end_layout
7111
7112\end_inset
7113
7114
7115\emph default
7116 will be replaced by the 2-digit year.
7117 
7118\begin_inset Flex Code
7119status collapsed
7120
7121\begin_layout Plain Layout
7122%m
7123\end_layout
7124
7125\end_inset
7126
7127 will be by the 2-digit month, while %b will be replaced by the 3-character
7128 month.
7129 
7130\begin_inset Flex Code
7131status collapsed
7132
7133\begin_layout Plain Layout
7134%d
7135\end_layout
7136
7137\end_inset
7138
7139 will be replaced by the day (2 char),
7140\begin_inset Flex Code
7141status collapsed
7142
7143\begin_layout Plain Layout
7144%H
7145\end_layout
7146
7147\end_inset
7148
7149 by the hour (2 char),
7150\begin_inset Flex Code
7151status collapsed
7152
7153\begin_layout Plain Layout
7154%M
7155\end_layout
7156
7157\end_inset
7158
7159 by the minute (2 char),
7160\begin_inset Flex Code
7161status collapsed
7162
7163\begin_layout Plain Layout
7164%S
7165\end_layout
7166
7167\end_inset
7168
7169 by the number of seconds,
7170\begin_inset Flex Code
7171status collapsed
7172
7173\begin_layout Plain Layout
7174%D
7175\end_layout
7176
7177\end_inset
7178
7179 by the date in the MM/DD/YY format.
7180\end_layout
7181
7182\begin_layout Subsection*
7183uuid_name (optional):
7184\begin_inset Flex Emph
7185status collapsed
7186
7187\begin_layout Plain Layout
7188string
7189\end_layout
7190
7191\end_inset
7192
7193
7194\end_layout
7195
7196\begin_layout Standard
7197Fortran:
7198\end_layout
7199
7200\begin_layout LyX-Code
7201CHARACTER(LEN=*) :: uuid_name
7202\end_layout
7203
7204\begin_layout Standard
7205Defines the name of the global attribute designing the UUID of the file.
7206 The default global attribute is
7207\begin_inset Quotes eld
7208\end_inset
7209
7210
7211\begin_inset Flex Code
7212status open
7213
7214\begin_layout Plain Layout
7215uuid
7216\end_layout
7217
7218\end_inset
7219
7220
7221\begin_inset Quotes erd
7222\end_inset
7223
7224.
7225\end_layout
7226
7227\begin_layout Subsection*
7228uuid_format (optional):
7229\begin_inset Flex Emph
7230status collapsed
7231
7232\begin_layout Plain Layout
7233string
7234\end_layout
7235
7236\end_inset
7237
7238
7239\end_layout
7240
7241\begin_layout Standard
7242Fortran:
7243\end_layout
7244
7245\begin_layout LyX-Code
7246CHARACTER(LEN=*) :: uuid_format
7247\end_layout
7248
7249\begin_layout Standard
7250Defines the format of file's UUID.
7251 In the
7252\begin_inset Flex Code
7253status open
7254
7255\begin_layout Plain Layout
7256uuid_format
7257\end_layout
7258
7259\end_inset
7260
7261 string, the sub-string
7262\begin_inset Flex Code
7263status open
7264
7265\begin_layout Plain Layout
7266%uuid%
7267\end_layout
7268
7269\end_inset
7270
7271 will be replaced by string computed UUID.
7272\end_layout
7273
7274\begin_layout Subsection*
7275comment (optional):
7276\begin_inset Flex Emph
7277status collapsed
7278
7279\begin_layout Plain Layout
7280string
7281\end_layout
7282
7283\end_inset
7284
7285
7286\end_layout
7287
7288\begin_layout Standard
7289Fortran:
7290\end_layout
7291
7292\begin_layout LyX-Code
7293CHARACTER(LEN=*) :: comment
7294\end_layout
7295
7296\begin_layout Standard
7297Allows a user to set a comment.
7298\end_layout
7299
7300\begin_layout Section
7301Transformation attribute reference
7302\end_layout
7303
7304\begin_layout Subsection
7305reduce_scalar_to_scalar
7306\end_layout
7307
7308\begin_layout Subsection*
7309operation (mandatory):
7310\emph on
7311enumeration {min, max, sum, average}
7312\end_layout
7313
7314\begin_layout Standard
7315Fortran:
7316\end_layout
7317
7318\begin_layout LyX-Code
7319CHARACTER(LEN=*) :: operation
7320\end_layout
7321
7322\begin_layout Standard
7323Defines the type of reduction operation performed on the scalar.
7324 Like a scalar is redondant accross process (except if masked), the reduction
7325 will be similar to a MPI reduction accros procces.
7326 
7327\end_layout
7328
7329\begin_layout Subsection
7330extract_axis_to_scalar
7331\end_layout
7332
7333\begin_layout Subsection*
7334position:
7335\emph on
7336integer
7337\end_layout
7338
7339\begin_layout Standard
7340Fortran:
7341\end_layout
7342
7343\begin_layout LyX-Code
7344INTEGER :: position
7345\end_layout
7346
7347\begin_layout Standard
7348Global index of a point on an axis to be extracted into a scalar.
7349\end_layout
7350
7351\begin_layout Standard
7352
7353\end_layout
7354
7355\begin_layout Subsection
7356interpolate_axis
7357\end_layout
7358
7359\begin_layout Subsection*
7360type (optional):
7361\emph on
7362string
7363\end_layout
7364
7365\begin_layout Standard
7366Fortran:
7367\end_layout
7368
7369\begin_layout LyX-Code
7370CHARACTER(LEN=*) :: type
7371\end_layout
7372
7373\begin_layout Standard
7374Defines the interpolation type on an axis.
7375 For now only polynomial interpolation is available, so this attribute is
7376 currently meaningless.
7377 
7378\end_layout
7379
7380\begin_layout Subsection*
7381order (optional):
7382\emph on
7383integer
7384\end_layout
7385
7386\begin_layout Standard
7387Fortran:
7388\end_layout
7389
7390\begin_layout LyX-Code
7391INTEGER :: order
7392\end_layout
7393
7394\begin_layout Standard
7395Defines the order of interpolation.
7396 The default value is 2.
7397\end_layout
7398
7399\begin_layout Subsection*
7400coordinate (optional):
7401\emph on
7402string
7403\end_layout
7404
7405\begin_layout Standard
7406Fortran:
7407\end_layout
7408
7409\begin_layout LyX-Code
7410CHARACTER(LEN=*) :: coordinate
7411\end_layout
7412
7413\begin_layout Standard
7414Defines the coordinate associated with an axis on which interpolation will
7415 be performed.
7416\end_layout
7417
7418\begin_layout Subsection
7419reduce_axis_to_axis
7420\end_layout
7421
7422\begin_layout Subsection*
7423operation (mandatory):
7424\emph on
7425enumeration {min, max, sum, average}
7426\end_layout
7427
7428\begin_layout Standard
7429Fortran:
7430\end_layout
7431
7432\begin_layout LyX-Code
7433CHARACTER(LEN=*) :: operation
7434\end_layout
7435
7436\begin_layout Standard
7437Defines a reduction operation performed on an axis across model processes.
7438\end_layout
7439
7440\begin_layout Subsection
7441reduce_axis_to_scalar
7442\end_layout
7443
7444\begin_layout Standard
7445Reduces data defined on an axis into a scalar value.
7446\end_layout
7447
7448\begin_layout Subsection*
7449operation (mandatory):
7450\emph on
7451enumeration {min, max, sum, average}
7452\end_layout
7453
7454\begin_layout Standard
7455Fortran:
7456\end_layout
7457
7458\begin_layout LyX-Code
7459CHARACTER(LEN=*) :: operation
7460\end_layout
7461
7462\begin_layout Subsection
7463zoom_axis
7464\end_layout
7465
7466\begin_layout Subsection*
7467begin (optional):
7468\begin_inset Flex Emph
7469status collapsed
7470
7471\begin_layout Plain Layout
7472integer
7473\end_layout
7474
7475\end_inset
7476
7477
7478\end_layout
7479
7480\begin_layout Standard
7481Fortran:
7482\end_layout
7483
7484\begin_layout LyX-Code
7485INTEGER :: begin
7486\end_layout
7487
7488\begin_layout Standard
7489Defines the beginning index of a zoomed region on a global axis.
7490 The attribute value should be an integer between
7491\begin_inset Flex Strong
7492status collapsed
7493
7494\begin_layout Plain Layout
74950
7496\end_layout
7497
7498\end_inset
7499
7500 and
7501\begin_inset Flex Strong
7502status collapsed
7503
7504\begin_layout Plain Layout
7505ni_glo-1
7506\end_layout
7507
7508\end_inset
7509
7510 of the associated axis.
7511 If not specified the default value is
7512\begin_inset Flex Strong
7513status collapsed
7514
7515\begin_layout Plain Layout
75160
7517\end_layout
7518
7519\end_inset
7520
7521.
7522\end_layout
7523
7524\begin_layout Subsection*
7525n (optional):
7526\begin_inset Flex Emph
7527status collapsed
7528
7529\begin_layout Plain Layout
7530integer
7531\end_layout
7532
7533\end_inset
7534
7535
7536\end_layout
7537
7538\begin_layout Standard
7539Fortran:
7540\end_layout
7541
7542\begin_layout LyX-Code
7543INTEGER :: n
7544\end_layout
7545
7546\begin_layout Standard
7547Defines the size of a zoomed region on a global axis.
7548 The attribute value should be an integer between
7549\begin_inset Flex Strong
7550status collapsed
7551
7552\begin_layout Plain Layout
75531
7554\end_layout
7555
7556\end_inset
7557
7558and
7559\begin_inset Flex Strong
7560status collapsed
7561
7562\begin_layout Plain Layout
7563nj_glo
7564\end_layout
7565
7566\end_inset
7567
7568 of the associated axis.
7569 If not specified the default value is
7570\begin_inset Flex Strong
7571status collapsed
7572
7573\begin_layout Plain Layout
7574nj_glo
7575\end_layout
7576
7577\end_inset
7578
7579 of the associated axis.
7580\end_layout
7581
7582\begin_layout Subsection
7583compute_connectivity_domain
7584\end_layout
7585
7586\begin_layout Subsection*
7587n_neighbor:
7588\begin_inset Flex Emph
7589status collapsed
7590
7591\begin_layout Plain Layout
75921D-array of integer
7593\end_layout
7594
7595\end_inset
7596
7597
7598\end_layout
7599
7600\begin_layout Standard
7601Fortran:
7602\end_layout
7603
7604\begin_layout LyX-Code
7605INTEGER :: n_neighbor(:)
7606\end_layout
7607
7608\begin_layout Subsection*
7609local_neighbor:
7610\begin_inset Flex Emph
7611status collapsed
7612
7613\begin_layout Plain Layout
76142D-array of integer
7615\end_layout
7616
7617\end_inset
7618
7619
7620\end_layout
7621
7622\begin_layout Standard
7623Fortran:
7624\end_layout
7625
7626\begin_layout LyX-Code
7627INTEGER :: local_neighbor(:,:)
7628\end_layout
7629
7630\begin_layout Subsection*
7631n_neighbor_max:
7632\begin_inset Flex Emph
7633status collapsed
7634
7635\begin_layout Plain Layout
7636integer
7637\end_layout
7638
7639\end_inset
7640
7641
7642\end_layout
7643
7644\begin_layout Standard
7645Fortran:
7646\end_layout
7647
7648\begin_layout LyX-Code
7649INTEGER :: n_neighbor_max
7650\end_layout
7651
7652\begin_layout Subsection
7653extract_domain_to_axis
7654\end_layout
7655
7656\begin_layout Subsection*
7657position (optional):
7658\emph on
7659integer
7660\end_layout
7661
7662\begin_layout Standard
7663Fortran:
7664\end_layout
7665
7666\begin_layout LyX-Code
7667INTEGER :: position
7668\end_layout
7669
7670\begin_layout Standard
7671Defines the index on a domain starting which an axis will be extracted along
7672 the direction specified with the
7673\series bold
7674direction
7675\series default
7676 attribute.
7677\end_layout
7678
7679\begin_layout Subsection*
7680direction (mandatory):
7681\emph on
7682enumeration {iDir, jDir}
7683\end_layout
7684
7685\begin_layout Standard
7686Fortran:
7687\end_layout
7688
7689\begin_layout LyX-Code
7690CHARACTER(LEN=*) :: direction
7691\end_layout
7692
7693\begin_layout Standard
7694Defines the domain dimension along which an axis will be extracted.
7695 
7696\begin_inset Flex Code
7697status open
7698
7699\begin_layout Plain Layout
7700iDir
7701\end_layout
7702
7703\end_inset
7704
7705 means along the direction i,
7706\begin_inset Flex Code
7707status open
7708
7709\begin_layout Plain Layout
7710jDir
7711\end_layout
7712
7713\end_inset
7714
7715 along the direction j.
7716\end_layout
7717
7718\begin_layout Subsection
7719interpolate_domain
7720\end_layout
7721
7722\begin_layout Subsection*
7723file (optional):
7724\emph on
7725string
7726\end_layout
7727
7728\begin_layout Standard
7729Fortran:
7730\end_layout
7731
7732\begin_layout LyX-Code
7733CHARACTER(LEN=*) :: type
7734\end_layout
7735
7736\begin_layout Standard
7737Define a file which contains the weight values for interpolation from domain
7738 source to domain destination.
7739 If not specified, the internal interpolation module will be used to compte
7740 the weights.
7741\end_layout
7742
7743\begin_layout Subsection*
7744order (optional):
7745\emph on
7746integer
7747\end_layout
7748
7749\begin_layout Standard
7750Fortran:
7751\end_layout
7752
7753\begin_layout LyX-Code
7754INTEGER :: order
7755\end_layout
7756
7757\begin_layout Standard
7758Defines the order of interpolation.
7759 This attribute is only for internal interpolation module.
7760 Currently, only first order and second order are available for conservative
7761 interpolations.
7762 The default value is 2.
7763\end_layout
7764
7765\begin_layout Subsection
7766reduce_domain_to_axis
7767\end_layout
7768
7769\begin_layout Subsection*
7770direction:
7771\emph on
7772enumeration {iDir, jDir}
7773\end_layout
7774
7775\begin_layout Standard
7776Fortran:
7777\end_layout
7778
7779\begin_layout LyX-Code
7780CHARACTER(LEN=*) :: direction
7781\end_layout
7782
7783\begin_layout Standard
7784Defines the domain dimension along which a reduction of the domain into
7785 an axis will be performed.
7786 
7787\begin_inset Flex Code
7788status open
7789
7790\begin_layout Plain Layout
7791iDir
7792\end_layout
7793
7794\end_inset
7795
7796 means along the direction i,
7797\begin_inset Flex Code
7798status open
7799
7800\begin_layout Plain Layout
7801jDir
7802\end_layout
7803
7804\end_inset
7805
7806 along the direction j.
7807\end_layout
7808
7809\begin_layout Subsection*
7810operation (mandatory):
7811\emph on
7812enumeration {min, max, sum, average}
7813\end_layout
7814
7815\begin_layout Standard
7816Fortran:
7817\end_layout
7818
7819\begin_layout LyX-Code
7820CHARACTER(LEN=*) :: operation
7821\end_layout
7822
7823\begin_layout Standard
7824Defines the reduction operation performed on the domain.
7825\end_layout
7826
7827\begin_layout Subsection*
7828local (optionnal):
7829\emph on
7830bool
7831\end_layout
7832
7833\begin_layout Standard
7834Fortran:
7835\end_layout
7836
7837\begin_layout LyX-Code
7838LOGICAL :: local
7839\end_layout
7840
7841\begin_layout Standard
7842Defines whether the reduction should be performed locally on data owned
7843 by each process or on the global domain.
7844\end_layout
7845
7846\begin_layout Subsection
7847reduce_domain_to_scalar
7848\end_layout
7849
7850\begin_layout Standard
7851Reduces data defined on a domain into a scalar value.
7852\end_layout
7853
7854\begin_layout Subsection*
7855operation (mandatory):
7856\emph on
7857enumeration {min, max, sum, average}
7858\end_layout
7859
7860\begin_layout Standard
7861Fortran:
7862\end_layout
7863
7864\begin_layout LyX-Code
7865CHARACTER(LEN=*) :: operation
7866\end_layout
7867
7868\begin_layout Standard
7869Defines the reduction operation performed on the domain.
7870\end_layout
7871
7872\begin_layout Subsection*
7873local (optionnal):
7874\emph on
7875bool
7876\emph default
7877 
7878\end_layout
7879
7880\begin_layout Standard
7881Fortran:
7882\end_layout
7883
7884\begin_layout LyX-Code
7885LOGICAL :: local
7886\end_layout
7887
7888\begin_layout Standard
7889Defines whether the reduction should be performed locally on data owned
7890 by each process or on the global domain.
7891 The default value is
7892\begin_inset Flex Code
7893status open
7894
7895\begin_layout Plain Layout
7896false
7897\end_layout
7898
7899\end_inset
7900
7901.
7902\end_layout
7903
7904\begin_layout Subsection
7905reorder_domain
7906\end_layout
7907
7908\begin_layout Subsection*
7909invert_lat (optional):
7910\emph on
7911bool
7912\end_layout
7913
7914\begin_layout Standard
7915Fortran:
7916\end_layout
7917
7918\begin_layout LyX-Code
7919LOGICAL :: invert_lat
7920\end_layout
7921
7922\begin_layout Standard
7923Defines whether the latitude should be inverted.
7924 The default value is false.
7925\end_layout
7926
7927\begin_layout Subsection*
7928shift_lon_fraction (optional):
7929\begin_inset Flex Emph
7930status collapsed
7931
7932\begin_layout Plain Layout
7933double
7934\end_layout
7935
7936\end_inset
7937
7938
7939\end_layout
7940
7941\begin_layout Standard
7942Fortran:
7943\end_layout
7944
7945\begin_layout LyX-Code
7946DOUBLE PRECISION :: shift_lon_fraction
7947\end_layout
7948
7949\begin_layout Standard
7950Defines the longitude offset.
7951 The value of the parameter represents a fraction of
7952\series bold
7953ni_glo
7954\series default
7955.
7956 Default value is 0.
7957\end_layout
7958
7959\begin_layout Subsection*
7960min_lon (optional):
7961\begin_inset Flex Emph
7962status collapsed
7963
7964\begin_layout Plain Layout
7965double
7966\end_layout
7967
7968\end_inset
7969
7970
7971\end_layout
7972
7973\begin_layout Standard
7974Fortran:
7975\end_layout
7976
7977\begin_layout LyX-Code
7978DOUBLE PRECISION :: min_lon
7979\end_layout
7980
7981\begin_layout Standard
7982If both,
7983\series bold
7984min_lon
7985\series default
7986 and
7987\series bold
7988max_lon
7989\series default
7990, are defined, a domain will be reordered with latitude values starting
7991 from
7992\series bold
7993min_lon
7994\series default
7995 and ending at
7996\series bold
7997max_lon
7998\series default
7999.
8000\end_layout
8001
8002\begin_layout Subsection*
8003max_lon (optional):
8004\begin_inset Flex Emph
8005status collapsed
8006
8007\begin_layout Plain Layout
8008double
8009\end_layout
8010
8011\end_inset
8012
8013
8014\end_layout
8015
8016\begin_layout Standard
8017Fortran:
8018\end_layout
8019
8020\begin_layout LyX-Code
8021DOUBLE PRECISION :: max_lon
8022\end_layout
8023
8024\begin_layout Standard
8025If both,
8026\series bold
8027min_lon
8028\series default
8029 and
8030\series bold
8031max_lon
8032\series default
8033, are defined, a domain will be reordered with latitude values starting
8034 from
8035\series bold
8036min_lon
8037\series default
8038 and ending at
8039\series bold
8040max_lon
8041\series default
8042.
8043\end_layout
8044
8045\begin_layout Subsection
8046expand_domain
8047\end_layout
8048
8049\begin_layout Subsection*
8050order:
8051\begin_inset Flex Emph
8052status collapsed
8053
8054\begin_layout Plain Layout
8055integer
8056\end_layout
8057
8058\end_inset
8059
8060
8061\end_layout
8062
8063\begin_layout Standard
8064Fortran:
8065\end_layout
8066
8067\begin_layout LyX-Code
8068INTEGER :: order
8069\end_layout
8070
8071\begin_layout Standard
8072Define the size of the halo expansion.
8073\end_layout
8074
8075\begin_layout Subsection*
8076type (optional):
8077\emph on
8078enumeration {node, edge}
8079\end_layout
8080
8081\begin_layout Standard
8082Fortran:
8083\end_layout
8084
8085\begin_layout LyX-Code
8086CHARACTER(LEN=*) :: type
8087\end_layout
8088
8089\begin_layout Standard
8090Defines whether the node or edge connectivity should be calculated for the
8091 expanded domain.
8092\end_layout
8093
8094\begin_layout Subsection*
8095i_periodic (optional):
8096\emph on
8097bool
8098\end_layout
8099
8100\begin_layout Standard
8101Fortran:
8102\end_layout
8103
8104\begin_layout LyX-Code
8105LOGICAL :: i_periodic
8106\end_layout
8107
8108\begin_layout Standard
8109If the attribute value is true, values of fields defined on the expanded
8110 domain will be duplicated from those of the original domain periodically
8111 along the first dimension.
8112 The default value is false (masked values on the expanded domain).
8113\end_layout
8114
8115\begin_layout Subsection*
8116j_periodic (optional):
8117\emph on
8118bool
8119\end_layout
8120
8121\begin_layout Standard
8122Fortran:
8123\end_layout
8124
8125\begin_layout LyX-Code
8126LOGICAL :: j_periodic
8127\end_layout
8128
8129\begin_layout Standard
8130If the attribute value is true, values of fields defined on the expanded
8131 domain will be duplicated from those of the original domain periodically
8132 along the second dimension.
8133 The default value is false (masked values on the expanded domain).
8134\end_layout
8135
8136\begin_layout Subsection
8137zoom_domain
8138\end_layout
8139
8140\begin_layout Subsection*
8141ibegin (optional):
8142\begin_inset Flex Emph
8143status collapsed
8144
8145\begin_layout Plain Layout
8146integer
8147\end_layout
8148
8149\end_inset
8150
8151
8152\end_layout
8153
8154\begin_layout Standard
8155Fortran:
8156\end_layout
8157
8158\begin_layout LyX-Code
8159INTEGER :: ibegin
8160\end_layout
8161
8162\begin_layout Standard
8163Defines the beginning index of the zoomed region on the first dimension
8164 of the global domain.
8165 This must be an integer between
8166\begin_inset Flex Strong
8167status collapsed
8168
8169\begin_layout Plain Layout
81700
8171\end_layout
8172
8173\end_inset
8174
8175 and
8176\begin_inset Flex Strong
8177status collapsed
8178
8179\begin_layout Plain Layout
8180ni_glo-1
8181\end_layout
8182
8183\end_inset
8184
8185 of the associated dimension of domain.
8186 If not specified the default value is
8187\begin_inset Flex Strong
8188status collapsed
8189
8190\begin_layout Plain Layout
81910
8192\end_layout
8193
8194\end_inset
8195
8196.
8197 Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined
8198 then all the rest should be specified by a user as well.
8199\end_layout
8200
8201\begin_layout Subsection*
8202ni (optional):
8203\begin_inset Flex Emph
8204status collapsed
8205
8206\begin_layout Plain Layout
8207integer
8208\end_layout
8209
8210\end_inset
8211
8212
8213\end_layout
8214
8215\begin_layout Standard
8216Fortran:
8217\end_layout
8218
8219\begin_layout LyX-Code
8220INTEGER :: ni
8221\end_layout
8222
8223\begin_layout Standard
8224Define the size of zoomed region on the first dimension of the global domain.
8225 This must be an integer between
8226\begin_inset Flex Strong
8227status collapsed
8228
8229\begin_layout Plain Layout
82301
8231\end_layout
8232
8233\end_inset
8234
8235and
8236\begin_inset Flex Strong
8237status collapsed
8238
8239\begin_layout Plain Layout
8240ni_glo
8241\end_layout
8242
8243\end_inset
8244
8245 of the associated dimension of domain.
8246 If not specified the default value is
8247\begin_inset Flex Strong
8248status collapsed
8249
8250\begin_layout Plain Layout
8251ni_glo
8252\end_layout
8253
8254\end_inset
8255
8256 of the dimension of domain.
8257 Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined
8258 then all the rest should be specified by a user as well.
8259\end_layout
8260
8261\begin_layout Subsection*
8262jbegin (optional):
8263\begin_inset Flex Emph
8264status collapsed
8265
8266\begin_layout Plain Layout
8267integer
8268\end_layout
8269
8270\end_inset
8271
8272
8273\end_layout
8274
8275\begin_layout Standard
8276Fortran:
8277\end_layout
8278
8279\begin_layout LyX-Code
8280INTEGER :: jbegin
8281\end_layout
8282
8283\begin_layout Standard
8284Define the beginning index of the zoomed region on the second dimension
8285 of the global domain.
8286 This must be an integer between
8287\begin_inset Flex Strong
8288status collapsed
8289
8290\begin_layout Plain Layout
82910
8292\end_layout
8293
8294\end_inset
8295
8296 and
8297\begin_inset Flex Strong
8298status collapsed
8299
8300\begin_layout Plain Layout
8301nj_glo-1
8302\end_layout
8303
8304\end_inset
8305
8306 of the associated dimension of domain.
8307 If not specified the default value is
8308\begin_inset Flex Strong
8309status collapsed
8310
8311\begin_layout Plain Layout
83120
8313\end_layout
8314
8315\end_inset
8316
8317.
8318 Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined
8319 then all the rest should be specified by a user as well.
8320\end_layout
8321
8322\begin_layout Subsection*
8323nj (optional):
8324\begin_inset Flex Emph
8325status collapsed
8326
8327\begin_layout Plain Layout
8328integer
8329\end_layout
8330
8331\end_inset
8332
8333
8334\end_layout
8335
8336\begin_layout Standard
8337Fortran:
8338\end_layout
8339
8340\begin_layout LyX-Code
8341INTEGER :: nj
8342\end_layout
8343
8344\begin_layout Standard
8345Define the size of zoomed region on the second dimension of the global domain.
8346 The attribute value should be an integer between
8347\begin_inset Flex Strong
8348status collapsed
8349
8350\begin_layout Plain Layout
83511
8352\end_layout
8353
8354\end_inset
8355
8356and
8357\begin_inset Flex Strong
8358status collapsed
8359
8360\begin_layout Plain Layout
8361nj_glo
8362\end_layout
8363
8364\end_inset
8365
8366 of the associated dimension of domain.
8367 If not specified the default value is
8368\begin_inset Flex Strong
8369status collapsed
8370
8371\begin_layout Plain Layout
8372nj_glo
8373\end_layout
8374
8375\end_inset
8376
8377 of the dimension of domain.
8378 Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined
8379 then all the rest should be specified by a user as well.
8380\end_layout
8381
8382\begin_layout Subsection
8383generate_rectilinear_domain
8384\end_layout
8385
8386\begin_layout Subsection*
8387lon_start (optional):
8388\begin_inset Flex Emph
8389status collapsed
8390
8391\begin_layout Plain Layout
8392double
8393\end_layout
8394
8395\end_inset
8396
8397
8398\end_layout
8399
8400\begin_layout Standard
8401Fortran:
8402\end_layout
8403
8404\begin_layout LyX-Code
8405DOUBLE PRECISION :: lon_start
8406\end_layout
8407
8408\begin_layout Standard
8409Along with
8410\series bold
8411lon_end
8412\series default
8413, the attribute defines the longitude range of a generated domain.
8414\end_layout
8415
8416\begin_layout Subsection*
8417lon_end (optional):
8418\begin_inset Flex Emph
8419status collapsed
8420
8421\begin_layout Plain Layout
8422double
8423\end_layout
8424
8425\end_inset
8426
8427
8428\end_layout
8429
8430\begin_layout Standard
8431Fortran:
8432\end_layout
8433
8434\begin_layout LyX-Code
8435DOUBLE PRECISION :: lon_end
8436\end_layout
8437
8438\begin_layout Standard
8439Along with
8440\series bold
8441lon_start
8442\series default
8443, the attribute defines the longitude range of a generated domain.
8444\end_layout
8445
8446\begin_layout Subsection*
8447lat_start (optional):
8448\begin_inset Flex Emph
8449status collapsed
8450
8451\begin_layout Plain Layout
8452double
8453\end_layout
8454
8455\end_inset
8456
8457
8458\end_layout
8459
8460\begin_layout Standard
8461Fortran:
8462\end_layout
8463
8464\begin_layout LyX-Code
8465DOUBLE PRECISION :: lat_start
8466\end_layout
8467
8468\begin_layout Standard
8469Along with
8470\series bold
8471lat_end
8472\series default
8473, the attribute defines the latitude range of a generated domain.
8474\end_layout
8475
8476\begin_layout Subsection*
8477lat_end (optional):
8478\begin_inset Flex Emph
8479status collapsed
8480
8481\begin_layout Plain Layout
8482double
8483\end_layout
8484
8485\end_inset
8486
8487
8488\end_layout
8489
8490\begin_layout Standard
8491Fortran:
8492\end_layout
8493
8494\begin_layout LyX-Code
8495DOUBLE PRECISION :: lat_end
8496\end_layout
8497
8498\begin_layout Standard
8499Along with
8500\series bold
8501lat_start
8502\series default
8503, the attribute defines the latitude range of a generated domain.
8504\end_layout
8505
8506\begin_layout Subsection*
8507bounds_lon_start:
8508\begin_inset Flex Emph
8509status collapsed
8510
8511\begin_layout Plain Layout
8512double
8513\end_layout
8514
8515\end_inset
8516
8517
8518\end_layout
8519
8520\begin_layout Standard
8521Fortran:
8522\end_layout
8523
8524\begin_layout LyX-Code
8525DOUBLE PRECISION :: bounds_lon_start
8526\end_layout
8527
8528\begin_layout Standard
8529Attributes
8530\series bold
8531bounds_lon_start
8532\series default
8533 and
8534\series bold
8535bounds_lon_start
8536\series default
8537 set the longitude range of a generated domain.
8538 If both sets,
8539\series bold
8540(lon_start, lon_end)
8541\series default
8542 and
8543\series bold
8544(bounds_lon_start, bounds_lon_end)
8545\series default
8546, are specified then the bound attributes will be ignored.
8547\end_layout
8548
8549\begin_layout Subsection*
8550bounds_lon_end:
8551\begin_inset Flex Emph
8552status collapsed
8553
8554\begin_layout Plain Layout
8555double
8556\end_layout
8557
8558\end_inset
8559
8560
8561\end_layout
8562
8563\begin_layout Standard
8564Fortran:
8565\end_layout
8566
8567\begin_layout LyX-Code
8568DOUBLE PRECISION :: bounds_lon_end
8569\end_layout
8570
8571\begin_layout Standard
8572Attributes
8573\series bold
8574bounds_lon_start
8575\series default
8576 and
8577\series bold
8578bounds_lon_start
8579\series default
8580 set the longitude range of a generated domain.
8581 If both sets,
8582\series bold
8583(lon_start, lon_end)
8584\series default
8585 and
8586\series bold
8587(bounds_lon_start, bounds_lon_end)
8588\series default
8589, are specified then the bound attributes will be ignored.
8590\end_layout
8591
8592\begin_layout Subsection*
8593bounds_lat_start:
8594\begin_inset Flex Emph
8595status collapsed
8596
8597\begin_layout Plain Layout
8598double
8599\end_layout
8600
8601\end_inset
8602
8603
8604\end_layout
8605
8606\begin_layout Standard
8607Fortran:
8608\end_layout
8609
8610\begin_layout LyX-Code
8611DOUBLE PRECISION :: bounds_lat_start
8612\end_layout
8613
8614\begin_layout Standard
8615Attributes
8616\series bold
8617bounds_lat_start
8618\series default
8619 and
8620\series bold
8621bounds_lat_start
8622\series default
8623 set the latitude range of a generated domain.
8624 If both sets,
8625\series bold
8626(lat_start, lat_end)
8627\series default
8628 and
8629\series bold
8630(bounds_lat_start, bounds_lat_end)
8631\series default
8632, are specified then the bound attributes will be ignored.
8633\end_layout
8634
8635\begin_layout Subsection*
8636bounds_lat_end:
8637\begin_inset Flex Emph
8638status collapsed
8639
8640\begin_layout Plain Layout
8641double
8642\end_layout
8643
8644\end_inset
8645
8646
8647\end_layout
8648
8649\begin_layout Standard
8650Fortran:
8651\end_layout
8652
8653\begin_layout LyX-Code
8654DOUBLE PRECISION :: bounds_lat_end
8655\end_layout
8656
8657\begin_layout Standard
8658Attributes
8659\series bold
8660bounds_lat_start
8661\series default
8662 and
8663\series bold
8664bounds_lat_start
8665\series default
8666 set the latitude range of a generated domain.
8667 If both sets,
8668\series bold
8669(lat_start, lat_end)
8670\series default
8671 and
8672\series bold
8673(bounds_lat_start, bounds_lat_end)
8674\series default
8675, are specified then the bound attributes will be ignored.
8676\end_layout
8677
8678\begin_layout Chapter
8679Fortran interface reference
8680\end_layout
8681
8682\begin_layout Section*
8683Initialization
8684\end_layout
8685
8686\begin_layout Subsection*
8687XIOS initialization
8688\end_layout
8689
8690\begin_layout Subsubsection*
8691Synopsis:
8692\end_layout
8693
8694\begin_layout LyX-Code
8695SUBROUTINE xios_initialize(client_id, local_comm, return_comm)
8696\end_layout
8697
8698\begin_layout LyX-Code
8699  CHARACTER(LEN=*),INTENT(IN)         :: client_id
8700\end_layout
8701
8702\begin_layout LyX-Code
8703  INTEGER,INTENT(IN),OPTIONAL         :: local_comm
8704\end_layout
8705
8706\begin_layout LyX-Code
8707  INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
8708\end_layout
8709
8710\begin_layout Subsubsection*
8711Argument:
8712\end_layout
8713
8714\begin_layout Itemize
8715\begin_inset Flex Code
8716status collapsed
8717
8718\begin_layout Plain Layout
8719client_id
8720\end_layout
8721
8722\end_inset
8723
8724: client identifier
8725\end_layout
8726
8727\begin_layout Itemize
8728\begin_inset Flex Code
8729status collapsed
8730
8731\begin_layout Plain Layout
8732local_comm
8733\end_layout
8734
8735\end_inset
8736
8737: MPI communicator of the client
8738\end_layout
8739
8740\begin_layout Itemize
8741\begin_inset Flex Code
8742status collapsed
8743
8744\begin_layout Plain Layout
8745return_comm
8746\end_layout
8747
8748\end_inset
8749
8750: split return MPI communicator
8751\end_layout
8752
8753\begin_layout Subsubsection*
8754Description:
8755\end_layout
8756
8757\begin_layout Standard
8758This subroutine must be called before any other call of MPI client library.
8759 It may be able to initialize MPI library (calling
8760\begin_inset Flex Code
8761status collapsed
8762
8763\begin_layout Plain Layout
8764MPI_Init
8765\end_layout
8766
8767\end_inset
8768
8769) if not already initialized.
8770 Since XIOS is able to work in client/server mode (parameter
8771\begin_inset Flex Code
8772status collapsed
8773
8774\begin_layout Plain Layout
8775using_server=true
8776\end_layout
8777
8778\end_inset
8779
8780), the global communicator must be split and a local split communicator
8781 is returned to be used by the client model for it own purpose.
8782 If more than one model is present, XIOS could be interfaced with the OASIS
8783 coupler (compiled with
8784\begin_inset Flex Code
8785status collapsed
8786
8787\begin_layout Plain Layout
8788-using_oasis
8789\end_layout
8790
8791\end_inset
8792
8793 option and parameter
8794\begin_inset Flex Code
8795status collapsed
8796
8797\begin_layout Plain Layout
8798using_oasis=true
8799\end_layout
8800
8801\end_inset
8802
8803), so in this case, the splitting would be done globally by OASIS.
8804\end_layout
8805
8806\begin_layout Itemize
8807If MPI is not initialized, XIOS would initialize it calling MPI_Init function.
8808 In this case, the MPI finalization would be done by XIOS in the
8809\begin_inset Flex Code
8810status collapsed
8811
8812\begin_layout Plain Layout
8813xios_finalize
8814\end_layout
8815
8816\end_inset
8817
8818 subroutine, and must not be done by the model.
8819\end_layout
8820
8821\begin_layout Itemize
8822If OASIS coupler is not used (using_oasis=false)
8823\begin_inset Separator latexpar
8824\end_inset
8825
8826
8827\end_layout
8828
8829\begin_deeper
8830\begin_layout Itemize
8831If server mode is not activated (
8832\begin_inset Flex Code
8833status collapsed
8834
8835\begin_layout Plain Layout
8836using_server=false
8837\end_layout
8838
8839\end_inset
8840
8841): if local_comm MPI communicator is specified then it would be used for
8842 internal MPI communication otherwise
8843\begin_inset Flex Code
8844status collapsed
8845
8846\begin_layout Plain Layout
8847MPI_COMM_WORLD
8848\end_layout
8849
8850\end_inset
8851
8852 communicator would be used by default.
8853 A copy of the communicator (of
8854\begin_inset Flex Code
8855status collapsed
8856
8857\begin_layout Plain Layout
8858local_comm
8859\end_layout
8860
8861\end_inset
8862
8863 or
8864\begin_inset Flex Code
8865status collapsed
8866
8867\begin_layout Plain Layout
8868MPI_COMM_WORLD
8869\end_layout
8870
8871\end_inset
8872
8873) would be returned in return_comm argument.
8874 If
8875\begin_inset Flex Code
8876status collapsed
8877
8878\begin_layout Plain Layout
8879return_comm
8880\end_layout
8881
8882\end_inset
8883
8884 is not specified, then
8885\begin_inset Flex Code
8886status collapsed
8887
8888\begin_layout Plain Layout
8889local_comm
8890\end_layout
8891
8892\end_inset
8893
8894 or
8895\begin_inset Flex Code
8896status collapsed
8897
8898\begin_layout Plain Layout
8899MPI_COMM_WORLD
8900\end_layout
8901
8902\end_inset
8903
8904 can be used by the model for it own communication.
8905\end_layout
8906
8907\begin_layout Itemize
8908If server mode is activated (
8909\begin_inset Flex Code
8910status collapsed
8911
8912\begin_layout Plain Layout
8913using_server=true
8914\end_layout
8915
8916\end_inset
8917
8918):
8919\begin_inset Flex Code
8920status collapsed
8921
8922\begin_layout Plain Layout
8923local_comm
8924\end_layout
8925
8926\end_inset
8927
8928 must not be specified since the global
8929\begin_inset Flex Code
8930status collapsed
8931
8932\begin_layout Plain Layout
8933MPI_COMM_WORLD
8934\end_layout
8935
8936\end_inset
8937
8938 communicator would be split by XIOS.
8939 The split communicator is returned in
8940\begin_inset Flex Code
8941status collapsed
8942
8943\begin_layout Plain Layout
8944return_comm
8945\end_layout
8946
8947\end_inset
8948
8949 argument.
8950\end_layout
8951
8952\end_deeper
8953\begin_layout Itemize
8954If OASIS coupler is used (
8955\begin_inset Flex Code
8956status collapsed
8957
8958\begin_layout Plain Layout
8959using_oasis=true
8960\end_layout
8961
8962\end_inset
8963
8964)
8965\begin_inset Separator latexpar
8966\end_inset
8967
8968
8969\end_layout
8970
8971\begin_deeper
8972\begin_layout Itemize
8973If server mode is not enabled (
8974\begin_inset Flex Code
8975status collapsed
8976
8977\begin_layout Plain Layout
8978using_server=false
8979\end_layout
8980
8981\end_inset
8982
8983)
8984\begin_inset Separator latexpar
8985\end_inset
8986
8987
8988\end_layout
8989
8990\begin_deeper
8991\begin_layout Itemize
8992If
8993\begin_inset Flex Code
8994status collapsed
8995
8996\begin_layout Plain Layout
8997local_comm
8998\end_layout
8999
9000\end_inset
9001
9002 is specified, it means that OASIS has been initialized by the model and
9003 global communicator has been already split previously by OASIS, and passed
9004 as
9005\begin_inset Flex Code
9006status collapsed
9007
9008\begin_layout Plain Layout
9009local_comm
9010\end_layout
9011
9012\end_inset
9013
9014 argument.
9015 The returned communicator would be a duplicate copy of
9016\begin_inset Flex Code
9017status collapsed
9018
9019\begin_layout Plain Layout
9020local_comm
9021\end_layout
9022
9023\end_inset
9024
9025.
9026\end_layout
9027
9028\begin_layout Itemize
9029Otherwise: if MPI was not initialized, OASIS will be initialized calling
9030 
9031\begin_inset Flex Code
9032status collapsed
9033
9034\begin_layout Plain Layout
9035prism_init_comp_proto
9036\end_layout
9037
9038\end_inset
9039
9040 subroutine.
9041 In this case, XIOS will call
9042\begin_inset Flex Code
9043status collapsed
9044
9045\begin_layout Plain Layout
9046prism_terminate_proto
9047\end_layout
9048
9049\end_inset
9050
9051 when
9052\begin_inset Flex Code
9053status collapsed
9054
9055\begin_layout Plain Layout
9056xios_finalized
9057\end_layout
9058
9059\end_inset
9060
9061 is called.
9062 The split communicator is returned in
9063\begin_inset Flex Code
9064status collapsed
9065
9066\begin_layout Plain Layout
9067return_comm
9068\end_layout
9069
9070\end_inset
9071
9072 argument using
9073\begin_inset Flex Code
9074status collapsed
9075
9076\begin_layout Plain Layout
9077prism_get_localcomm_proto
9078\end_layout
9079
9080\end_inset
9081
9082 return argument.
9083\end_layout
9084
9085\end_deeper
9086\begin_layout Itemize
9087If server mode is enabled (
9088\begin_inset Flex Code
9089status collapsed
9090
9091\begin_layout Plain Layout
9092using_server=true
9093\end_layout
9094
9095\end_inset
9096
9097)
9098\begin_inset Separator latexpar
9099\end_inset
9100
9101
9102\end_layout
9103
9104\begin_deeper
9105\begin_layout Itemize
9106If
9107\begin_inset Flex Code
9108status collapsed
9109
9110\begin_layout Plain Layout
9111local_comm
9112\end_layout
9113
9114\end_inset
9115
9116 is specified, it means that OASIS has been initialized by the model and
9117 global communicator has been already split previously by OASIS, and passed
9118 as local_comm argument.
9119 The returned communicator return_comm would be a split communicator given
9120 by OASIS.
9121\end_layout
9122
9123\begin_layout Itemize
9124Otherwise: if MPI was not initialized, OASIS will be initialized calling
9125 
9126\begin_inset Flex Code
9127status collapsed
9128
9129\begin_layout Plain Layout
9130prism_init_comp_proto
9131\end_layout
9132
9133\end_inset
9134
9135 subroutine.
9136 In this case, XIOS will call
9137\begin_inset Flex Code
9138status collapsed
9139
9140\begin_layout Plain Layout
9141prism_terminate_proto
9142\end_layout
9143
9144\end_inset
9145
9146 when
9147\begin_inset Flex Code
9148status collapsed
9149
9150\begin_layout Plain Layout
9151xios_finalized
9152\end_layout
9153
9154\end_inset
9155
9156 is called.
9157 The split communicator is returned in
9158\begin_inset Flex Code
9159status collapsed
9160
9161\begin_layout Plain Layout
9162return_comm
9163\end_layout
9164
9165\end_inset
9166
9167 argument using
9168\begin_inset Flex Code
9169status collapsed
9170
9171\begin_layout Plain Layout
9172prism_get_localcomm_proto
9173\end_layout
9174
9175\end_inset
9176
9177 return argument.
9178\end_layout
9179
9180\end_deeper
9181\end_deeper
9182\begin_layout Section*
9183Finalization
9184\end_layout
9185
9186\begin_layout Subsection*
9187XIOS finalization
9188\end_layout
9189
9190\begin_layout Subsubsection*
9191Synopsis:
9192\end_layout
9193
9194\begin_layout LyX-Code
9195SUBROUTINE xios_finalize()
9196\end_layout
9197
9198\begin_layout Subsubsection*
9199Arguments:
9200\end_layout
9201
9202\begin_layout Standard
9203None
9204\end_layout
9205
9206\begin_layout Subsubsection*
9207Description:
9208\end_layout
9209
9210\begin_layout Standard
9211This call must be done at the end of the simulation for a successful execution.
9212 It gives the end signal to the xios server pools to finish it execution.
9213 If MPI has been initialize by XIOS the MPI_Finalize will be called.
9214 If OASIS coupler has been initialized by XIOS, then finalization will be
9215 done calling
9216\begin_inset Flex Code
9217status collapsed
9218
9219\begin_layout Plain Layout
9220prism_terminate_proto
9221\end_layout
9222
9223\end_inset
9224
9225 subroutine.
9226\end_layout
9227
9228\begin_layout Section*
9229Tree elements management subroutines
9230\end_layout
9231
9232\begin_layout Standard
9233This set of subroutines enables the models to interact, complete or query
9234 the XML tree data base.
9235 New elements or group of elements can be added as child in the tree, attributes
9236 of the elements can be set or query.
9237 The type of elements currently available are: context, axis, domain, grid,
9238 field, variable and file.
9239 An element can be identified by a string or by an handle associated to
9240 the type of the element.
9241 Root element (ex:
9242\begin_inset Quotes eld
9243\end_inset
9244
9245axis_definition
9246\begin_inset Quotes erd
9247\end_inset
9248
9249,
9250\begin_inset Quotes eld
9251\end_inset
9252
9253field_definition
9254\begin_inset Quotes erd
9255\end_inset
9256
9257,....) are considered like a group of element and are identified by a specific
9258 string
9259\begin_inset Quotes eld
9260\end_inset
9261
9262element_definition
9263\begin_inset Quotes erd
9264\end_inset
9265
9266 where element can be any one of the existing elements.
9267\end_layout
9268
9269\begin_layout Subsection*
9270Fortran type of the handles element
9271\end_layout
9272
9273\begin_layout Quotation
9274TYPE(xios_element)
9275\end_layout
9276
9277\begin_layout Standard
9278where
9279\begin_inset Quotes eld
9280\end_inset
9281
9282element
9283\begin_inset Quotes erd
9284\end_inset
9285
9286 can be any one among
9287\begin_inset Quotes eld
9288\end_inset
9289
9290context
9291\begin_inset Quotes erd
9292\end_inset
9293
9294,
9295\begin_inset Quotes eld
9296\end_inset
9297
9298axis
9299\begin_inset Quotes erd
9300\end_inset
9301
9302,
9303\begin_inset Quotes eld
9304\end_inset
9305
9306domain
9307\begin_inset Quotes erd
9308\end_inset
9309
9310,
9311\begin_inset Quotes eld
9312\end_inset
9313
9314grid
9315\begin_inset Quotes erd
9316\end_inset
9317
9318,
9319\begin_inset Quotes eld
9320\end_inset
9321
9322field
9323\begin_inset Quotes erd
9324\end_inset
9325
9326,
9327\begin_inset Quotes eld
9328\end_inset
9329
9330variable
9331\begin_inset Quotes erd
9332\end_inset
9333
9334 or
9335\begin_inset Quotes eld
9336\end_inset
9337
9338file
9339\begin_inset Quotes erd
9340\end_inset
9341
9342, or the associated group (excepted for context):
9343\begin_inset Quotes eld
9344\end_inset
9345
9346axis_group
9347\begin_inset Quotes erd
9348\end_inset
9349
9350,
9351\begin_inset Quotes eld
9352\end_inset
9353
9354domain_group
9355\begin_inset Quotes erd
9356\end_inset
9357
9358,
9359\begin_inset Quotes eld
9360\end_inset
9361
9362grid_group
9363\begin_inset Quotes erd
9364\end_inset
9365
9366,
9367\begin_inset Quotes eld
9368\end_inset
9369
9370field_group
9371\begin_inset Quotes erd
9372\end_inset
9373
9374,
9375\begin_inset Quotes eld
9376\end_inset
9377
9378variable_group
9379\begin_inset Quotes erd
9380\end_inset
9381
9382 or
9383\begin_inset Quotes eld
9384\end_inset
9385
9386file_group
9387\begin_inset Quotes erd
9388\end_inset
9389
9390.
9391\end_layout
9392
9393\begin_layout Subsection*
9394Getting handles
9395\end_layout
9396
9397\begin_layout Subsubsection*
9398Synopsis:
9399\end_layout
9400
9401\begin_layout LyX-Code
9402SUBROUTINE xios_get_element_handle(id,handle)
9403\end_layout
9404
9405\begin_layout LyX-Code
9406CHARACTER(len = *) , INTENT(IN) :: id
9407\end_layout
9408
9409\begin_layout LyX-Code
9410TYPE(xios_element), INTENT(OUT):: handle
9411\end_layout
9412
9413\begin_layout Standard
9414where element is one of the existing elements or group of elements.
9415\end_layout
9416
9417\begin_layout Subsubsection*
9418Arguments:
9419\end_layout
9420
9421\begin_layout Itemize
9422\begin_inset Flex Code
9423status collapsed
9424
9425\begin_layout Plain Layout
9426id
9427\end_layout
9428
9429\end_inset
9430
9431: string identifier.
9432\end_layout
9433
9434\begin_layout Itemize
9435\begin_inset Flex Code
9436status collapsed
9437
9438\begin_layout Plain Layout
9439handle
9440\end_layout
9441
9442\end_inset
9443
9444: element handle
9445\end_layout
9446
9447\begin_layout Subsubsection*
9448Description:
9449\end_layout
9450
9451\begin_layout Standard
9452This subroutine returns the handle of the specified element identified by
9453 its string.
9454 The element must be existing otherwise an error is raised.
9455\end_layout
9456
9457\begin_layout Subsection*
9458Query for a valid element
9459\end_layout
9460
9461\begin_layout Subsubsection*
9462Synopsis:
9463\end_layout
9464
9465\begin_layout LyX-Code
9466LOGICAL FUNCTION xios_is_valid_element(id)
9467\end_layout
9468
9469\begin_layout LyX-Code
9470CHARACTER(len = *) , INTENT(IN) :: id
9471\end_layout
9472
9473\begin_layout Standard
9474where element is one of the existing elements or group of elements.
9475\end_layout
9476
9477\begin_layout Subsubsection*
9478Arguments:
9479\end_layout
9480
9481\begin_layout Itemize
9482\begin_inset Flex Code
9483status collapsed
9484
9485\begin_layout Plain Layout
9486id
9487\end_layout
9488
9489\end_inset
9490
9491: string identifier.
9492\end_layout
9493
9494\begin_layout Subsubsection*
9495Description:
9496\end_layout
9497
9498\begin_layout Standard
9499This function returns .TRUE.
9500 if the element defined by the string identifier
9501\begin_inset Quotes eld
9502\end_inset
9503
9504id
9505\begin_inset Quotes erd
9506\end_inset
9507
9508 exists in the data base, otherwise it returns .FALSE.
9509 .
9510\end_layout
9511
9512\begin_layout Subsection*
9513Adding child
9514\end_layout
9515
9516\begin_layout Subsubsection*
9517Synopsis:
9518\end_layout
9519
9520\begin_layout LyX-Code
9521SUBROUTINE xios_add_element(parent_handle, child_handle, child_id)
9522\end_layout
9523
9524\begin_layout LyX-Code
9525TYPE(xios_element)         , INTENT(IN) :: parent_handle
9526\end_layout
9527
9528\begin_layout LyX-Code
9529TYPE(xios_element)         , INTENT(OUT):: child_handle
9530\end_layout
9531
9532\begin_layout LyX-Code
9533CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
9534\end_layout
9535
9536\begin_layout Standard
9537where element is one of the existing elements or element groups.
9538\end_layout
9539
9540\begin_layout Subsubsection*
9541Arguments:
9542\end_layout
9543
9544\begin_layout Itemize
9545\begin_inset Flex Code
9546status collapsed
9547
9548\begin_layout Plain Layout
9549parent_handle
9550\end_layout
9551
9552\end_inset
9553
9554: handle of the parent element.
9555\end_layout
9556
9557\begin_layout Itemize
9558\begin_inset Flex Code
9559status collapsed
9560
9561\begin_layout Plain Layout
9562child_handle
9563\end_layout
9564
9565\end_inset
9566
9567: handle of the child element.
9568\end_layout
9569
9570\begin_layout Itemize
9571\begin_inset Flex Code
9572status collapsed
9573
9574\begin_layout Plain Layout
9575child_id
9576\end_layout
9577
9578\end_inset
9579
9580: string identifier of the child.
9581\end_layout
9582
9583\begin_layout Subsubsection*
9584Description:
9585\end_layout
9586
9587\begin_layout Standard
9588This subroutine adds a child to an existing parent element.
9589 The identifier of the child, if existing, can be specified optionally.
9590 All group elements can contain child of the same type, provided generic
9591 inheritance.
9592 Some elements can contain children of another type for a specific behavior.
9593 File element may contain field_group, field, variable and variable_group
9594 child elements.
9595 Field elements may contain variable_group of variable child element.
9596\end_layout
9597
9598\begin_layout Subsection*
9599Query if the value of an element attribute is defined (by handle)
9600\end_layout
9601
9602\begin_layout Subsubsection*
9603Synopsis:
9604\end_layout
9605
9606\begin_layout LyX-Code
9607SUBROUTINE xios_is_defined_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
9608 ...)
9609\end_layout
9610
9611\begin_layout LyX-Code
9612TYPE(xios_element)         , INTENT(IN) :: handle
9613\end_layout
9614
9615\begin_layout LyX-Code
9616LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
9617\end_layout
9618
9619\begin_layout LyX-Code
9620LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
9621\end_layout
9622
9623\begin_layout LyX-Code
9624....
9625\end_layout
9626
9627\begin_layout Standard
9628where element is one of the existing elements or element groups.
9629 attribute_x is describing in the chapter dedicated to the attribute description.
9630\end_layout
9631
9632\begin_layout Subsubsection*
9633Arguments:
9634\end_layout
9635
9636\begin_layout Itemize
9637\begin_inset Flex Code
9638status collapsed
9639
9640\begin_layout Plain Layout
9641handle
9642\end_layout
9643
9644\end_inset
9645
9646: element handle.
9647\end_layout
9648
9649\begin_layout Itemize
9650\begin_inset Flex Code
9651status collapsed
9652
9653\begin_layout Plain Layout
9654attr_x
9655\end_layout
9656
9657\end_inset
9658
9659: return true if the attribute as a defined value.
9660\end_layout
9661
9662\begin_layout Subsubsection*
9663Description:
9664\end_layout
9665
9666\begin_layout Standard
9667This subroutine can be used to query if one or more attributes of an element
9668 have a defined value.
9669 The list of attributes and their type are described in a specific chapter
9670 of the documentation.
9671 
9672\end_layout
9673
9674\begin_layout Subsection*
9675Query if a value of an element attributes is defined (by identifier)
9676\end_layout
9677
9678\begin_layout Subsubsection*
9679Synopsis:
9680\end_layout
9681
9682\begin_layout LyX-Code
9683SUBROUTINE xios_is_defined_element_attr(id, attr_1=attribute_1, attr_2=attribute
9684_2, ...)
9685\end_layout
9686
9687\begin_layout LyX-Code
9688CHARACTER(len = *) , INTENT(IN) :: id
9689\end_layout
9690
9691\begin_layout LyX-Code
9692LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
9693\end_layout
9694
9695\begin_layout LyX-Code
9696LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
9697\end_layout
9698
9699\begin_layout LyX-Code
9700....
9701\end_layout
9702
9703\begin_layout Standard
9704where element is one of the existing elements or element groups.
9705 attribute_x is describing in the chapter dedicated to the attribute description.
9706\end_layout
9707
9708\begin_layout Subsubsection*
9709Arguments:
9710\end_layout
9711
9712\begin_layout Itemize
9713\begin_inset Flex Code
9714status collapsed
9715
9716\begin_layout Plain Layout
9717id
9718\end_layout
9719
9720\end_inset
9721
9722: element identifier.
9723\end_layout
9724
9725\begin_layout Itemize
9726\begin_inset Flex Code
9727status collapsed
9728
9729\begin_layout Plain Layout
9730attr_x
9731\end_layout
9732
9733\end_inset
9734
9735: return true if the attribute as a defined value.
9736\end_layout
9737
9738\begin_layout Subsubsection*
9739Description:
9740\end_layout
9741
9742\begin_layout Standard
9743This subroutine can be used to query if one or more attributes of an element
9744 have a defined value.
9745 The list of available attributes and their type are described in a specific
9746 chapter of the documentation.
9747 
9748\end_layout
9749
9750\begin_layout Subsection*
9751Setting element attributes value by handle
9752\end_layout
9753
9754\begin_layout Subsubsection*
9755Synopsis:
9756\end_layout
9757
9758\begin_layout LyX-Code
9759SUBROUTINE xios_set_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
9760 ...)
9761\end_layout
9762
9763\begin_layout LyX-Code
9764TYPE(xios_element)         , INTENT(IN) :: handle
9765\end_layout
9766
9767\begin_layout LyX-Code
9768attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
9769\end_layout
9770
9771\begin_layout LyX-Code
9772attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
9773\end_layout
9774
9775\begin_layout LyX-Code
9776....
9777\end_layout
9778
9779\begin_layout Standard
9780where element is one of the existing elements or element groups.
9781 attribute_x and attribute_type_x are describing in the chapter dedicated
9782 to the attribute description.
9783\end_layout
9784
9785\begin_layout Subsubsection*
9786Arguments:
9787\end_layout
9788
9789\begin_layout Itemize
9790\begin_inset Flex Code
9791status collapsed
9792
9793\begin_layout Plain Layout
9794handle
9795\end_layout
9796
9797\end_inset
9798
9799: element handle.
9800\end_layout
9801
9802\begin_layout Itemize
9803\begin_inset Flex Code
9804status collapsed
9805
9806\begin_layout Plain Layout
9807attr_x
9808\end_layout
9809
9810\end_inset
9811
9812: value of the attribute to be set.
9813\end_layout
9814
9815\begin_layout Subsubsection*
9816Description:
9817\end_layout
9818
9819\begin_layout Standard
9820This subroutine can be used to set one or more attributes of an element
9821 defined by its handle.
9822 The list of available attributes and their types are described in corresponding
9823 chapters of the documentation.
9824 
9825\end_layout
9826
9827\begin_layout Subsection*
9828Setting element attributes value by id
9829\end_layout
9830
9831\begin_layout Subsubsection*
9832Synopsis:
9833\end_layout
9834
9835\begin_layout LyX-Code
9836SUBROUTINE xios_set_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
9837 ...)
9838\end_layout
9839
9840\begin_layout LyX-Code
9841CHARACTER(len = *),  INTENT(IN)          :: id
9842\end_layout
9843
9844\begin_layout LyX-Code
9845attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
9846\end_layout
9847
9848\begin_layout LyX-Code
9849attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
9850\end_layout
9851
9852\begin_layout LyX-Code
9853....
9854\end_layout
9855
9856\begin_layout Standard
9857where element is one of the existing elements or element groups.
9858 The attributes attribute_x and attribute_type_x are described in corresponding
9859 chapters.
9860\end_layout
9861
9862\begin_layout Subsubsection*
9863Arguments:
9864\end_layout
9865
9866\begin_layout Itemize
9867\begin_inset Flex Code
9868status collapsed
9869
9870\begin_layout Plain Layout
9871id
9872\end_layout
9873
9874\end_inset
9875
9876: string identifier.
9877\end_layout
9878
9879\begin_layout Itemize
9880\begin_inset Flex Code
9881status collapsed
9882
9883\begin_layout Plain Layout
9884attr_x
9885\end_layout
9886
9887\end_inset
9888
9889: value of the attribute to be set.
9890\end_layout
9891
9892\begin_layout Subsubsection*
9893Description:
9894\end_layout
9895
9896\begin_layout Standard
9897This subroutine can be used to set one or more attributes of an element
9898 defined by its string id.
9899 The list of available attributes and their type are described in corresponding
9900 chapters of the documentation.
9901\end_layout
9902
9903\begin_layout Subsection*
9904Getting element attributes value (by handle)
9905\end_layout
9906
9907\begin_layout Subsubsection*
9908Synopsis:
9909\end_layout
9910
9911\begin_layout LyX-Code
9912SUBROUTINE xios_get_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
9913 ...)
9914\end_layout
9915
9916\begin_layout LyX-Code
9917TYPE(xios_element)         , INTENT(IN) :: handle
9918\end_layout
9919
9920\begin_layout LyX-Code
9921attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
9922\end_layout
9923
9924\begin_layout LyX-Code
9925attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
9926\end_layout
9927
9928\begin_layout LyX-Code
9929....
9930\end_layout
9931
9932\begin_layout Standard
9933where element is one of the existing elements or element groups.
9934 attribute_x and attribute_type_x are describing in the chapter dedicated
9935 to the attribute description.
9936\end_layout
9937
9938\begin_layout Subsubsection*
9939Arguments:
9940\end_layout
9941
9942\begin_layout Itemize
9943\begin_inset Flex Code
9944status collapsed
9945
9946\begin_layout Plain Layout
9947handle
9948\end_layout
9949
9950\end_inset
9951
9952: element handle.
9953\end_layout
9954
9955\begin_layout Itemize
9956\begin_inset Flex Code
9957status collapsed
9958
9959\begin_layout Plain Layout
9960attr_x
9961\end_layout
9962
9963\end_inset
9964
9965: value of the attribute to be get.
9966\end_layout
9967
9968\begin_layout Subsubsection*
9969Description:
9970\end_layout
9971
9972\begin_layout Standard
9973This subroutine can be used to get one or more attribute value of an element
9974 defined by its handle.
9975 All attributes in the arguments list must be defined.
9976 The list of available attributes and their type are described in a specific
9977 chapter of the documentation.
9978 
9979\end_layout
9980
9981\begin_layout Subsection*
9982Getting element attributes value (by identifier)
9983\end_layout
9984
9985\begin_layout Subsubsection*
9986Synopsis:
9987\end_layout
9988
9989\begin_layout LyX-Code
9990SUBROUTINE xios_get_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
9991 ...)
9992\end_layout
9993
9994\begin_layout LyX-Code
9995CHARACTER(len = *),   INTENT(IN)          :: id
9996\end_layout
9997
9998\begin_layout LyX-Code
9999attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
10000\end_layout
10001
10002\begin_layout LyX-Code
10003attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
10004\end_layout
10005
10006\begin_layout LyX-Code
10007....
10008\end_layout
10009
10010\begin_layout Standard
10011where element is one of the existing elements or element groups.
10012 attribute_x is describing in the chapter dedicated to the attribute description.
10013\end_layout
10014
10015\begin_layout Subsubsection*
10016Arguments:
10017\end_layout
10018
10019\begin_layout Itemize
10020\begin_inset Flex Code
10021status collapsed
10022
10023\begin_layout Plain Layout
10024id
10025\end_layout
10026
10027\end_inset
10028
10029: element string identifier.
10030\end_layout
10031
10032\begin_layout Itemize
10033\begin_inset Flex Code
10034status collapsed
10035
10036\begin_layout Plain Layout
10037attr_x
10038\end_layout
10039
10040\end_inset
10041
10042: value of the attribute to be get.
10043\end_layout
10044
10045\begin_layout Subsubsection*
10046Description:
10047\end_layout
10048
10049\begin_layout Standard
10050This subroutine can be used to get one or more attribute value of an element
10051 defined by its handle.
10052 All attributes in the arguments list must have a defined value.
10053 The list of available attributes and their type are described in a specific
10054 chapter of the documentation.
10055\end_layout
10056
10057\begin_layout Section*
10058Context management interface
10059\end_layout
10060
10061\begin_layout Subsection*
10062XIOS context initialization
10063\end_layout
10064
10065\begin_layout Subsubsection*
10066Synopsis:
10067\end_layout
10068
10069\begin_layout LyX-Code
10070SUBROUTINE xios_context_initialize(context_id, context_comm)
10071\end_layout
10072
10073\begin_layout LyX-Code
10074  CHARACTER(LEN=*),INTENT(IN)         :: context_id
10075\end_layout
10076
10077\begin_layout LyX-Code
10078  INTEGER,INTENT(IN)                  :: context_comm
10079\end_layout
10080
10081\begin_layout Subsubsection*
10082Argument:
10083\end_layout
10084
10085\begin_layout Itemize
10086\begin_inset Flex Code
10087status collapsed
10088
10089\begin_layout Plain Layout
10090context_id
10091\end_layout
10092
10093\end_inset
10094
10095: context identifier
10096\end_layout
10097
10098\begin_layout Itemize
10099\begin_inset Flex Code
10100status collapsed
10101
10102\begin_layout Plain Layout
10103context_comm
10104\end_layout
10105
10106\end_inset
10107
10108: MPI communicator of the context
10109\end_layout
10110
10111\begin_layout Subsubsection*
10112Description:
10113\end_layout
10114
10115\begin_layout Standard
10116This subroutine initializes a context identified by
10117\begin_inset Flex Code
10118status collapsed
10119
10120\begin_layout Plain Layout
10121context_id
10122\end_layout
10123
10124\end_inset
10125
10126 string and must be called before any call related to this context.
10127 A context must be associated to a communicator, which can be the returned
10128 communicator of the
10129\begin_inset Flex Code
10130status collapsed
10131
10132\begin_layout Plain Layout
10133xios_initialize
10134\end_layout
10135
10136\end_inset
10137
10138 subroutine or a sub-communicator of this.
10139 The context initialization is dynamic and can be done at any time before
10140 the
10141\begin_inset Flex Code
10142status collapsed
10143
10144\begin_layout Plain Layout
10145xios_finalize
10146\end_layout
10147
10148\end_inset
10149
10150 call.
10151\end_layout
10152
10153\begin_layout Subsection*
10154XIOS context finalization
10155\end_layout
10156
10157\begin_layout Subsubsection*
10158Synopsis:
10159\end_layout
10160
10161\begin_layout LyX-Code
10162SUBROUTINE xios_context_finalize()
10163\end_layout
10164
10165\begin_layout Subsubsection*
10166Arguments:
10167\end_layout
10168
10169\begin_layout Standard
10170None
10171\end_layout
10172
10173\begin_layout Subsubsection*
10174Description:
10175\end_layout
10176
10177\begin_layout Standard
10178This subroutine must be called to close a context before the
10179\begin_inset Flex Code
10180status collapsed
10181
10182\begin_layout Plain Layout
10183xios_finalize
10184\end_layout
10185
10186\end_inset
10187
10188 call.
10189 It waits until that all pending requests sent to the servers will be processed
10190 and all opened files will be closed.
10191\end_layout
10192
10193\begin_layout Subsection*
10194Setting current active context
10195\end_layout
10196
10197\begin_layout Subsubsection*
10198Synopsis:
10199\end_layout
10200
10201\begin_layout LyX-Code
10202SUBROUTINE xios_set_current_context(context_handle)
10203\end_layout
10204
10205\begin_layout LyX-Code
10206TYPE(xios_context),INTENT(IN) :: context_handle
10207\end_layout
10208
10209\begin_layout Standard
10210or
10211\end_layout
10212
10213\begin_layout LyX-Code
10214SUBROUTINE xios_set_current_context(context_id)
10215\end_layout
10216
10217\begin_layout LyX-Code
10218CHARACTER(LEN=*),INTENT(IN) :: context_id
10219\end_layout
10220
10221\begin_layout Subsubsection*
10222Arguments:
10223\end_layout
10224
10225\begin_layout Itemize
10226\begin_inset Flex Code
10227status collapsed
10228
10229\begin_layout Plain Layout
10230context_handle
10231\end_layout
10232
10233\end_inset
10234
10235: handle of the context
10236\end_layout
10237
10238\begin_layout Standard
10239or
10240\end_layout
10241
10242\begin_layout Itemize
10243\begin_inset Flex Code
10244status collapsed
10245
10246\begin_layout Plain Layout
10247context_id
10248\end_layout
10249
10250\end_inset
10251
10252: string context identifier
10253\end_layout
10254
10255\begin_layout Subsubsection*
10256Description:
10257\end_layout
10258
10259\begin_layout Standard
10260These subroutines set the current active context.
10261 All following XIOS calls will refer to this active context.
10262 If only one context is defined, it will be set automatically as the active
10263 context.
10264 
10265\end_layout
10266
10267\begin_layout Subsection*
10268Closing definition
10269\end_layout
10270
10271\begin_layout Subsubsection*
10272Synopsis:
10273\end_layout
10274
10275\begin_layout LyX-Code
10276SUBROUTINE xios_close_context_definition()
10277\end_layout
10278
10279\begin_layout Subsubsection*
10280Arguments:
10281\end_layout
10282
10283\begin_layout Standard
10284None
10285\end_layout
10286
10287\begin_layout Subsubsection*
10288Description:
10289\end_layout
10290
10291\begin_layout Standard
10292This subroutine must be called when all definitions of a context are finished
10293 at the end of the initialization and before entering to the time loop.
10294 A lot of operations are performed internally (inheritance, grid definition,
10295 contacting servers,...) so this call is mandatory.
10296 Any call related to the tree management definition done after will have
10297 an undefined effect.
10298\end_layout
10299
10300\begin_layout Section*
10301Calendar management interface
10302\end_layout
10303
10304\begin_layout Subsection*
10305Creating the calendar
10306\end_layout
10307
10308\begin_layout Subsubsection*
10309Synopsis:
10310\end_layout
10311
10312\begin_layout LyX-Code
10313SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
10314 &
10315\begin_inset Newline newline
10316\end_inset
10317
10318                                day_length, month_lengths, year_length,
10319 &
10320\begin_inset Newline newline
10321\end_inset
10322
10323                                leap_year_month, leap_year_drift, &
10324\begin_inset Newline newline
10325\end_inset
10326
10327                                leap_year_drift_offset)
10328\begin_inset Newline newline
10329\end_inset
10330
10331CHARACTER(len = *),              INTENT(IN) :: type
10332\begin_inset Newline newline
10333\end_inset
10334
10335TYPE(xios_duration),   OPTIONAL, INTENT(IN) :: timestep
10336\begin_inset Newline newline
10337\end_inset
10338
10339TYPE(xios_date),       OPTIONAL, INTENT(IN) :: start_date
10340\begin_inset Newline newline
10341\end_inset
10342
10343TYPE(xios_date),       OPTIONAL, INTENT(IN) :: time_origin
10344\begin_inset Newline newline
10345\end_inset
10346
10347INTEGER,               OPTIONAL, INTENT(IN) :: day_length
10348\begin_inset Newline newline
10349\end_inset
10350
10351INTEGER,               OPTIONAL, INTENT(IN) :: month_lengths(:)
10352\begin_inset Newline newline
10353\end_inset
10354
10355INTEGER,               OPTIONAL, INTENT(IN) :: year_length
10356\begin_inset Newline newline
10357\end_inset
10358
10359DOUBLE PRECISION,      OPTIONAL, INTENT(IN) :: leap_year_drift
10360\begin_inset Newline newline
10361\end_inset
10362
10363DOUBLE PRECISION,      OPTIONAL, INTENT(IN) :: leap_year_drift_offset
10364\begin_inset Newline newline
10365\end_inset
10366
10367INTEGER,               OPTIONAL, INTENT(IN) :: leap_year_month
10368\end_layout
10369
10370\begin_layout Subsubsection*
10371Arguments:
10372\end_layout
10373
10374\begin_layout Itemize
10375\begin_inset Flex Code
10376status collapsed
10377
10378\begin_layout Plain Layout
10379type
10380\end_layout
10381
10382\end_inset
10383
10384: the calendar type, one of
10385\begin_inset Flex Code
10386status collapsed
10387
10388\begin_layout Plain Layout
10389"Gregorian"
10390\end_layout
10391
10392\end_inset
10393
10394,
10395\begin_inset Flex Code
10396status collapsed
10397
10398\begin_layout Plain Layout
10399"Julian"
10400\end_layout
10401
10402\end_inset
10403
10404,
10405\begin_inset Flex Code
10406status collapsed
10407
10408\begin_layout Plain Layout
10409"D360"
10410\end_layout
10411
10412\end_inset
10413
10414,
10415\begin_inset Flex Code
10416status collapsed
10417
10418\begin_layout Plain Layout
10419"AllLeap"
10420\end_layout
10421
10422\end_inset
10423
10424,
10425\begin_inset Flex Code
10426status collapsed
10427
10428\begin_layout Plain Layout
10429"NoLeap"
10430\end_layout
10431
10432\end_inset
10433
10434,
10435\begin_inset Flex Code
10436status collapsed
10437
10438\begin_layout Plain Layout
10439"user_defined"
10440\end_layout
10441
10442\end_inset
10443
10444
10445\end_layout
10446
10447\begin_layout Itemize
10448\begin_inset Flex Code
10449status collapsed
10450
10451\begin_layout Plain Layout
10452timestep
10453\end_layout
10454
10455\end_inset
10456
10457: the time step of the simulation (optional, can be set later)
10458\end_layout
10459
10460\begin_layout Itemize
10461\begin_inset Flex Code
10462status collapsed
10463
10464\begin_layout Plain Layout
10465start_date
10466\end_layout
10467
10468\end_inset
10469
10470: the start date of the simulation (optional,
10471\begin_inset Flex Code
10472status collapsed
10473
10474\begin_layout Plain Layout
10475xios_date(0000, 01, 01, 00, 00, 00)
10476\end_layout
10477
10478\end_inset
10479
10480 is used by default)
10481\end_layout
10482
10483\begin_layout Itemize
10484\begin_inset Flex Code
10485status collapsed
10486
10487\begin_layout Plain Layout
10488time_origin
10489\end_layout
10490
10491\end_inset
10492
10493: the origin of the time axis (optional,
10494\begin_inset Flex Code
10495status collapsed
10496
10497\begin_layout Plain Layout
10498xios_date(0000, 01, 01, 00, 00, 00)
10499\end_layout
10500
10501\end_inset
10502
10503 is used by default)
10504\end_layout
10505
10506\begin_layout Itemize
10507\begin_inset Flex Code
10508status collapsed
10509
10510\begin_layout Plain Layout
10511day_length
10512\end_layout
10513
10514\end_inset
10515
10516: the length of a day in seconds (mandatory when creating an user defined
10517 calendar, must not be set otherwise)
10518\end_layout
10519
10520\begin_layout Itemize
10521\begin_inset Flex Code
10522status collapsed
10523
10524\begin_layout Plain Layout
10525month_lengths
10526\end_layout
10527
10528\end_inset
10529
10530: the length of each month of the year in days (either
10531\begin_inset Flex Code
10532status collapsed
10533
10534\begin_layout Plain Layout
10535month_lengths
10536\end_layout
10537
10538\end_inset
10539
10540 or
10541\begin_inset Flex Code
10542status collapsed
10543
10544\begin_layout Plain Layout
10545year_length
10546\end_layout
10547
10548\end_inset
10549
10550 must be set when creating an user defined calendar, must not be set otherwise)
10551\end_layout
10552
10553\begin_layout Itemize
10554\begin_inset Flex Code
10555status collapsed
10556
10557\begin_layout Plain Layout
10558year_length
10559\end_layout
10560
10561\end_inset
10562
10563: the length of a year in seconds (either
10564\begin_inset Flex Code
10565status collapsed
10566
10567\begin_layout Plain Layout
10568month_lengths
10569\end_layout
10570
10571\end_inset
10572
10573 or
10574\begin_inset Flex Code
10575status collapsed
10576
10577\begin_layout Plain Layout
10578year_length
10579\end_layout
10580
10581\end_inset
10582
10583 must be set when creating an user defined calendar, must not be set otherwise)
10584\end_layout
10585
10586\begin_layout Itemize
10587\begin_inset Flex Code
10588status collapsed
10589
10590\begin_layout Plain Layout
10591leap_year_drift
10592\end_layout
10593
10594\end_inset
10595
10596: the yearly drift between the user defined calendar and the astronomical
10597 calendar, expressed as a fraction of day (can optionally be set when creating
10598 an user defined calendar in which case
10599\begin_inset Flex Code
10600status collapsed
10601
10602\begin_layout Plain Layout
10603leap_year_month
10604\end_layout
10605
10606\end_inset
10607
10608 must be set too)
10609\end_layout
10610
10611\begin_layout Itemize
10612\begin_inset Flex Code
10613status collapsed
10614
10615\begin_layout Plain Layout
10616leap_year_drift_offset
10617\end_layout
10618
10619\end_inset
10620
10621: the initial drift between the user defined calendar and the astronomical
10622 calendar at the time origin, expressed as a fraction of day (can optionally
10623 be set if
10624\begin_inset Flex Code
10625status collapsed
10626
10627\begin_layout Plain Layout
10628leap_year_drift
10629\end_layout
10630
10631\end_inset
10632
10633 and
10634\begin_inset Flex Code
10635status collapsed
10636
10637\begin_layout Plain Layout
10638leap_year_month
10639\end_layout
10640
10641\end_inset
10642
10643 are set)
10644\end_layout
10645
10646\begin_layout Itemize
10647\begin_inset Flex Code
10648status collapsed
10649
10650\begin_layout Plain Layout
10651leap_year_month
10652\end_layout
10653
10654\end_inset
10655
10656: the month to which an extra day must be added in case of leap year (can
10657 optionally be set when creating an user defined calendar in which case
10658 
10659\begin_inset Flex Code
10660status collapsed
10661
10662\begin_layout Plain Layout
10663leap_year_drift
10664\end_layout
10665
10666\end_inset
10667
10668 must be set too)
10669\end_layout
10670
10671\begin_layout Standard
10672For a more detailed description of those arguments, see the description
10673 of the corresponding attributes in section 1.2
10674\begin_inset Quotes eld
10675\end_inset
10676
10677Calendar attribute reference
10678\begin_inset Quotes erd
10679\end_inset
10680
10681.
10682\end_layout
10683
10684\begin_layout Subsubsection*
10685Description:
10686\end_layout
10687
10688\begin_layout Standard
10689This subroutine creates the calendar for the current context.
10690 Note that the calendar is created once and for all, either from the XML
10691 configuration file or the Fortran interface.
10692 If it was not created from the configuration file, then this subroutine
10693 must be called once and only once before the context definition is closed.
10694 The calendar features can be used immediately after the calendar was created.
10695\begin_inset Newline newline
10696\end_inset
10697
10698
10699\begin_inset Newline newline
10700\end_inset
10701
10702If an user defined calendar is created, the following arguments must also
10703 be provided:
10704\begin_inset Flex Code
10705status collapsed
10706
10707\begin_layout Plain Layout
10708day_length
10709\end_layout
10710
10711\end_inset
10712
10713 and either
10714\begin_inset Flex Code
10715status collapsed
10716
10717\begin_layout Plain Layout
10718month_lengths
10719\end_layout
10720
10721\end_inset
10722
10723 or
10724\begin_inset Flex Code
10725status collapsed
10726
10727\begin_layout Plain Layout
10728year_length
10729\end_layout
10730
10731\end_inset
10732
10733.
10734 Optionally it is possible to configure the user defined calendar to have
10735 leap years.
10736 In this case,
10737\begin_inset Flex Code
10738status collapsed
10739
10740\begin_layout Plain Layout
10741leap_year_drift
10742\end_layout
10743
10744\end_inset
10745
10746 and
10747\begin_inset Flex Code
10748status collapsed
10749
10750\begin_layout Plain Layout
10751leap_year_month
10752\end_layout
10753
10754\end_inset
10755
10756 must also be provided and
10757\begin_inset Flex Code
10758status collapsed
10759
10760\begin_layout Plain Layout
10761leap_year_drift_offset
10762\end_layout
10763
10764\end_inset
10765
10766 might be used.
10767\end_layout
10768
10769\begin_layout Subsection*
10770Accessing the calendar type of the current calendar
10771\end_layout
10772
10773\begin_layout Subsubsection*
10774Synopsis:
10775\end_layout
10776
10777\begin_layout LyX-Code
10778SUBROUTINE xios_get_calendar_type(calendar_type)
10779\begin_inset Newline newline
10780\end_inset
10781
10782CHARACTER(len=*), INTENT(OUT) :: calendar_type
10783\end_layout
10784
10785\begin_layout Subsubsection*
10786Arguments:
10787\end_layout
10788
10789\begin_layout Itemize
10790\begin_inset Flex Code
10791status collapsed
10792
10793\begin_layout Plain Layout
10794calendar_type
10795\end_layout
10796
10797\end_inset
10798
10799: on output, the type of the calendar attached to the current context
10800\end_layout
10801
10802\begin_layout Subsubsection*
10803Description:
10804\end_layout
10805
10806\begin_layout Standard
10807This subroutine gets the calendar type associated to the current context.
10808 It will raise an error if used before the calendar was created.
10809\end_layout
10810
10811\begin_layout Subsection*
10812Accessing and defining the time step of the current calendar
10813\end_layout
10814
10815\begin_layout Subsubsection*
10816Synopsis:
10817\end_layout
10818
10819\begin_layout LyX-Code
10820SUBROUTINE xios_get_timestep(timestep)
10821\begin_inset Newline newline
10822\end_inset
10823
10824TYPE(xios_duration), INTENT(OUT) :: timestep
10825\end_layout
10826
10827\begin_layout Standard
10828and
10829\end_layout
10830
10831\begin_layout LyX-Code
10832SUBROUTINE xios_set_timestep(timestep)
10833\begin_inset Newline newline
10834\end_inset
10835
10836TYPE(xios_duration), INTENT(IN) :: timestep
10837\end_layout
10838
10839\begin_layout Subsubsection*
10840Arguments:
10841\end_layout
10842
10843\begin_layout Itemize
10844\begin_inset Flex Code
10845status collapsed
10846
10847\begin_layout Plain Layout
10848timestep
10849\end_layout
10850
10851\end_inset
10852
10853: a duration corresponding to the time step of the simulation
10854\end_layout
10855
10856\begin_layout Subsubsection*
10857Description:
10858\end_layout
10859
10860\begin_layout Standard
10861Those subroutines respectively gets and sets the time step associated to
10862 the calendar of the current context.
10863 Note that the time step must always be set before the context definition
10864 is closed and that an error will be raised if the getter subroutine is
10865 used before the time step is defined.
10866\end_layout
10867
10868\begin_layout Subsection*
10869Accessing and defining the start date of the current calendar
10870\end_layout
10871
10872\begin_layout Subsubsection*
10873Synopsis:
10874\end_layout
10875
10876\begin_layout LyX-Code
10877SUBROUTINE xios_get_start_date(start_date)
10878\begin_inset Newline newline
10879\end_inset
10880
10881TYPE(xios_date), INTENT(OUT) :: start_date
10882\end_layout
10883
10884\begin_layout Standard
10885and
10886\end_layout
10887
10888\begin_layout LyX-Code
10889SUBROUTINE xios_set_start_date(start_date)
10890\begin_inset Newline newline
10891\end_inset
10892
10893TYPE(xios_date), INTENT(IN) :: start_date
10894\end_layout
10895
10896\begin_layout Subsubsection*
10897Arguments:
10898\end_layout
10899
10900\begin_layout Itemize
10901\begin_inset Flex Code
10902status collapsed
10903
10904\begin_layout Plain Layout
10905start_date
10906\end_layout
10907
10908\end_inset
10909
10910: a date corresponding to the beginning of the simulation
10911\end_layout
10912
10913\begin_layout Subsubsection*
10914Description:
10915\end_layout
10916
10917\begin_layout Standard
10918Those subroutines respectively gets and sets the start date associated to
10919 the calendar of the current context.
10920 They must not be used before the calendar was created.
10921\end_layout
10922
10923\begin_layout Subsection*
10924Accessing and defining the time origin of the current calendar
10925\end_layout
10926
10927\begin_layout Subsubsection*
10928Synopsis:
10929\end_layout
10930
10931\begin_layout LyX-Code
10932SUBROUTINE xios_get_time_origin(time_origin)
10933\begin_inset Newline newline
10934\end_inset
10935
10936TYPE(xios_date), INTENT(OUT) :: time_origin
10937\end_layout
10938
10939\begin_layout Standard
10940and
10941\end_layout
10942
10943\begin_layout LyX-Code
10944SUBROUTINE xios_set_time_date(time_origin)
10945\begin_inset Newline newline
10946\end_inset
10947
10948TYPE(xios_date), INTENT(IN) :: time_origin
10949\end_layout
10950
10951\begin_layout Subsubsection*
10952Arguments:
10953\end_layout
10954
10955\begin_layout Itemize
10956\begin_inset Flex Code
10957status collapsed
10958
10959\begin_layout Plain Layout
10960start_date
10961\end_layout
10962
10963\end_inset
10964
10965: a date corresponding to the origin of the time axis
10966\end_layout
10967
10968\begin_layout Subsubsection*
10969Description:
10970\end_layout
10971
10972\begin_layout Standard
10973Those subroutines respectively gets and sets the origin of time associated
10974 to the calendar of the current context.
10975 They must not be used before the calendar was created.
10976\end_layout
10977
10978\begin_layout Subsection*
10979Updating the current date of the current calendar
10980\end_layout
10981
10982\begin_layout Subsubsection*
10983Synopsis:
10984\end_layout
10985
10986\begin_layout LyX-Code
10987SUBROUTINE xios_update_calendar(step)
10988\begin_inset Newline newline
10989\end_inset
10990
10991INTEGER, INTENT(IN) :: step
10992\end_layout
10993
10994\begin_layout Subsubsection*
10995Arguments:
10996\end_layout
10997
10998\begin_layout Itemize
10999\begin_inset Flex Code
11000status collapsed
11001
11002\begin_layout Plain Layout
11003step
11004\end_layout
11005
11006\end_inset
11007
11008: the current iteration number
11009\end_layout
11010
11011\begin_layout Subsubsection*
11012Description:
11013\end_layout
11014
11015\begin_layout Standard
11016This subroutine sets the current date associated to the calendar of the
11017 current context based on the current iteration number:
11018\begin_inset Formula $current\_date=start\_date+step\times timestep$
11019\end_inset
11020
11021.
11022 It must not be used before the calendar was created.
11023\end_layout
11024
11025\begin_layout Subsection*
11026Accessing the current date of the current calendar
11027\end_layout
11028
11029\begin_layout Subsubsection*
11030Synopsis:
11031\end_layout
11032
11033\begin_layout LyX-Code
11034SUBROUTINE xios_get_current_date(current_date)
11035\begin_inset Newline newline
11036\end_inset
11037
11038TYPE(xios_date), INTENT(OUT) :: current_date
11039\end_layout
11040
11041\begin_layout Subsubsection*
11042Arguments:
11043\end_layout
11044
11045\begin_layout Itemize
11046\begin_inset Flex Code
11047status collapsed
11048
11049\begin_layout Plain Layout
11050current_date
11051\end_layout
11052
11053\end_inset
11054
11055: on output, the current date
11056\end_layout
11057
11058\begin_layout Subsubsection*
11059Description:
11060\end_layout
11061
11062\begin_layout Standard
11063This subroutine gets the current date associated to the calendar of the
11064 current context.
11065 It must not be used before the calendar was created.
11066\end_layout
11067
11068\begin_layout Subsection*
11069Accessing the year length of the current calendar
11070\end_layout
11071
11072\begin_layout Subsubsection*
11073Synopsis:
11074\end_layout
11075
11076\begin_layout LyX-Code
11077INTEGER FUNCTION xios_get_year_length_in_seconds(year)
11078\begin_inset Newline newline
11079\end_inset
11080
11081INTEGER, INTENT(IN) :: year
11082\end_layout
11083
11084\begin_layout Subsubsection*
11085Arguments:
11086\end_layout
11087
11088\begin_layout Itemize
11089\begin_inset Flex Code
11090status collapsed
11091
11092\begin_layout Plain Layout
11093year
11094\end_layout
11095
11096\end_inset
11097
11098: the year whose length is requested
11099\end_layout
11100
11101\begin_layout Subsubsection*
11102Description:
11103\end_layout
11104
11105\begin_layout Standard
11106This function returns the duration in seconds of the specified year, taking
11107 leap years into account based on the calendar of the current context.
11108 It must not be used before the calendar was created.
11109\end_layout
11110
11111\begin_layout Subsection*
11112Accessing the day length of the current calendar
11113\end_layout
11114
11115\begin_layout Subsubsection*
11116Synopsis:
11117\end_layout
11118
11119\begin_layout LyX-Code
11120INTEGER FUNCTION xios_get_day_length_in_seconds()
11121\end_layout
11122
11123\begin_layout Subsubsection*
11124Arguments: None
11125\end_layout
11126
11127\begin_layout Subsubsection*
11128Description:
11129\end_layout
11130
11131\begin_layout Standard
11132This function returns the duration in seconds of a day, based on the calendar
11133 of the current context.
11134 It must not be used before the calendar was created.
11135\end_layout
11136
11137\begin_layout Section*
11138Duration handling interface
11139\end_layout
11140
11141\begin_layout Subsection*
11142Duration constants
11143\end_layout
11144
11145\begin_layout Standard
11146Some duration constants are available to ease duration handling:
11147\end_layout
11148
11149\begin_layout Itemize
11150\begin_inset Flex Code
11151status collapsed
11152
11153\begin_layout Plain Layout
11154xios_year
11155\end_layout
11156
11157\end_inset
11158
11159
11160\end_layout
11161
11162\begin_layout Itemize
11163\begin_inset Flex Code
11164status collapsed
11165
11166\begin_layout Plain Layout
11167xios_month
11168\end_layout
11169
11170\end_inset
11171
11172
11173\end_layout
11174
11175\begin_layout Itemize
11176\begin_inset Flex Code
11177status collapsed
11178
11179\begin_layout Plain Layout
11180xios_day
11181\end_layout
11182
11183\end_inset
11184
11185
11186\end_layout
11187
11188\begin_layout Itemize
11189\begin_inset Flex Code
11190status collapsed
11191
11192\begin_layout Plain Layout
11193xios_hour
11194\end_layout
11195
11196\end_inset
11197
11198
11199\end_layout
11200
11201\begin_layout Itemize
11202\begin_inset Flex Code
11203status collapsed
11204
11205\begin_layout Plain Layout
11206xios_minute
11207\end_layout
11208
11209\end_inset
11210
11211
11212\end_layout
11213
11214\begin_layout Itemize
11215\begin_inset Flex Code
11216status collapsed
11217
11218\begin_layout Plain Layout
11219xios_second
11220\end_layout
11221
11222\end_inset
11223
11224
11225\end_layout
11226
11227\begin_layout Itemize
11228\begin_inset Flex Code
11229status collapsed
11230
11231\begin_layout Plain Layout
11232xios_timestep
11233\end_layout
11234
11235\end_inset
11236
11237
11238\end_layout
11239
11240\begin_layout Subsection*
11241Arithmetic operations on durations
11242\end_layout
11243
11244\begin_layout Standard
11245The following arithmetic operations on durations are available:
11246\end_layout
11247
11248\begin_layout Itemize
11249Addition:
11250\begin_inset Flex Code
11251status collapsed
11252
11253\begin_layout Plain Layout
11254xios_duration = xios_duration + xios_duration
11255\end_layout
11256
11257\end_inset
11258
11259
11260\end_layout
11261
11262\begin_layout Itemize
11263Subtraction:
11264\begin_inset Flex Code
11265status collapsed
11266
11267\begin_layout Plain Layout
11268xios_duration = xios_duration - xios_duration
11269\end_layout
11270
11271\end_inset
11272
11273
11274\end_layout
11275
11276\begin_layout Itemize
11277Multiplication by a scalar value:
11278\begin_inset Flex Code
11279status collapsed
11280
11281\begin_layout Plain Layout
11282xios_duration = scalar * xios_duration
11283\end_layout
11284
11285\end_inset
11286
11287 or
11288\begin_inset Flex Code
11289status collapsed
11290
11291\begin_layout Plain Layout
11292xios_duration = xios_duration * scalar
11293\end_layout
11294
11295\end_inset
11296
11297
11298\end_layout
11299
11300\begin_layout Itemize
11301Negation:
11302\begin_inset Flex Code
11303status collapsed
11304
11305\begin_layout Plain Layout
11306xios_duration = -xios_duration
11307\end_layout
11308
11309\end_inset
11310
11311
11312\end_layout
11313
11314\begin_layout Subsection*
11315Comparison operations on durations
11316\end_layout
11317
11318\begin_layout Standard
11319The following comparison operations on durations are available:
11320\end_layout
11321
11322\begin_layout Itemize
11323Equality:
11324\begin_inset Flex Code
11325status collapsed
11326
11327\begin_layout Plain Layout
11328LOGICAL = xios_duration == xios_duration
11329\end_layout
11330
11331\end_inset
11332
11333
11334\end_layout
11335
11336\begin_layout Itemize
11337Inequality:
11338\begin_inset Flex Code
11339status collapsed
11340
11341\begin_layout Plain Layout
11342LOGICAL = xios_duration /= xios_duration
11343\end_layout
11344
11345\end_inset
11346
11347
11348\end_layout
11349
11350\begin_layout Section*
11351Interface relative to date handling
11352\end_layout
11353
11354\begin_layout Subsection*
11355Arithmetic operations on dates
11356\end_layout
11357
11358\begin_layout Standard
11359The following arithmetic operations on dates are available:
11360\end_layout
11361
11362\begin_layout Itemize
11363Addition of a duration:
11364\begin_inset Flex Code
11365status collapsed
11366
11367\begin_layout Plain Layout
11368xios_date = xios_date + xios_duration
11369\end_layout
11370
11371\end_inset
11372
11373
11374\end_layout
11375
11376\begin_layout Itemize
11377Subtraction of a duration:
11378\begin_inset Flex Code
11379status collapsed
11380
11381\begin_layout Plain Layout
11382xios_date = xios_date - xios_duration
11383\end_layout
11384
11385\end_inset
11386
11387
11388\end_layout
11389
11390\begin_layout Itemize
11391Subtraction of two dates:
11392\begin_inset Flex Code
11393status collapsed
11394
11395\begin_layout Plain Layout
11396xios_duration = xios_date - xios_date
11397\end_layout
11398
11399\end_inset
11400
11401
11402\end_layout
11403
11404\begin_layout Subsection*
11405Comparison operations on dates
11406\end_layout
11407
11408\begin_layout Standard
11409The following comparison operations on dates are available:
11410\end_layout
11411
11412\begin_layout Itemize
11413Equality:
11414\begin_inset Flex Code
11415status collapsed
11416
11417\begin_layout Plain Layout
11418LOGICAL = xios_date == xios_date
11419\end_layout
11420
11421\end_inset
11422
11423
11424\end_layout
11425
11426\begin_layout Itemize
11427Inequality:
11428\begin_inset Flex Code
11429status collapsed
11430
11431\begin_layout Plain Layout
11432LOGICAL = xios_date /= xios_date
11433\end_layout
11434
11435\end_inset
11436
11437
11438\end_layout
11439
11440\begin_layout Itemize
11441Less than:
11442\begin_inset Flex Code
11443status collapsed
11444
11445\begin_layout Plain Layout
11446LOGICAL = xios_date < xios_date
11447\end_layout
11448
11449\end_inset
11450
11451
11452\end_layout
11453
11454\begin_layout Itemize
11455Less or equal:
11456\begin_inset Flex Code
11457status collapsed
11458
11459\begin_layout Plain Layout
11460LOGICAL = xios_date <= xios_date
11461\end_layout
11462
11463\end_inset
11464
11465
11466\end_layout
11467
11468\begin_layout Itemize
11469Greater than:
11470\begin_inset Flex Code
11471status collapsed
11472
11473\begin_layout Plain Layout
11474LOGICAL = xios_date > xios_date
11475\end_layout
11476
11477\end_inset
11478
11479
11480\end_layout
11481
11482\begin_layout Itemize
11483Greater or equal:
11484\begin_inset Flex Code
11485status collapsed
11486
11487\begin_layout Plain Layout
11488LOGICAL = xios_date >= xios_date
11489\end_layout
11490
11491\end_inset
11492
11493
11494\end_layout
11495
11496\begin_layout Subsection*
11497Converting a date to a number of seconds since the time origin
11498\end_layout
11499
11500\begin_layout Subsubsection*
11501Synopsis:
11502\end_layout
11503
11504\begin_layout LyX-Code
11505FUNCTION INTEGER(kind = 8) xios_date_convert_to_seconds(date)
11506\begin_inset Newline newline
11507\end_inset
11508
11509TYPE(xios_date), INTENT(IN) :: date
11510\end_layout
11511
11512\begin_layout Subsubsection*
11513Arguments:
11514\end_layout
11515
11516\begin_layout Itemize
11517\begin_inset Flex Code
11518status collapsed
11519
11520\begin_layout Plain Layout
11521date
11522\end_layout
11523
11524\end_inset
11525
11526: the date to convert
11527\end_layout
11528
11529\begin_layout Subsubsection*
11530Description:
11531\end_layout
11532
11533\begin_layout Standard
11534This function returns the number of seconds since the time origin for the
11535 specified date, based on the calendar of the current context.
11536 It must not be used before the calendar was created.
11537\end_layout
11538
11539\begin_layout Subsection*
11540Converting a date to a number of seconds since the beginning of the year
11541\end_layout
11542
11543\begin_layout Subsubsection*
11544Synopsis:
11545\end_layout
11546
11547\begin_layout LyX-Code
11548FUNCTION INTEGER xios(date_get_second_of_year)(date)
11549\begin_inset Newline newline
11550\end_inset
11551
11552TYPE(xios_date), INTENT(IN) :: date
11553\end_layout
11554
11555\begin_layout Subsubsection*
11556Arguments:
11557\end_layout
11558
11559\begin_layout Itemize
11560\begin_inset Flex Code
11561status collapsed
11562
11563\begin_layout Plain Layout
11564date
11565\end_layout
11566
11567\end_inset
11568
11569: the date to convert
11570\end_layout
11571
11572\begin_layout Subsubsection*
11573Description:
11574\end_layout
11575
11576\begin_layout Standard
11577This function returns the number of seconds since the beginning of the year
11578 for the specified date, based on the calendar of the current context.
11579 It must not be used before the calendar was created.
11580\end_layout
11581
11582\begin_layout Subsection*
11583Converting a date to a number of days since the beginning of the year
11584\end_layout
11585
11586\begin_layout Subsubsection*
11587Synopsis:
11588\end_layout
11589
11590\begin_layout LyX-Code
11591FUNCTION DOUBLE_PRECISION xios_date_get_day_of_year(date)
11592\begin_inset Newline newline
11593\end_inset
11594
11595TYPE(xios_date), INTENT(IN) :: date
11596\end_layout
11597
11598\begin_layout Subsubsection*
11599Arguments:
11600\end_layout
11601
11602\begin_layout Itemize
11603\begin_inset Flex Code
11604status collapsed
11605
11606\begin_layout Plain Layout
11607date
11608\end_layout
11609
11610\end_inset
11611
11612: the date to convert
11613\end_layout
11614
11615\begin_layout Subsubsection*
11616Description:
11617\end_layout
11618
11619\begin_layout Standard
11620This function returns the number of days since the beginning of the year
11621 for the specified date, based on the calendar of the current context.
11622 It must not be used before the calendar was created.
11623\end_layout
11624
11625\begin_layout Subsection*
11626Converting a date to a fraction of the current year
11627\end_layout
11628
11629\begin_layout Subsubsection*
11630Synopsis:
11631\end_layout
11632
11633\begin_layout LyX-Code
11634FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_year(date)
11635\begin_inset Newline newline
11636\end_inset
11637
11638TYPE(xios_date), INTENT(IN) :: date
11639\end_layout
11640
11641\begin_layout Subsubsection*
11642Arguments:
11643\end_layout
11644
11645\begin_layout Itemize
11646\begin_inset Flex Code
11647status collapsed
11648
11649\begin_layout Plain Layout
11650date
11651\end_layout
11652
11653\end_inset
11654
11655: the date to convert
11656\end_layout
11657
11658\begin_layout Subsubsection*
11659Description:
11660\end_layout
11661
11662\begin_layout Standard
11663This function returns the fraction of year corresponding to the specified
11664 date, based on the calendar of the current context.
11665 It must not be used before the calendar was created.
11666\end_layout
11667
11668\begin_layout Subsection*
11669Converting a date to a number of seconds since the beginning of the day
11670\end_layout
11671
11672\begin_layout Subsubsection*
11673Synopsis:
11674\end_layout
11675
11676\begin_layout LyX-Code
11677FUNCTION INTEGER xios(date_get_second_of_day)(date)
11678\begin_inset Newline newline
11679\end_inset
11680
11681TYPE(xios_date), INTENT(IN) :: date
11682\end_layout
11683
11684\begin_layout Subsubsection*
11685Arguments:
11686\end_layout
11687
11688\begin_layout Itemize
11689\begin_inset Flex Code
11690status collapsed
11691
11692\begin_layout Plain Layout
11693date
11694\end_layout
11695
11696\end_inset
11697
11698: the date to convert
11699\end_layout
11700
11701\begin_layout Subsubsection*
11702Description:
11703\end_layout
11704
11705\begin_layout Standard
11706This function returns the number of seconds since the beginning of the day
11707 for the specified date, based on the calendar of the current context.
11708 It should not be used before the calendar was created.
11709\end_layout
11710
11711\begin_layout Subsection*
11712Converting a date to a fraction of the current day
11713\end_layout
11714
11715\begin_layout Subsubsection*
11716Synopsis:
11717\end_layout
11718
11719\begin_layout LyX-Code
11720FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_day(date)
11721\begin_inset Newline newline
11722\end_inset
11723
11724TYPE(xios_date), INTENT(IN) :: date
11725\end_layout
11726
11727\begin_layout Subsubsection*
11728Arguments:
11729\end_layout
11730
11731\begin_layout Itemize
11732\begin_inset Flex Code
11733status collapsed
11734
11735\begin_layout Plain Layout
11736date
11737\end_layout
11738
11739\end_inset
11740
11741: the date to convert
11742\end_layout
11743
11744\begin_layout Subsubsection*
11745Description:
11746\end_layout
11747
11748\begin_layout Standard
11749This function returns the fraction of day corresponding to the specified
11750 date based on the calendar of the current context.
11751 It should not be used before the calendar was created.
11752\end_layout
11753
11754\end_body
11755\end_document
Note: See TracBrowser for help on using the repository browser.