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

Last change on this file since 1623 was 1623, checked in by oabramkina, 5 years ago

Updating reference guide.

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