source: XIOS/dev/XIOS_DEV_CMIP6/doc/XIOS_reference_guide.lyx @ 1293

Last change on this file since 1293 was 821, checked in by mhnguyen, 8 years ago

Making some improvements of transformation algorithm

+) Correct the way to enlisting transformations in an element (domain, axis)
+) Optimize generic transformation to make sure temporary grid to be created on demand
+) Update some mpi tag to prevent conflict
+) Correct some minor stuffs
+) Update documents

Test
+) On Curie
+) all test pass

File size: 128.4 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 default
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 the time axis.
275 It will appear as metadata attached to the time axis in the 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 behaviour 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 behaviour 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
888Axis attribute reference
889\end_layout
890
891\begin_layout Subsection*
892name:
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
914Define the name of the vertical axis, as it will appear in a file.
915 If not defined, a name is self generated from the id.
916 If multiple vertical axis are defined in a same file, each name must be
917 different.
918 
919\end_layout
920
921\begin_layout Subsection*
922standard_name:
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
944Define the standard name of the vertical axis, as it will appear in the
945 metadata attached to the axis of the output file.
946 
947\end_layout
948
949\begin_layout Subsection*
950long_name:
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
972Define the long name of the vertical axis, as it will appear in the metadata
973 attached to the axis of the output file.
974 
975\end_layout
976
977\begin_layout Subsection*
978unit:
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
1000Define the unit of the axis as it will appear in the metadata attached to
1001 the axis in the output file.
1002\end_layout
1003
1004\begin_layout Subsection*
1005n_glo:
1006\begin_inset Flex Emph
1007status collapsed
1008
1009\begin_layout Plain Layout
1010integer
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
1023INTEGER :: n_glo
1024\end_layout
1025
1026\begin_layout Standard
1027Define the global size of the axis.
1028 This attribute is mandatory.
1029\end_layout
1030
1031\begin_layout Subsection*
1032begin:
1033\begin_inset Flex Emph
1034status collapsed
1035
1036\begin_layout Plain Layout
1037integer
1038\end_layout
1039
1040\end_inset
1041
1042
1043\end_layout
1044
1045\begin_layout Standard
1046Fortran:
1047\end_layout
1048
1049\begin_layout LyX-Code
1050INTEGER :: begin
1051\end_layout
1052
1053\begin_layout Standard
1054Define the the beginning index of the local domain.
1055 This attribute is optional.
1056 This must be an index between 0 and
1057\begin_inset Flex Strong
1058status collapsed
1059
1060\begin_layout Plain Layout
1061n_glo-1
1062\end_layout
1063
1064\end_inset
1065
1066.
1067 If not specified the default value is 0.
1068\end_layout
1069
1070\begin_layout Subsection*
1071n:
1072\begin_inset Flex Emph
1073status collapsed
1074
1075\begin_layout Plain Layout
1076integer
1077\end_layout
1078
1079\end_inset
1080
1081
1082\end_layout
1083
1084\begin_layout Standard
1085Fortran:
1086\end_layout
1087
1088\begin_layout LyX-Code
1089INTEGER :: zoom_size
1090\end_layout
1091
1092\begin_layout Standard
1093Define the the local size of the axis.
1094 This attribute is optional.
1095 This must be an integer between 1 and
1096\begin_inset Flex Strong
1097status collapsed
1098
1099\begin_layout Plain Layout
1100n_glo
1101\end_layout
1102
1103\end_inset
1104
1105.
1106 If not specified the default value is
1107\begin_inset Flex Strong
1108status collapsed
1109
1110\begin_layout Plain Layout
1111n_glo
1112\end_layout
1113
1114\end_inset
1115
1116.
1117 
1118\end_layout
1119
1120\begin_layout Subsection*
1121value:
1122\begin_inset Flex Emph
1123status collapsed
1124
1125\begin_layout Plain Layout
11261D-array of double
1127\end_layout
1128
1129\end_inset
1130
1131
1132\end_layout
1133
1134\begin_layout Standard
1135Fortran:
1136\end_layout
1137
1138\begin_layout LyX-Code
1139DOUBLE PRECISION :: value(:)
1140\end_layout
1141
1142\begin_layout Standard
1143Define the value of each level of a vertical axis.
1144 The size of the array must be equal to the
1145\begin_inset Flex Strong
1146status collapsed
1147
1148\begin_layout Plain Layout
1149size
1150\end_layout
1151
1152\end_inset
1153
1154 attribute.
1155 If not defined the default values are filled with values from 1 to
1156\begin_inset Flex Strong
1157status collapsed
1158
1159\begin_layout Plain Layout
1160size
1161\end_layout
1162
1163\end_inset
1164
1165.
1166\end_layout
1167
1168\begin_layout Subsection*
1169bounds:
1170\begin_inset Flex Emph
1171status collapsed
1172
1173\begin_layout Plain Layout
11742D-array of double
1175\end_layout
1176
1177\end_inset
1178
1179
1180\end_layout
1181
1182\begin_layout Standard
1183Fortran:
1184\end_layout
1185
1186\begin_layout LyX-Code
1187DOUBLE PRECISION :: value(:,:)
1188\end_layout
1189
1190\begin_layout Standard
1191Define the boundaries of each level of a the vertical axis.
1192 The dimensions of the array must be
1193\begin_inset Formula $2\times n$
1194\end_inset
1195
1196.
1197\end_layout
1198
1199\begin_layout Subsection*
1200data_begin:
1201\emph on
1202 integer
1203\end_layout
1204
1205\begin_layout Standard
1206Fortran:
1207\end_layout
1208
1209\begin_layout LyX-Code
1210INTEGER :: data_begin
1211\end_layout
1212
1213\begin_layout Standard
1214Define the beginning index of the field data for the axis.
1215 This attribute is an offset regarding the local axis, so the value can
1216 be negative.
1217 A negative value indicates that only some valid part of the data will extracted
1218, for example in the case of a ghost cell.
1219 A positive value indicates that the local domain is greater than the data
1220 stored in memory.
1221 A 0-value means that the local domain matches the data in memory.
1222 This attribute is optional and the default value is 0.
1223 Otherwise
1224\begin_inset Flex Strong
1225status collapsed
1226
1227\begin_layout Plain Layout
1228data_begin
1229\end_layout
1230
1231\end_inset
1232
1233 and
1234\begin_inset Flex Strong
1235status collapsed
1236
1237\begin_layout Plain Layout
1238data_n
1239\end_layout
1240
1241\end_inset
1242
1243 must be defined together.
1244\end_layout
1245
1246\begin_layout Subsection*
1247data_n:
1248\emph on
1249integer
1250\end_layout
1251
1252\begin_layout Standard
1253Fortran:
1254\end_layout
1255
1256\begin_layout LyX-Code
1257INTEGER :: data_n
1258\end_layout
1259
1260\begin_layout Standard
1261Define the size of the field data for the first axis.
1262 This attribute is optional and the default value is
1263\begin_inset Flex Strong
1264status collapsed
1265
1266\begin_layout Plain Layout
1267n
1268\end_layout
1269
1270\end_inset
1271
1272.
1273 Otherwise
1274\begin_inset Flex Strong
1275status collapsed
1276
1277\begin_layout Plain Layout
1278data_begin
1279\end_layout
1280
1281\end_inset
1282
1283 and
1284\begin_inset Flex Strong
1285status collapsed
1286
1287\begin_layout Plain Layout
1288data_n
1289\end_layout
1290
1291\end_inset
1292
1293 must be defined together.
1294\end_layout
1295
1296\begin_layout Subsection*
1297data_index:
1298\emph on
1299integer
1300\end_layout
1301
1302\begin_layout Standard
1303Fortran:
1304\end_layout
1305
1306\begin_layout LyX-Code
1307INTEGER :: data_index
1308\end_layout
1309
1310\begin_layout Standard
1311In case of a compressed vertical axis, this attribute define the number
1312 of points stored in memory on the local axis.
1313\end_layout
1314
1315\begin_layout Subsection*
1316mask:
1317\emph on
13181D-array of bool
1319\end_layout
1320
1321\begin_layout Standard
1322Fortran:
1323\end_layout
1324
1325\begin_layout LyX-Code
1326LOGICAL :: mask(:)
1327\end_layout
1328
1329\begin_layout Standard
1330Define the mask of the local axis.
1331 The masked value will be replaced by the value of the field attribute
1332\begin_inset Flex Strong
1333status collapsed
1334
1335\begin_layout Plain Layout
1336default_value
1337\end_layout
1338
1339\end_inset
1340
1341 in the output file.
1342\end_layout
1343
1344\begin_layout Subsection*
1345n_distributed_partition:
1346\emph on
1347integer
1348\end_layout
1349
1350\begin_layout Standard
1351Fortran:
1352\end_layout
1353
1354\begin_layout LyX-Code
1355INTEGER :: n_distributed_partition
1356\end_layout
1357
1358\begin_layout Standard
1359Define the number of local axis in case axis is auto-generated.
1360 This attribute is optional and the default value is
1361\begin_inset Flex Strong
1362status collapsed
1363
1364\begin_layout Plain Layout
13651
1366\end_layout
1367
1368\end_inset
1369
1370.
1371\end_layout
1372
1373\begin_layout Subsection*
1374positive:
1375\begin_inset Flex Emph
1376status collapsed
1377
1378\begin_layout Plain Layout
1379enumeration { up, down }
1380\end_layout
1381
1382\end_inset
1383
1384
1385\end_layout
1386
1387\begin_layout Standard
1388Fortran:
1389\end_layout
1390
1391\begin_layout LyX-Code
1392CHARACTER(LEN=*) :: positive
1393\end_layout
1394
1395\begin_layout Standard
1396Define the direction of vertical axis.
1397\end_layout
1398
1399\begin_layout Subsection*
1400axis_ref: string
1401\end_layout
1402
1403\begin_layout Standard
1404Fortran:
1405\end_layout
1406
1407\begin_layout LyX-Code
1408CHARACTER(LEN=*) :: axis_ref
1409\end_layout
1410
1411\begin_layout Standard
1412Define the reference of the axis.
1413 All attributes are inherited from the referenced axis with the classical
1414 inheritance mechanism.
1415 The value assigned to the referenced axis is transmitted to to current
1416 axis.
1417 This attribute is optional.
1418\end_layout
1419
1420\begin_layout Subsection*
1421index:
1422\begin_inset Flex Emph
1423status collapsed
1424
1425\begin_layout Plain Layout
14261D-array of double
1427\end_layout
1428
1429\end_inset
1430
1431
1432\end_layout
1433
1434\begin_layout Standard
1435Fortran:
1436\end_layout
1437
1438\begin_layout LyX-Code
1439DOUBLE PRECISION :: index(:)
1440\end_layout
1441
1442\begin_layout Standard
1443Define the global index of axis which the local axis holds.
1444 This attribute is optional and the size of the array is equal to
1445\begin_inset Flex Strong
1446status collapsed
1447
1448\begin_layout Plain Layout
1449n
1450\end_layout
1451
1452\end_inset
1453
1454.
1455\end_layout
1456
1457\begin_layout Section
1458Domain attribute reference
1459\end_layout
1460
1461\begin_layout Subsection*
1462name:
1463\begin_inset Flex Emph
1464status collapsed
1465
1466\begin_layout Plain Layout
1467string
1468\end_layout
1469
1470\end_inset
1471
1472
1473\end_layout
1474
1475\begin_layout Standard
1476Fortran:
1477\end_layout
1478
1479\begin_layout LyX-Code
1480CHARACTER(LEN=*) :: name
1481\end_layout
1482
1483\begin_layout Standard
1484Define the name of the horizontal domain.
1485 This attribute may be used in case of multiple domains defined in the same
1486 file.
1487 In this case, the
1488\begin_inset Flex Strong
1489status collapsed
1490
1491\begin_layout Plain Layout
1492name
1493\end_layout
1494
1495\end_inset
1496
1497 attribute will be suffixed to the longitude and latitude dimensions and
1498 axis name.
1499 Otherwise, a suffix will be self-generated.
1500\end_layout
1501
1502\begin_layout Subsection*
1503standard_name:
1504\begin_inset Flex Emph
1505status collapsed
1506
1507\begin_layout Plain Layout
1508string
1509\end_layout
1510
1511\end_inset
1512
1513
1514\end_layout
1515
1516\begin_layout Standard
1517Fortran:
1518\end_layout
1519
1520\begin_layout LyX-Code
1521CHARACTER(LEN=*) :: standard_name
1522\end_layout
1523
1524\begin_layout Standard
1525Define the standard name of the domain, as it will appear in the metadata
1526 attached to the domain of the output file.
1527 
1528\end_layout
1529
1530\begin_layout Subsection*
1531long_name:
1532\begin_inset Flex Emph
1533status collapsed
1534
1535\begin_layout Plain Layout
1536string
1537\end_layout
1538
1539\end_inset
1540
1541
1542\end_layout
1543
1544\begin_layout Standard
1545Fortran:
1546\end_layout
1547
1548\begin_layout LyX-Code
1549CHARACTER(LEN=*) :: long_name
1550\end_layout
1551
1552\begin_layout Standard
1553Define the long name of the domain, as it will appear in the metadata attached
1554 to the domain of the output file.
1555 
1556\end_layout
1557
1558\begin_layout Subsection*
1559type:
1560\begin_inset Flex Emph
1561status collapsed
1562
1563\begin_layout Plain Layout
1564enumeration { rectilinear, curvilinear, unstructured }
1565\end_layout
1566
1567\end_inset
1568
1569
1570\end_layout
1571
1572\begin_layout Standard
1573Fortran:
1574\end_layout
1575
1576\begin_layout LyX-Code
1577CHARACTER(LEN=*) :: type
1578\end_layout
1579
1580\begin_layout Standard
1581Define the type of the grid.
1582 This attribute is mandatory.
1583\end_layout
1584
1585\begin_layout Subsection*
1586ni_glo:
1587\begin_inset Flex Emph
1588status collapsed
1589
1590\begin_layout Plain Layout
1591integer
1592\end_layout
1593
1594\end_inset
1595
1596
1597\end_layout
1598
1599\begin_layout Standard
1600Fortran:
1601\end_layout
1602
1603\begin_layout LyX-Code
1604INTEGER :: ni_glo
1605\end_layout
1606
1607\begin_layout Standard
1608Define the first dimension of the global domain.
1609 This attribute is mandatory.
1610\end_layout
1611
1612\begin_layout Subsection*
1613nj_glo:
1614\begin_inset Flex Emph
1615status collapsed
1616
1617\begin_layout Plain Layout
1618integer
1619\end_layout
1620
1621\end_inset
1622
1623
1624\end_layout
1625
1626\begin_layout Standard
1627Fortran:
1628\end_layout
1629
1630\begin_layout LyX-Code
1631INTEGER :: nj_glo
1632\end_layout
1633
1634\begin_layout Standard
1635Define the second dimension of the global domain.
1636 This attribute is mandatory.
1637\end_layout
1638
1639\begin_layout Subsection*
1640ibegin:
1641\begin_inset Flex Emph
1642status collapsed
1643
1644\begin_layout Plain Layout
1645integer
1646\end_layout
1647
1648\end_inset
1649
1650
1651\end_layout
1652
1653\begin_layout Standard
1654Fortran:
1655\end_layout
1656
1657\begin_layout LyX-Code
1658INTEGER :: ibegin
1659\end_layout
1660
1661\begin_layout Standard
1662Define the begining index of the first dimension of the local domain.
1663 This attribute is optional.
1664 This must be an integer between
1665\begin_inset Flex Strong
1666status collapsed
1667
1668\begin_layout Plain Layout
16690
1670\end_layout
1671
1672\end_inset
1673
1674 and
1675\begin_inset Flex Strong
1676status collapsed
1677
1678\begin_layout Plain Layout
1679ni_glo-1
1680\end_layout
1681
1682\end_inset
1683
1684.
1685 If not specified the default value is
1686\begin_inset Flex Strong
1687status collapsed
1688
1689\begin_layout Plain Layout
16900
1691\end_layout
1692
1693\end_inset
1694
1695.
1696\end_layout
1697
1698\begin_layout Subsection*
1699ni:
1700\begin_inset Flex Emph
1701status collapsed
1702
1703\begin_layout Plain Layout
1704integer
1705\end_layout
1706
1707\end_inset
1708
1709
1710\end_layout
1711
1712\begin_layout Standard
1713Fortran:
1714\end_layout
1715
1716\begin_layout LyX-Code
1717INTEGER :: ni
1718\end_layout
1719
1720\begin_layout Standard
1721Define the first dimension of the local domain.
1722 This attribute is optional.
1723 This must be an integer between
1724\begin_inset Flex Strong
1725status collapsed
1726
1727\begin_layout Plain Layout
17281
1729\end_layout
1730
1731\end_inset
1732
1733and
1734\begin_inset Flex Strong
1735status collapsed
1736
1737\begin_layout Plain Layout
1738ni_glo
1739\end_layout
1740
1741\end_inset
1742
1743.
1744 If not specified the default value is
1745\begin_inset Flex Strong
1746status collapsed
1747
1748\begin_layout Plain Layout
1749ni_glo
1750\end_layout
1751
1752\end_inset
1753
1754.
1755\end_layout
1756
1757\begin_layout Subsection*
1758jbegin:
1759\begin_inset Flex Emph
1760status collapsed
1761
1762\begin_layout Plain Layout
1763integer
1764\end_layout
1765
1766\end_inset
1767
1768
1769\end_layout
1770
1771\begin_layout Standard
1772Fortran:
1773\end_layout
1774
1775\begin_layout LyX-Code
1776INTEGER :: jbegin
1777\end_layout
1778
1779\begin_layout Standard
1780Define the beginning index of the second dimension of the local domain.
1781 This attribute is optional.
1782 This must be an integer between
1783\begin_inset Flex Strong
1784status collapsed
1785
1786\begin_layout Plain Layout
17870
1788\end_layout
1789
1790\end_inset
1791
1792 and
1793\begin_inset Flex Strong
1794status collapsed
1795
1796\begin_layout Plain Layout
1797nj_glo-1
1798\end_layout
1799
1800\end_inset
1801
1802.
1803 If not specified the default value is
1804\begin_inset Flex Strong
1805status collapsed
1806
1807\begin_layout Plain Layout
18080
1809\end_layout
1810
1811\end_inset
1812
1813.
1814\end_layout
1815
1816\begin_layout Subsection*
1817nj:
1818\begin_inset Flex Emph
1819status collapsed
1820
1821\begin_layout Plain Layout
1822integer
1823\end_layout
1824
1825\end_inset
1826
1827
1828\end_layout
1829
1830\begin_layout Standard
1831Fortran:
1832\end_layout
1833
1834\begin_layout LyX-Code
1835INTEGER :: nj
1836\end_layout
1837
1838\begin_layout Standard
1839Define the second dimension of the local domain.
1840 This attribute is optional.
1841 This must be an integer between
1842\begin_inset Flex Strong
1843status collapsed
1844
1845\begin_layout Plain Layout
18461
1847\end_layout
1848
1849\end_inset
1850
1851and
1852\begin_inset Flex Strong
1853status collapsed
1854
1855\begin_layout Plain Layout
1856nj_glo
1857\end_layout
1858
1859\end_inset
1860
1861.
1862 If not specified the default value is
1863\begin_inset Flex Strong
1864status collapsed
1865
1866\begin_layout Plain Layout
1867nj_glo
1868\end_layout
1869
1870\end_inset
1871
1872.
1873\end_layout
1874
1875\begin_layout Subsection*
1876lonvalue_1d:
1877\emph on
18781D-array of double
1879\end_layout
1880
1881\begin_layout Standard
1882Fortran:
1883\end_layout
1884
1885\begin_layout LyX-Code
1886DOUBLE PRECISION :: lonvalue(:)
1887\end_layout
1888
1889\begin_layout Standard
1890Define the value of the longitude on the local domain.
1891 For a cartesian grid, the size of the array will be
1892\begin_inset Flex Strong
1893status collapsed
1894
1895\begin_layout Plain Layout
1896ni
1897\end_layout
1898
1899\end_inset
1900
1901.
1902 For a curvilinear grid, the size of the array will be
1903\begin_inset Flex Strong
1904status collapsed
1905
1906\begin_layout Plain Layout
1907ni
1908\begin_inset Formula $\times$
1909\end_inset
1910
1911nj
1912\end_layout
1913
1914\end_inset
1915
1916.
1917 This attribute is optional.
1918\end_layout
1919
1920\begin_layout Subsection*
1921lonvalue_2d:
1922\emph on
19232D-array of double
1924\end_layout
1925
1926\begin_layout Standard
1927Fortran:
1928\end_layout
1929
1930\begin_layout LyX-Code
1931DOUBLE PRECISION :: lonvalue(:,:)
1932\end_layout
1933
1934\begin_layout Standard
1935Define the value of the longitude on the local domain.
1936 For a cartesian and curvilinear grid, the size of the array will be
1937\begin_inset Flex Strong
1938status collapsed
1939
1940\begin_layout Plain Layout
1941ni
1942\begin_inset Formula $\times$
1943\end_inset
1944
1945nj
1946\end_layout
1947
1948\end_inset
1949
1950.
1951 This attribute is mandatory.
1952 Only lonvalue_1d or lonvalue_2d can be defined.
1953\end_layout
1954
1955\begin_layout Subsection*
1956latvalue_1d:
1957\emph on
19581D-array of double
1959\end_layout
1960
1961\begin_layout Standard
1962Fortran:
1963\end_layout
1964
1965\begin_layout LyX-Code
1966DOUBLE PRECISION :: latvalue(:)
1967\end_layout
1968
1969\begin_layout Standard
1970Define the value of the latitude on the local domain.
1971 For a cartesian grid, the size of the array will be nj.
1972 For a curvilinear grid, the size of the array will be
1973\begin_inset Flex Strong
1974status collapsed
1975
1976\begin_layout Plain Layout
1977ni
1978\begin_inset Formula $\times$
1979\end_inset
1980
1981nj
1982\end_layout
1983
1984\end_inset
1985
1986.
1987 This attribute is optional.
1988\end_layout
1989
1990\begin_layout Subsection*
1991latvalue_2d:
1992\emph on
19932D-array of double
1994\end_layout
1995
1996\begin_layout Standard
1997Fortran:
1998\end_layout
1999
2000\begin_layout LyX-Code
2001DOUBLE PRECISION :: latvalue(:,:)
2002\end_layout
2003
2004\begin_layout Standard
2005Define the value of the latitude on the local domain.
2006 For a cartesian and a curvilinear grid, the size of the array will be
2007\begin_inset Flex Strong
2008status collapsed
2009
2010\begin_layout Plain Layout
2011ni
2012\begin_inset Formula $\times$
2013\end_inset
2014
2015nj
2016\end_layout
2017
2018\end_inset
2019
2020.
2021 This attribute is mandatory.
2022 Only latvalue_1d or latvalue_2d can be defined.
2023\end_layout
2024
2025\begin_layout Subsection*
2026nvertex:
2027\emph on
2028integer
2029\end_layout
2030
2031\begin_layout Standard
2032Fortran:
2033\end_layout
2034
2035\begin_layout LyX-Code
2036INTEGER :: nvertex
2037\end_layout
2038
2039\begin_layout Standard
2040Define the the maximum number of vertices for a cell.
2041 This is useful to specify the boundaries of cells for an unstructured mesh.
2042 This attribute is optional.
2043\end_layout
2044
2045\begin_layout Subsection*
2046bounds_lon_1d:
2047\emph on
20482D-array of double
2049\end_layout
2050
2051\begin_layout Standard
2052Fortran:
2053\end_layout
2054
2055\begin_layout LyX-Code
2056DOUBLE PRECISION :: bounds_lon(:,:)
2057\end_layout
2058
2059\begin_layout Standard
2060Longitude value of the vertex of the cells.
2061\begin_inset Flex Strong
2062status collapsed
2063
2064\begin_layout Plain Layout
2065nvertex
2066\end_layout
2067
2068\end_inset
2069
2070 attribute must also be defined.
2071 This attribute is optional.
2072\end_layout
2073
2074\begin_layout Subsection*
2075bounds_lon_2d:
2076\emph on
20773D-array of double
2078\end_layout
2079
2080\begin_layout Standard
2081Fortran:
2082\end_layout
2083
2084\begin_layout LyX-Code
2085DOUBLE PRECISION :: bounds_lon(:,:,:)
2086\end_layout
2087
2088\begin_layout Standard
2089Longitude value of the vertex of the cells.
2090\begin_inset Flex Strong
2091status collapsed
2092
2093\begin_layout Plain Layout
2094nvertex
2095\end_layout
2096
2097\end_inset
2098
2099 attribute must also be defined.
2100 This attribute is optional.
2101 This attribute is useful when lonvalue_2d is defined.
2102 Only bounds_lon_1d or bounds_lon_2d can be defined.
2103\end_layout
2104
2105\begin_layout Subsection*
2106bounds_lat_1d:
2107\emph on
21082D-array of double
2109\end_layout
2110
2111\begin_layout Standard
2112Fortran:
2113\end_layout
2114
2115\begin_layout LyX-Code
2116DOUBLE PRECISION :: bounds_lat(:,:)
2117\end_layout
2118
2119\begin_layout Standard
2120Latitude value of the vertex of the cells.
2121\begin_inset Flex Strong
2122status collapsed
2123
2124\begin_layout Plain Layout
2125nvertex
2126\end_layout
2127
2128\end_inset
2129
2130 attribute must also be defined.
2131 This attribute is optional.
2132\end_layout
2133
2134\begin_layout Subsection*
2135bounds_lat_2d:
2136\emph on
21373D-array of double
2138\end_layout
2139
2140\begin_layout Standard
2141Fortran:
2142\end_layout
2143
2144\begin_layout LyX-Code
2145DOUBLE PRECISION :: bounds_lat(:,:)
2146\end_layout
2147
2148\begin_layout Standard
2149Latitude value of the vertex of the cells.
2150\begin_inset Flex Strong
2151status collapsed
2152
2153\begin_layout Plain Layout
2154nvertex
2155\end_layout
2156
2157\end_inset
2158
2159 attribute must also be defined.
2160 This attribute is optional.
2161 This attribute is useful when latvalue_2d is defined.
2162 Only bounds_lat_1d or bounds_lat_2d can be defined.
2163\end_layout
2164
2165\begin_layout Subsection*
2166area:
2167\emph on
21682D-array of double
2169\end_layout
2170
2171\begin_layout Standard
2172Fortran:
2173\end_layout
2174
2175\begin_layout LyX-Code
2176DOUBLE PRECISION :: area(:,:)
2177\end_layout
2178
2179\begin_layout Standard
2180Area of the cells.
2181 The size of the array must be
2182\begin_inset Flex Strong
2183status collapsed
2184
2185\begin_layout Plain Layout
2186ni
2187\begin_inset Formula $\times$
2188\end_inset
2189
2190nj
2191\end_layout
2192
2193\end_inset
2194
2195.
2196 This attribute is optional.
2197\end_layout
2198
2199\begin_layout Subsection*
2200data_dim:
2201\emph on
2202integer
2203\end_layout
2204
2205\begin_layout Standard
2206Fortran:
2207\end_layout
2208
2209\begin_layout LyX-Code
2210INTEGER :: datadim
2211\end_layout
2212
2213\begin_layout Standard
2214Define how a field is stored on memory for the client code.
2215 
2216\begin_inset Flex Strong
2217status collapsed
2218
2219\begin_layout Plain Layout
2220datadim
2221\end_layout
2222
2223\end_inset
2224
2225 value can be
2226\begin_inset Flex Strong
2227status collapsed
2228
2229\begin_layout Plain Layout
22301
2231\end_layout
2232
2233\end_inset
2234
2235 or
2236\begin_inset Flex Strong
2237status collapsed
2238
2239\begin_layout Plain Layout
22402
2241\end_layout
2242
2243\end_inset
2244
2245.
2246 A value of
2247\begin_inset Flex Strong
2248status collapsed
2249
2250\begin_layout Plain Layout
22511
2252\end_layout
2253
2254\end_inset
2255
2256 indicates that the horizontal layer of the field is stored on a 1D array
2257 as a vector of points.
2258 A value of
2259\begin_inset Flex Strong
2260status collapsed
2261
2262\begin_layout Plain Layout
22632
2264\end_layout
2265
2266\end_inset
2267
2268 indicates that the horizontal layer is stored in a 2D array.
2269 This attribute is optional.
2270 The default value is
2271\begin_inset Flex Strong
2272status collapsed
2273
2274\begin_layout Plain Layout
22751
2276\end_layout
2277
2278\end_inset
2279
2280.
2281\end_layout
2282
2283\begin_layout Subsection*
2284data_ibegin:
2285\emph on
2286 integer
2287\end_layout
2288
2289\begin_layout Standard
2290Fortran:
2291\end_layout
2292
2293\begin_layout LyX-Code
2294INTEGER :: data_ibegin
2295\end_layout
2296
2297\begin_layout Standard
2298Define the beginning index of the field data for the first dimension.
2299 This attribute is an offset regarding the local domain, so the value can
2300 be negative.
2301 A negative value indicates that only some valid part of the data will extracted
2302, for example in the case of a ghost cell.
2303 A positive value indicates that the local domain is greater than the data
2304 stored in memory.
2305 A 0-value means that the local domain matches the data in memory.
2306 This attribute is optional and the default value is 0.
2307 Otherwise
2308\begin_inset Flex Strong
2309status collapsed
2310
2311\begin_layout Plain Layout
2312data_ibegin
2313\end_layout
2314
2315\end_inset
2316
2317 and
2318\begin_inset Flex Strong
2319status collapsed
2320
2321\begin_layout Plain Layout
2322data_ni
2323\end_layout
2324
2325\end_inset
2326
2327 must be defined together.
2328\end_layout
2329
2330\begin_layout Subsection*
2331data_ni:
2332\emph on
2333integer
2334\end_layout
2335
2336\begin_layout Standard
2337Fortran:
2338\end_layout
2339
2340\begin_layout LyX-Code
2341INTEGER :: data_ni
2342\end_layout
2343
2344\begin_layout Standard
2345Define the size of the field data for the first dimension.
2346 This attribute is optional and the default value is
2347\begin_inset Flex Strong
2348status collapsed
2349
2350\begin_layout Plain Layout
2351ni
2352\end_layout
2353
2354\end_inset
2355
2356.
2357 Otherwise
2358\begin_inset Flex Strong
2359status collapsed
2360
2361\begin_layout Plain Layout
2362data_ibegin
2363\end_layout
2364
2365\end_inset
2366
2367 and
2368\begin_inset Flex Strong
2369status collapsed
2370
2371\begin_layout Plain Layout
2372data_ni
2373\end_layout
2374
2375\end_inset
2376
2377 must be defined together.
2378\end_layout
2379
2380\begin_layout Subsection*
2381data_jbegin:
2382\emph on
2383integer
2384\end_layout
2385
2386\begin_layout Standard
2387Fortran:
2388\end_layout
2389
2390\begin_layout LyX-Code
2391INTEGER :: data_jbegin
2392\end_layout
2393
2394\begin_layout Standard
2395Define the beginning index of the field data for the second dimension.
2396 This attribute is take account only if
2397\begin_inset Flex Strong
2398status collapsed
2399
2400\begin_layout Plain Layout
2401 data_dim=2
2402\end_layout
2403
2404\end_inset
2405
2406.
2407 This attribute is an offset regarding the local domain, so the value can
2408 be negative.
2409 A negative value indicate that only some valid part of the data will extracted,
2410 for example in case of ghost cell.
2411 A positive value indicate that the local domain is greater than the data
2412 stored in memory.
2413 A 0-value means that the local domain match the data in memory.
2414 This attribute is optional and the default value is
2415\begin_inset Flex Strong
2416status collapsed
2417
2418\begin_layout Plain Layout
24190
2420\end_layout
2421
2422\end_inset
2423
2424.
2425 Otherwise
2426\begin_inset Flex Strong
2427status collapsed
2428
2429\begin_layout Plain Layout
2430data_jbegin
2431\end_layout
2432
2433\end_inset
2434
2435 and
2436\begin_inset Flex Strong
2437status collapsed
2438
2439\begin_layout Plain Layout
2440data_nj
2441\end_layout
2442
2443\end_inset
2444
2445 must be defined together.
2446\end_layout
2447
2448\begin_layout Subsection*
2449data_nj:
2450\emph on
2451integer
2452\end_layout
2453
2454\begin_layout Standard
2455Fortran:
2456\end_layout
2457
2458\begin_layout LyX-Code
2459INTEGER :: data_nj
2460\end_layout
2461
2462\begin_layout Standard
2463Define the size of the field data for the second dimension.
2464 This attribute is taken account only if
2465\begin_inset Flex Strong
2466status collapsed
2467
2468\begin_layout Plain Layout
2469data_dim=2
2470\end_layout
2471
2472\end_inset
2473
2474.
2475 This attribute is optional and the default value is
2476\begin_inset Flex Strong
2477status collapsed
2478
2479\begin_layout Plain Layout
2480nj
2481\end_layout
2482
2483\end_inset
2484
2485.
2486 Otherwise
2487\begin_inset Flex Strong
2488status collapsed
2489
2490\begin_layout Plain Layout
2491data_jbegin
2492\end_layout
2493
2494\end_inset
2495
2496 and
2497\begin_inset Flex Strong
2498status collapsed
2499
2500\begin_layout Plain Layout
2501data_nj
2502\end_layout
2503
2504\end_inset
2505
2506 must be defined together.
2507\end_layout
2508
2509\begin_layout Subsection*
2510data_i_index:
2511\emph on
25121D-array of integer
2513\end_layout
2514
2515\begin_layout Standard
2516Fortran:
2517\end_layout
2518
2519\begin_layout LyX-Code
2520INTEGER :: data_i_index(:)
2521\end_layout
2522
2523\begin_layout Standard
2524In case of a compressed horizontal domain, define the indexation the indexation
2525 of the data for the first dimension.
2526 The size of the array must be
2527\begin_inset Flex Strong
2528status collapsed
2529
2530\begin_layout Plain Layout
2531data_nindex
2532\end_layout
2533
2534\end_inset
2535
2536.
2537 This attribute is optional.
2538\end_layout
2539
2540\begin_layout Subsection*
2541data_j_index:
2542\emph on
25431D-array of integer
2544\end_layout
2545
2546\begin_layout Standard
2547Fortran:
2548\end_layout
2549
2550\begin_layout LyX-Code
2551INTEGER :: data_j_index(:)
2552\end_layout
2553
2554\begin_layout Standard
2555In case of a compressed horizontal domain, define the indexation the indexation
2556 of the data for the second dimension.
2557 This is meaningful only if
2558\begin_inset Flex Strong
2559status collapsed
2560
2561\begin_layout Plain Layout
2562data_dim=2
2563\end_layout
2564
2565\end_inset
2566
2567.
2568 This attribute is optional.
2569\end_layout
2570
2571\begin_layout Subsection*
2572mask_1d:
2573\emph on
25741D-array of bool
2575\end_layout
2576
2577\begin_layout Standard
2578Fortran:
2579\end_layout
2580
2581\begin_layout LyX-Code
2582LOGICAL :: mask(:)
2583\end_layout
2584
2585\begin_layout Standard
2586Define the 1-dimension mask of the local domain.
2587 The attribute is optional.
2588 By default, none value is masked.
2589 The masked value will be replaced by the value of the field attribute
2590\begin_inset Flex Strong
2591status collapsed
2592
2593\begin_layout Plain Layout
2594default_value
2595\end_layout
2596
2597\end_inset
2598
2599 in the output file.
2600 This value is useful in case a field is stored linearly in memory.
2601 This attribute is optional.
2602\end_layout
2603
2604\begin_layout Subsection*
2605mask_2d:
2606\emph on
26072D-array of bool
2608\end_layout
2609
2610\begin_layout Standard
2611Fortran:
2612\end_layout
2613
2614\begin_layout LyX-Code
2615LOGICAL :: mask(:,:)
2616\end_layout
2617
2618\begin_layout Standard
2619Define the mask of the local domain.
2620 The attribute is optional.
2621 By default, none value is masked.
2622 The masked value will be replaced by the value of the field attribute
2623\begin_inset Flex Strong
2624status collapsed
2625
2626\begin_layout Plain Layout
2627default_value
2628\end_layout
2629
2630\end_inset
2631
2632 in the output file.
2633 Only mask_2d or mask_1d can be defined.
2634\end_layout
2635
2636\begin_layout Subsection*
2637domain_ref: string
2638\end_layout
2639
2640\begin_layout Standard
2641Fortran:
2642\end_layout
2643
2644\begin_layout LyX-Code
2645CHARACTER(LEN=*) :: domain_ref
2646\end_layout
2647
2648\begin_layout Standard
2649Define the reference of the domain.
2650 All attributes are inherited from the referenced domain with the classic
2651 inheritance mechanism.
2652 The value assigned to the referenced domain is transmitted to to current
2653 domain.
2654 This attribute is optional.
2655\end_layout
2656
2657\begin_layout Subsection*
2658i_index:
2659\begin_inset Flex Emph
2660status collapsed
2661
2662\begin_layout Plain Layout
26631D-array of double
2664\end_layout
2665
2666\end_inset
2667
2668
2669\end_layout
2670
2671\begin_layout Standard
2672Fortran:
2673\end_layout
2674
2675\begin_layout LyX-Code
2676DOUBLE PRECISION :: i_index(:)
2677\end_layout
2678
2679\begin_layout Standard
2680Define the global index of the first dimension of domain which the local
2681 domain holds.
2682 This attribute is optional and by default, the size of the array is equal
2683 to
2684\begin_inset Flex Strong
2685status collapsed
2686
2687\begin_layout Plain Layout
2688ni*nj
2689\end_layout
2690
2691\end_inset
2692
2693.
2694\end_layout
2695
2696\begin_layout Subsection*
2697j_index:
2698\begin_inset Flex Emph
2699status collapsed
2700
2701\begin_layout Plain Layout
27021D-array of double
2703\end_layout
2704
2705\end_inset
2706
2707
2708\end_layout
2709
2710\begin_layout Standard
2711Fortran:
2712\end_layout
2713
2714\begin_layout LyX-Code
2715DOUBLE PRECISION :: j_index(:)
2716\end_layout
2717
2718\begin_layout Standard
2719Define the global index of the second dimension of domain which the local
2720 domain holds.
2721 This attribute is optional and by default, the size of the array is equal
2722 to
2723\begin_inset Flex Strong
2724status collapsed
2725
2726\begin_layout Plain Layout
2727ni*nj
2728\end_layout
2729
2730\end_inset
2731
2732.
2733\end_layout
2734
2735\begin_layout Section
2736Grid attribute reference
2737\end_layout
2738
2739\begin_layout Subsection*
2740name: string
2741\end_layout
2742
2743\begin_layout Standard
2744Fortran:
2745\end_layout
2746
2747\begin_layout LyX-Code
2748CHARACTER(LEN=*) :: name
2749\end_layout
2750
2751\begin_layout Standard
2752Define the name of the grid.
2753 This attribute is actually not used internally.
2754 Optional attribute.
2755\end_layout
2756
2757\begin_layout Subsection*
2758description: string
2759\end_layout
2760
2761\begin_layout Standard
2762Fortran:
2763\end_layout
2764
2765\begin_layout LyX-Code
2766CHARACTER(LEN=*) :: description
2767\end_layout
2768
2769\begin_layout Standard
2770Define the description of the grid.
2771 This attribute is optional.
2772\end_layout
2773
2774\begin_layout Subsection*
2775mask_1d:
2776\emph on
27771D-array of bool
2778\end_layout
2779
2780\begin_layout Standard
2781Fortran:
2782\end_layout
2783
2784\begin_layout LyX-Code
2785LOGICAL :: mask_1d(:)
2786\end_layout
2787
2788\begin_layout Standard
2789Define the mask of the local 1-dimension grid.
2790 Masked value will be replaced by the value of the field attribute
2791\begin_inset Flex Strong
2792status collapsed
2793
2794\begin_layout Plain Layout
2795default_value
2796\end_layout
2797
2798\end_inset
2799
2800 in the output file.
2801 This attribute is optional.
2802 By default, none value is masked.
2803\end_layout
2804
2805\begin_layout Subsection*
2806mask_2d:
2807\emph on
28082D-array of bool
2809\end_layout
2810
2811\begin_layout Standard
2812Fortran:
2813\end_layout
2814
2815\begin_layout LyX-Code
2816LOGICAL :: mask_2d(:,:)
2817\end_layout
2818
2819\begin_layout Standard
2820Define the mask of the local 2-dimension grid.
2821 Masked value will be replaced by the value of the field attribute
2822\begin_inset Flex Strong
2823status collapsed
2824
2825\begin_layout Plain Layout
2826default_value
2827\end_layout
2828
2829\end_inset
2830
2831 in the output file.
2832 This attribute is optional.
2833 By default, none value is masked.
2834\end_layout
2835
2836\begin_layout Subsection*
2837mask_3d:
2838\emph on
28393D-array of bool
2840\end_layout
2841
2842\begin_layout Standard
2843Fortran:
2844\end_layout
2845
2846\begin_layout LyX-Code
2847LOGICAL :: mask_3d(:,:,:)
2848\end_layout
2849
2850\begin_layout Standard
2851Define the mask of the local 3-dimension grid.
2852 Masked value will be replaced by the value of the field attribute
2853\begin_inset Flex Strong
2854status collapsed
2855
2856\begin_layout Plain Layout
2857default_value
2858\end_layout
2859
2860\end_inset
2861
2862 in the output file.
2863 This attribute is optional.
2864 By default, none value is masked.
2865 Only one mask can be defined.
2866\end_layout
2867
2868\begin_layout Section
2869Field attribute reference
2870\end_layout
2871
2872\begin_layout Subsection*
2873name:
2874\emph on
2875string
2876\end_layout
2877
2878\begin_layout Standard
2879Fortran:
2880\end_layout
2881
2882\begin_layout LyX-Code
2883CHARACTER(LEN=*) :: name
2884\end_layout
2885
2886\begin_layout Standard
2887Define the
2888\begin_inset Flex Strong
2889status collapsed
2890
2891\begin_layout Plain Layout
2892name
2893\end_layout
2894
2895\end_inset
2896
2897 of the field as it will appear in an output file.
2898 This attribute is optional.
2899 If not present, the identifier
2900\begin_inset Flex Strong
2901status collapsed
2902
2903\begin_layout Plain Layout
2904id
2905\end_layout
2906
2907\end_inset
2908
2909 will be substituted.
2910\end_layout
2911
2912\begin_layout Subsection*
2913standard_name:
2914\emph on
2915string
2916\end_layout
2917
2918\begin_layout Standard
2919Fortran:
2920\end_layout
2921
2922\begin_layout LyX-Code
2923CHARACTER(LEN=*) :: standard_name
2924\end_layout
2925
2926\begin_layout Standard
2927Define the
2928\begin_inset Flex Strong
2929status collapsed
2930
2931\begin_layout Plain Layout
2932standard_name
2933\end_layout
2934
2935\end_inset
2936
2937 attribute as it will appear in the metadata of an output file.
2938 This attribute is optional.
2939\end_layout
2940
2941\begin_layout Subsection*
2942long_name:
2943\emph on
2944string
2945\end_layout
2946
2947\begin_layout Standard
2948Fortran:
2949\end_layout
2950
2951\begin_layout LyX-Code
2952CHARACTER(LEN=*) :: long_name
2953\end_layout
2954
2955\begin_layout Standard
2956Define the
2957\begin_inset Flex Strong
2958status collapsed
2959
2960\begin_layout Plain Layout
2961long_name
2962\end_layout
2963
2964\end_inset
2965
2966 attribute as it will appear in the metadata of an output file.
2967 This attribute is optional.
2968\end_layout
2969
2970\begin_layout Subsection*
2971unit:
2972\emph on
2973string
2974\end_layout
2975
2976\begin_layout Standard
2977Fortran:
2978\end_layout
2979
2980\begin_layout LyX-Code
2981CHARACTER(LEN=*) :: unit
2982\end_layout
2983
2984\begin_layout Standard
2985Define the
2986\begin_inset Flex Strong
2987status collapsed
2988
2989\begin_layout Plain Layout
2990unit
2991\end_layout
2992
2993\end_inset
2994
2995 of the field.
2996 This attribute is optional.
2997\end_layout
2998
2999\begin_layout Subsection*
3000operation: enumeration
3001\emph on
3002 { once, instant, average, maximum, minimum, accumulate }
3003\end_layout
3004
3005\begin_layout Standard
3006Fortran:
3007\end_layout
3008
3009\begin_layout LyX-Code
3010CHARACTER(LEN=*) :: operation
3011\end_layout
3012
3013\begin_layout Standard
3014Define the temporal operation applied on the field.
3015 This attribute is optional, by default no operation is applied.
3016\end_layout
3017
3018\begin_layout Subsection*
3019freq_op:
3020\emph on
3021duration
3022\end_layout
3023
3024\begin_layout Standard
3025Fortran:
3026\end_layout
3027
3028\begin_layout LyX-Code
3029TYPE(xios_duration) :: freq_op
3030\end_layout
3031
3032\begin_layout Standard
3033Define the frequency of the sampling for the temporal operation, so a field
3034 value will be used for temporal averaging every
3035\begin_inset Flex Strong
3036status collapsed
3037
3038\begin_layout Plain Layout
3039freq_op
3040\end_layout
3041
3042\end_inset
3043
3044 time step.
3045 It is very useful for sub-processes called at different frequency in a
3046 model.
3047 This attribute is optional, the default value is
3048\begin_inset Flex Strong
3049status collapsed
3050
3051\begin_layout Plain Layout
30521ts
3053\end_layout
3054
3055\end_inset
3056
3057(1 time step).
3058\end_layout
3059
3060\begin_layout Subsection*
3061freq_offset:
3062\emph on
3063duration
3064\end_layout
3065
3066\begin_layout Standard
3067Fortran:
3068\end_layout
3069
3070\begin_layout LyX-Code
3071TYPE(xios_duration) :: freq_offset
3072\end_layout
3073
3074\begin_layout Standard
3075Define the offset when
3076\begin_inset Flex Strong
3077status collapsed
3078
3079\begin_layout Plain Layout
3080freq_op
3081\end_layout
3082
3083\end_inset
3084
3085 is defined.
3086 This attribute is optional, the default value is
3087\begin_inset Flex Strong
3088status collapsed
3089
3090\begin_layout Plain Layout
30910ts
3092\end_layout
3093
3094\end_inset
3095
3096(0 time step).
3097\end_layout
3098
3099\begin_layout Standard
3100\begin_inset Formula $0\leq freq\_offset<freq\_op$
3101\end_inset
3102
3103
3104\end_layout
3105
3106\begin_layout Subsection*
3107level:
3108\emph on
3109integer
3110\end_layout
3111
3112\begin_layout Standard
3113Fortran:
3114\end_layout
3115
3116\begin_layout LyX-Code
3117INTEGER :: level
3118\end_layout
3119
3120\begin_layout Standard
3121Define the level of output of the field.
3122 A field will be output only if the file attribute
3123\begin_inset Flex Strong
3124status collapsed
3125
3126\begin_layout Plain Layout
3127 output_level
3128\begin_inset Formula $\geq$
3129\end_inset
3130
3131level
3132\end_layout
3133
3134\end_inset
3135
3136.
3137 This attribute is optional, the default value is
3138\begin_inset Flex Strong
3139status collapsed
3140
3141\begin_layout Plain Layout
31420
3143\end_layout
3144
3145\end_inset
3146
3147.
3148\end_layout
3149
3150\begin_layout Subsection*
3151prec:
3152\emph on
3153integer
3154\end_layout
3155
3156\begin_layout Standard
3157Fortran:
3158\end_layout
3159
3160\begin_layout LyX-Code
3161INTEGER :: prec
3162\end_layout
3163
3164\begin_layout Standard
3165Define the precision in byte of a field in an output file.
3166 Available value are: 2 (integer), 4 (float single precision) and 8 (float
3167 double precision).
3168\end_layout
3169
3170\begin_layout Subsection*
3171enabled:
3172\emph on
3173bool
3174\end_layout
3175
3176\begin_layout Standard
3177Fortran:
3178\end_layout
3179
3180\begin_layout LyX-Code
3181LOGICAL :: enabled
3182\end_layout
3183
3184\begin_layout Standard
3185Define if a field must be output or not.
3186 This attribute is optional, the default value is
3187\begin_inset Flex Strong
3188status collapsed
3189
3190\begin_layout Plain Layout
3191true
3192\end_layout
3193
3194\end_inset
3195
3196.
3197\end_layout
3198
3199\begin_layout Subsection*
3200read_access:
3201\emph on
3202bool
3203\end_layout
3204
3205\begin_layout Standard
3206Fortran:
3207\end_layout
3208
3209\begin_layout LyX-Code
3210LOGICAL :: read_access
3211\end_layout
3212
3213\begin_layout Standard
3214Define whether a field can be read from the model or not.
3215 This attribute is optional, the default value is
3216\begin_inset Flex Strong
3217status collapsed
3218
3219\begin_layout Plain Layout
3220false
3221\end_layout
3222
3223\end_inset
3224
3225.
3226 Note that for fields belonging to a file in
3227\series bold
3228\emph on
3229read
3230\series default
3231\emph default
3232 
3233\series bold
3234mode
3235\series default
3236, this attribute is always
3237\series bold
3238true
3239\series default
3240.
3241\end_layout
3242
3243\begin_layout Subsection*
3244field_ref:
3245\emph on
3246string
3247\end_layout
3248
3249\begin_layout Standard
3250Fortran:
3251\end_layout
3252
3253\begin_layout LyX-Code
3254CHARACTER(LEN=*) :: field_ref
3255\end_layout
3256
3257\begin_layout Standard
3258Define a field reference.
3259 All attributes are inherited from the referenced field after the classical
3260 inheritance mechanism.
3261 The value assigned to the referenced field is transmitted to to current
3262 field to perform temporal operation.
3263 This attribute is optional.
3264\end_layout
3265
3266\begin_layout Subsection*
3267grid_ref:
3268\emph on
3269string
3270\end_layout
3271
3272\begin_layout Standard
3273Fortran:
3274\end_layout
3275
3276\begin_layout LyX-Code
3277CHARACTER(LEN=*) :: grid_ref
3278\end_layout
3279
3280\begin_layout Standard
3281Define on which grid the current field is defined.
3282 This attribute is optional, if missing, domain_ref and axis_ref must be
3283 defining.
3284\end_layout
3285
3286\begin_layout Subsection*
3287domain_ref:
3288\emph on
3289string
3290\end_layout
3291
3292\begin_layout Standard
3293Fortran:
3294\end_layout
3295
3296\begin_layout LyX-Code
3297CHARACTER(LEN=*) :: domain_ref
3298\end_layout
3299
3300\begin_layout Standard
3301Define on which horizontal domain the current field is defined.
3302 This attribute is optional, but if this attribute is defined,
3303\begin_inset Flex Strong
3304status collapsed
3305
3306\begin_layout Plain Layout
3307grid_ref
3308\end_layout
3309
3310\end_inset
3311
3312 must not be.
3313\end_layout
3314
3315\begin_layout Subsection*
3316axis_ref:
3317\emph on
3318string
3319\end_layout
3320
3321\begin_layout Standard
3322Fortran:
3323\end_layout
3324
3325\begin_layout LyX-Code
3326CHARACTER(LEN=*) :: axis_ref
3327\end_layout
3328
3329\begin_layout Standard
3330Define on which vertical axis the current field is defined.
3331 This attribute is optional, but if this attribute is defined,
3332\begin_inset Flex Strong
3333status collapsed
3334
3335\begin_layout Plain Layout
3336domain_ref
3337\end_layout
3338
3339\end_inset
3340
3341 must be too and
3342\begin_inset Flex Strong
3343status collapsed
3344
3345\begin_layout Plain Layout
3346grid_ref
3347\end_layout
3348
3349\end_inset
3350
3351 must not.
3352\end_layout
3353
3354\begin_layout Subsection*
3355grid_path:
3356\emph on
3357string
3358\end_layout
3359
3360\begin_layout Standard
3361Fortran:
3362\end_layout
3363
3364\begin_layout LyX-Code
3365CHARACTER(LEN=*) :: grid_path
3366\end_layout
3367
3368\begin_layout Standard
3369Define the way operations passing from a grid to others.
3370 This attribute is optional.
3371\end_layout
3372
3373\begin_layout Subsection*
3374default_value:
3375\emph on
3376double
3377\end_layout
3378
3379\begin_layout Standard
3380Fortran:
3381\end_layout
3382
3383\begin_layout LyX-Code
3384DOUBLE PRECISION :: default_value
3385\end_layout
3386
3387\begin_layout Standard
3388Define the value which should be used in place of the missing data of a
3389 field.
3390 This attribute is optional.
3391 If no value was defined, the missing data will be replaced by uninitialized
3392 values which can lead to undefined behaviors.
3393\end_layout
3394
3395\begin_layout Subsection*
3396valid_min:
3397\emph on
3398double
3399\end_layout
3400
3401\begin_layout Standard
3402Fortran:
3403\end_layout
3404
3405\begin_layout LyX-Code
3406DOUBLE PRECISION :: valid_min
3407\end_layout
3408
3409\begin_layout Standard
3410All field values below
3411\begin_inset Flex Strong
3412status collapsed
3413
3414\begin_layout Plain Layout
3415valid_min
3416\end_layout
3417
3418\end_inset
3419
3420 attribute value are set to missing value.
3421\end_layout
3422
3423\begin_layout Subsection*
3424valid_max:
3425\emph on
3426double
3427\end_layout
3428
3429\begin_layout Standard
3430Fortran:
3431\end_layout
3432
3433\begin_layout LyX-Code
3434DOUBLE PRECISION :: valid_max
3435\end_layout
3436
3437\begin_layout Standard
3438All field values above
3439\begin_inset Flex Strong
3440status collapsed
3441
3442\begin_layout Plain Layout
3443valid_max
3444\end_layout
3445
3446\end_inset
3447
3448 attribute value are set to missing value.
3449\end_layout
3450
3451\begin_layout Subsection*
3452detect_missing_value:
3453\emph on
3454bool
3455\end_layout
3456
3457\begin_layout Standard
3458Fortran:
3459\end_layout
3460
3461\begin_layout LyX-Code
3462LOGICAL: detect_missing_value
3463\end_layout
3464
3465\begin_layout Standard
3466When XIOS detect a default value in a field, it does not include the value
3467 in the statistic of the operation, like averaging, minimum, maximum...
3468\end_layout
3469
3470\begin_layout Subsection*
3471add_offset:
3472\emph on
3473double
3474\end_layout
3475
3476\begin_layout Standard
3477Fortran:
3478\end_layout
3479
3480\begin_layout LyX-Code
3481DOUBLE PRECISION: add_offset
3482\end_layout
3483
3484\begin_layout Standard
3485Set the
3486\begin_inset Flex Strong
3487status collapsed
3488
3489\begin_layout Plain Layout
3490add_offset
3491\end_layout
3492
3493\end_inset
3494
3495 metadata CF attribute in the output file.
3496 In output, the
3497\begin_inset Flex Strong
3498status collapsed
3499
3500\begin_layout Plain Layout
3501add_offset
3502\end_layout
3503
3504\end_inset
3505
3506 value is subtracted to the field values.
3507\end_layout
3508
3509\begin_layout Subsection*
3510scale_factor:
3511\emph on
3512double
3513\end_layout
3514
3515\begin_layout Standard
3516Fortran:
3517\end_layout
3518
3519\begin_layout LyX-Code
3520DOUBLE PRECISION: scale_factor
3521\end_layout
3522
3523\begin_layout Standard
3524Set the
3525\begin_inset Flex Strong
3526status collapsed
3527
3528\begin_layout Plain Layout
3529scale_factor
3530\end_layout
3531
3532\end_inset
3533
3534 metadata CF attribute in the output file.
3535 In output, the field values are divided by the
3536\begin_inset Flex Strong
3537status collapsed
3538
3539\begin_layout Plain Layout
3540scale_factor
3541\end_layout
3542
3543\end_inset
3544
3545 value.
3546\end_layout
3547
3548\begin_layout Subsection*
3549compression_level:
3550\emph on
3551integer
3552\end_layout
3553
3554\begin_layout Standard
3555Fortran:
3556\end_layout
3557
3558\begin_layout LyX-Code
3559INTEGER :: compression_level
3560\end_layout
3561
3562\begin_layout Standard
3563Define whether the field should be compressed using NetCDF-4 built-in compressio
3564n.
3565 The compression level must range from 0 to 9.
3566 An higher compression level means a better compression at the cost of using
3567 more processing power.
3568 This attribute is optional, the default value is inherited from the file
3569 attribute
3570\series bold
3571compression_level
3572\series default
3573.
3574\end_layout
3575
3576\begin_layout Subsection*
3577indexed_output:
3578\emph on
3579bool
3580\end_layout
3581
3582\begin_layout Standard
3583Fortran:
3584\end_layout
3585
3586\begin_layout LyX-Code
3587LOGICAL :: indexed_output
3588\end_layout
3589
3590\begin_layout Standard
3591Define whether the field data must be outputted as an indexed grid instead
3592 of a full grid whenever possible.
3593 This attribute is optional, the default value is
3594\series bold
3595\emph on
3596false
3597\series default
3598\emph default
3599.
3600\end_layout
3601
3602\begin_layout Subsection*
3603ts_enabled:
3604\emph on
3605bool
3606\end_layout
3607
3608\begin_layout Standard
3609Fortran:
3610\end_layout
3611
3612\begin_layout LyX-Code
3613LOGICAL :: ts_enabled
3614\end_layout
3615
3616\begin_layout Standard
3617Define whether the field can be outputted as a timeserie if requested.
3618 This attribute is optional, the default value is
3619\series bold
3620\emph on
3621false
3622\series default
3623\emph default
3624.
3625\end_layout
3626
3627\begin_layout Subsection*
3628ts_split_freq:
3629\emph on
3630duration
3631\end_layout
3632
3633\begin_layout Standard
3634Fortran:
3635\end_layout
3636
3637\begin_layout LyX-Code
3638TYPE(xios_duration) :: ts_split_freq
3639\end_layout
3640
3641\begin_layout Standard
3642Define the splitting frequency that should be used for the timeserie if
3643 it has been requested.
3644 This attribute is optional, by default this value is inherited from the
3645 file
3646\series bold
3647split_freq
3648\series default
3649.
3650\end_layout
3651
3652\begin_layout Section
3653Variable attribute reference
3654\end_layout
3655
3656\begin_layout Subsection*
3657name:
3658\emph on
3659string
3660\end_layout
3661
3662\begin_layout Standard
3663Fortran:
3664\end_layout
3665
3666\begin_layout LyX-Code
3667CHARACTER(LEN=*) :: name
3668\end_layout
3669
3670\begin_layout Standard
3671Define the
3672\begin_inset Flex Strong
3673status collapsed
3674
3675\begin_layout Plain Layout
3676name
3677\end_layout
3678
3679\end_inset
3680
3681 of the variable as it will appear in an output file.
3682 This attribute is optional.
3683 If not present, the
3684\begin_inset Flex Strong
3685status collapsed
3686
3687\begin_layout Plain Layout
3688id
3689\end_layout
3690
3691\end_inset
3692
3693 will be used instead.
3694\end_layout
3695
3696\begin_layout Subsection*
3697type: enumeration { bool, int, int32, int16, int64, float, double, string
3698 }
3699\end_layout
3700
3701\begin_layout Standard
3702Fortran:
3703\end_layout
3704
3705\begin_layout LyX-Code
3706CHARACTER(LEN=*) :: type
3707\end_layout
3708
3709\begin_layout Standard
3710Define the
3711\begin_inset Flex Strong
3712status collapsed
3713
3714\begin_layout Plain Layout
3715type
3716\end_layout
3717
3718\end_inset
3719
3720 of the variable.
3721 Note that the
3722\series bold
3723\emph on
3724int
3725\series default
3726\emph default
3727 type is a synonym for
3728\series bold
3729\emph on
3730int32
3731\series default
3732\emph default
3733.
3734 This attribute is mandatory.
3735\end_layout
3736
3737\begin_layout Section
3738File attribute reference
3739\end_layout
3740
3741\begin_layout Subsection*
3742name:
3743\emph on
3744string
3745\end_layout
3746
3747\begin_layout Standard
3748Fortran:
3749\end_layout
3750
3751\begin_layout LyX-Code
3752CHARACTER(LEN=*) :: name
3753\end_layout
3754
3755\begin_layout Standard
3756Define the name of the file.
3757 This attribute is mandatory.
3758\end_layout
3759
3760\begin_layout Subsection*
3761description:
3762\emph on
3763string
3764\end_layout
3765
3766\begin_layout Standard
3767Fortran:
3768\end_layout
3769
3770\begin_layout LyX-Code
3771CHARACTER(LEN=*) :: description
3772\end_layout
3773
3774\begin_layout Standard
3775Define the description of the file.
3776 This attribute is optional.
3777\end_layout
3778
3779\begin_layout Subsection*
3780name_suffix:
3781\emph on
3782string
3783\end_layout
3784
3785\begin_layout Standard
3786Fortran:
3787\end_layout
3788
3789\begin_layout LyX-Code
3790CHARACTER(LEN=*) :: name_suffix
3791\end_layout
3792
3793\begin_layout Standard
3794Define a suffix to add to the name of the file.
3795 This attribute is optional.
3796\end_layout
3797
3798\begin_layout Subsection*
3799min_digits:
3800\emph on
3801integer
3802\end_layout
3803
3804\begin_layout Standard
3805Fortran:
3806\end_layout
3807
3808\begin_layout LyX-Code
3809INTEGER :: min_digits
3810\end_layout
3811
3812\begin_layout Standard
3813For multiple_file, define the minimum digits composing the suffix defining
3814 the rank of the server, which will be happened to the name of the file.
3815 This attribute is optional and the default value is
3816\begin_inset Flex Strong
3817status collapsed
3818
3819\begin_layout Plain Layout
38200
3821\end_layout
3822
3823\end_inset
3824
3825.
3826\end_layout
3827
3828\begin_layout Subsection*
3829output_freq:
3830\emph on
3831duration
3832\end_layout
3833
3834\begin_layout Standard
3835Fortran:
3836\end_layout
3837
3838\begin_layout LyX-Code
3839TYPE(xios_duration) :: output_freq
3840\end_layout
3841
3842\begin_layout Standard
3843Define the output frequency for the current file.
3844 This attribute is mandatory.
3845\end_layout
3846
3847\begin_layout Subsection*
3848output_level:
3849\emph on
3850integer
3851\end_layout
3852
3853\begin_layout Standard
3854Fortran:
3855\end_layout
3856
3857\begin_layout LyX-Code
3858INTEGER :: output_level
3859\end_layout
3860
3861\begin_layout Standard
3862Define an output level for the field defining inside the current file.
3863 Field is output only if the field attribute
3864\begin_inset Formula $level\leq output\_level$
3865\end_inset
3866
3867.
3868\end_layout
3869
3870\begin_layout Subsection*
3871sync_freq:
3872\emph on
3873duration
3874\end_layout
3875
3876\begin_layout Standard
3877Fortran:
3878\end_layout
3879
3880\begin_layout LyX-Code
3881TYPE(xios_duration) :: sync_freq
3882\end_layout
3883
3884\begin_layout Standard
3885Define the frequency for flushing the current file onto disk.
3886 It may result bad performance but data are wrote even if the file will
3887 not be closed.
3888 This attribute is optional.
3889\end_layout
3890
3891\begin_layout Subsection*
3892split_freq:
3893\emph on
3894duration
3895\end_layout
3896
3897\begin_layout Standard
3898Fortran:
3899\end_layout
3900
3901\begin_layout LyX-Code
3902TYPE(xios_duration) :: split_freq
3903\end_layout
3904
3905\begin_layout Standard
3906Define the time frequency for splitting the current file.
3907 In that case, the start and end dates are added to the file
3908\series bold
3909name
3910\series default
3911 (see
3912\begin_inset Flex Emph
3913status collapsed
3914
3915\begin_layout Plain Layout
3916
3917\series bold
3918\emph on
3919split_freq_format
3920\end_layout
3921
3922\end_inset
3923
3924 attribute).
3925 This attribute is optional, by default no splitting is done.
3926\end_layout
3927
3928\begin_layout Subsection*
3929split_freq_format:
3930\emph on
3931string
3932\end_layout
3933
3934\begin_layout Standard
3935Fortran:
3936\end_layout
3937
3938\begin_layout LyX-Code
3939CHARACTER(LEN=*) :: split_freq_format
3940\end_layout
3941
3942\begin_layout Standard
3943Define the format of the split date suffixed to the file.
3944 Can contain any character,
3945\emph on
3946
3947\begin_inset Flex Code
3948status collapsed
3949
3950\begin_layout Plain Layout
3951%y
3952\end_layout
3953
3954\end_inset
3955
3956
3957\emph default
3958 will be replaced by the year (4 characters),
3959\begin_inset Flex Code
3960status collapsed
3961
3962\begin_layout Plain Layout
3963%mo
3964\end_layout
3965
3966\end_inset
3967
3968 by the month (2 char),
3969\begin_inset Flex Code
3970status collapsed
3971
3972\begin_layout Plain Layout
3973%d
3974\end_layout
3975
3976\end_inset
3977
3978 by the day (2 char),
3979\begin_inset Flex Code
3980status collapsed
3981
3982\begin_layout Plain Layout
3983%h
3984\end_layout
3985
3986\end_inset
3987
3988 by the hour (2 char),
3989\begin_inset Flex Code
3990status collapsed
3991
3992\begin_layout Plain Layout
3993%mi
3994\end_layout
3995
3996\end_inset
3997
3998 by the minute (2 char),
3999\begin_inset Flex Code
4000status collapsed
4001
4002\begin_layout Plain Layout
4003%s
4004\end_layout
4005
4006\end_inset
4007
4008 by the second (2 char),
4009\begin_inset Flex Code
4010status collapsed
4011
4012\begin_layout Plain Layout
4013%S
4014\end_layout
4015
4016\end_inset
4017
4018 by the number of seconds since the time origin and
4019\begin_inset Flex Code
4020status collapsed
4021
4022\begin_layout Plain Layout
4023%D
4024\end_layout
4025
4026\end_inset
4027
4028 by the number of full days since the time origin.
4029 This attribute is optional and the default behavior is to create a suffix
4030 with the date until the smaller non zero unit.
4031 For example, in one day split frequency, the hour, minute and second will
4032 not appear in the suffix, only year, month and day.
4033\end_layout
4034
4035\begin_layout Subsection*
4036enabled:
4037\emph on
4038bool
4039\end_layout
4040
4041\begin_layout Standard
4042Fortran:
4043\end_layout
4044
4045\begin_layout LyX-Code
4046LOGICAL :: enabled
4047\end_layout
4048
4049\begin_layout Standard
4050Define if a file must be written/read or not.
4051 This attribute is optional, the default value is
4052\begin_inset Flex Strong
4053status collapsed
4054
4055\begin_layout Plain Layout
4056true
4057\end_layout
4058
4059\end_inset
4060
4061.
4062\end_layout
4063
4064\begin_layout Subsection*
4065mode:
4066\emph on
4067enumeration { read, write }
4068\end_layout
4069
4070\begin_layout Standard
4071Fortran:
4072\end_layout
4073
4074\begin_layout LyX-Code
4075CHARACTER(LEN=*) :: mode
4076\end_layout
4077
4078\begin_layout Standard
4079Define whether the file will be read or written.
4080 This attribute is optional, the default value is
4081\begin_inset Flex Strong
4082status collapsed
4083
4084\begin_layout Plain Layout
4085write
4086\end_layout
4087
4088\end_inset
4089
4090.
4091\end_layout
4092
4093\begin_layout Subsection*
4094type:
4095\emph on
4096enumeration { one_file, multiple_file }
4097\end_layout
4098
4099\begin_layout Standard
4100Fortran:
4101\end_layout
4102
4103\begin_layout LyX-Code
4104CHARACTER(LEN=*) :: type
4105\end_layout
4106
4107\begin_layout Standard
4108Define the type of the file:
4109\begin_inset Flex Strong
4110status collapsed
4111
4112\begin_layout Plain Layout
4113
4114\emph on
4115multiple_file
4116\end_layout
4117
4118\end_inset
4119
4120: one file by server using sequential netcdf writing,
4121\begin_inset Flex Strong
4122status collapsed
4123
4124\begin_layout Plain Layout
4125
4126\emph on
4127one_file
4128\end_layout
4129
4130\end_inset
4131
4132: one single global file is wrote using netcdf4 parallel access.
4133 This attribute is mandatory.
4134\end_layout
4135
4136\begin_layout Subsection*
4137format:
4138\emph on
4139enumeration { netcdf4, netcdf4_classic }
4140\end_layout
4141
4142\begin_layout Standard
4143Fortran:
4144\end_layout
4145
4146\begin_layout LyX-Code
4147CHARACTER(LEN=*) :: type
4148\end_layout
4149
4150\begin_layout Standard
4151Define the format of the file:
4152\begin_inset Flex Strong
4153status collapsed
4154
4155\begin_layout Plain Layout
4156
4157\emph on
4158netcdf4
4159\end_layout
4160
4161\end_inset
4162
4163: the HDF5 format will be used,
4164\begin_inset Flex Strong
4165status collapsed
4166
4167\begin_layout Plain Layout
4168
4169\emph on
4170netcdf4
4171\emph default
4172_
4173\emph on
4174classic
4175\end_layout
4176
4177\end_inset
4178
4179: the classic NetCDF format will be used.
4180 The attribute is optional, the default value is
4181\series bold
4182\emph on
4183netcdf4
4184\series default
4185\emph default
4186.
4187 Note that the
4188\series bold
4189\emph on
4190netcdf4
4191\emph default
4192_
4193\emph on
4194classic
4195\series default
4196\emph default
4197 format can be used with the attribute
4198\series bold
4199type
4200\series default
4201 set to
4202\series bold
4203\emph on
4204one_file
4205\series default
4206\emph default
4207 only if the NetCDF4 library was compiled with Parallel NetCDF support (--enable
4208-pnetcdf).
4209\end_layout
4210
4211\begin_layout Subsection*
4212par_access:
4213\emph on
4214enumeration { collective, independent }
4215\end_layout
4216
4217\begin_layout Standard
4218Fortran:
4219\end_layout
4220
4221\begin_layout LyX-Code
4222CHARACTER(LEN=*) :: par_access
4223\end_layout
4224
4225\begin_layout Standard
4226For parallel writing, define which type of MPI calls will be used.
4227 This attribute is optional, the default value is
4228\begin_inset Flex Strong
4229status collapsed
4230
4231\begin_layout Plain Layout
4232
4233\emph on
4234collective
4235\end_layout
4236
4237\end_inset
4238
4239.
4240\end_layout
4241
4242\begin_layout Subsection*
4243append:
4244\emph on
4245bool
4246\end_layout
4247
4248\begin_layout Standard
4249Fortran:
4250\end_layout
4251
4252\begin_layout LyX-Code
4253LOGICAL :: append
4254\end_layout
4255
4256\begin_layout Standard
4257Define whether the output data is to be appended at the end of the file
4258 if it already exists or if the existing file is to be overwritten.
4259 This attribute is optional, the default value is
4260\begin_inset Flex Strong
4261status collapsed
4262
4263\begin_layout Plain Layout
4264
4265\emph on
4266false
4267\end_layout
4268
4269\end_inset
4270
4271.
4272\end_layout
4273
4274\begin_layout Subsection*
4275compression_level:
4276\emph on
4277integer
4278\end_layout
4279
4280\begin_layout Standard
4281Fortran:
4282\end_layout
4283
4284\begin_layout LyX-Code
4285INTEGER :: compression_level
4286\end_layout
4287
4288\begin_layout Standard
4289Define whether the fields should be compressed using NetCDF-4 built-in compressi
4290on by default.
4291 The compression level must range from 0 to 9.
4292 An higher compression level means a better compression at the cost of using
4293 more processing power.
4294 This attribute is optional, the default value is
4295\begin_inset Flex Strong
4296status collapsed
4297
4298\begin_layout Plain Layout
4299
4300\emph on
43010
4302\end_layout
4303
4304\end_inset
4305
4306 (no compression).
4307\end_layout
4308
4309\begin_layout Subsection*
4310time_counter:
4311\emph on
4312enumeration { centered, instant, record, none }
4313\end_layout
4314
4315\begin_layout Standard
4316Fortran:
4317\end_layout
4318
4319\begin_layout LyX-Code
4320CHARACTER(LEN=*) :: time_counter
4321\end_layout
4322
4323\begin_layout Standard
4324Define how the
4325\begin_inset Quotes eld
4326\end_inset
4327
4328time_counter
4329\begin_inset Quotes erd
4330\end_inset
4331
4332 variable will be outputted:
4333\end_layout
4334
4335\begin_layout Itemize
4336
4337\series bold
4338\emph on
4339centered
4340\series default
4341\emph default
4342: use centered times
4343\end_layout
4344
4345\begin_layout Itemize
4346
4347\series bold
4348\emph on
4349instant
4350\series default
4351\emph default
4352: use instant times
4353\end_layout
4354
4355\begin_layout Itemize
4356
4357\series bold
4358\emph on
4359record
4360\series default
4361\emph default
4362: use record indexes
4363\end_layout
4364
4365\begin_layout Itemize
4366
4367\series bold
4368\emph on
4369none
4370\series default
4371\emph default
4372: do not output the variable.
4373\end_layout
4374
4375\begin_layout Standard
4376This attribute is optional, the default value is
4377\series bold
4378\emph on
4379centered
4380\series default
4381\emph default
4382.
4383\end_layout
4384
4385\begin_layout Subsection*
4386time_counter_name:
4387\emph on
4388string
4389\end_layout
4390
4391\begin_layout Standard
4392Fortran:
4393\end_layout
4394
4395\begin_layout LyX-Code
4396CHARACTER(LEN=*) :: time_counter_name
4397\end_layout
4398
4399\begin_layout Standard
4400Define the name of the time counter.
4401 This attribute is optional.
4402\end_layout
4403
4404\begin_layout Subsection*
4405timeseries:
4406\emph on
4407enumeration { none, only, both, exclusive }
4408\end_layout
4409
4410\begin_layout Standard
4411Fortran:
4412\end_layout
4413
4414\begin_layout LyX-Code
4415CHARACTER(LEN=*) :: time_series
4416\end_layout
4417
4418\begin_layout Standard
4419Define whether the timeseries must be outputted:
4420\end_layout
4421
4422\begin_layout Itemize
4423
4424\series bold
4425\emph on
4426none
4427\series default
4428\emph default
4429: no timeseries are outputted, only the regular file
4430\end_layout
4431
4432\begin_layout Itemize
4433
4434\series bold
4435\emph on
4436only
4437\series default
4438\emph default
4439: only the timeseries are outputted, the regular file is not created
4440\end_layout
4441
4442\begin_layout Itemize
4443
4444\series bold
4445\emph on
4446both
4447\series default
4448\emph default
4449: both the timeseries and the regular file are outputted.
4450\end_layout
4451
4452\begin_layout Itemize
4453
4454\series bold
4455\emph on
4456exclusive
4457\series default
4458\emph default
4459: the timeseries are outputted and a regular file is created with only the
4460 fields which were not marked for output as a timeserie (if any).
4461\end_layout
4462
4463\begin_layout Standard
4464This attribute is optional, the default value is
4465\series bold
4466\emph on
4467none
4468\series default
4469\emph default
4470.
4471\end_layout
4472
4473\begin_layout Subsection*
4474ts_prefix:
4475\emph on
4476string
4477\end_layout
4478
4479\begin_layout Standard
4480Fortran:
4481\end_layout
4482
4483\begin_layout LyX-Code
4484CHARACTER(LEN=*) :: ts_prefix
4485\end_layout
4486
4487\begin_layout Standard
4488Define the prefix to use for the name of the timeseries files.
4489 This attribute is optional, by default the file
4490\series bold
4491name
4492\series default
4493 will be used.
4494\end_layout
4495
4496\begin_layout Subsection*
4497record_offset:
4498\emph on
4499integer
4500\end_layout
4501
4502\begin_layout Standard
4503Fortran:
4504\end_layout
4505
4506\begin_layout LyX-Code
4507INTEGER :: record_offset
4508\end_layout
4509
4510\begin_layout Standard
4511Define offset of record from the beginning record.
4512 This attribute is optional, by default, its value is 0.
4513\end_layout
4514
4515\begin_layout Section
4516Transformation attribute reference
4517\end_layout
4518
4519\begin_layout Subsection
4520interpolate_axis
4521\end_layout
4522
4523\begin_layout Subsection*
4524type:
4525\emph on
4526string
4527\end_layout
4528
4529\begin_layout Standard
4530Fortran:
4531\end_layout
4532
4533\begin_layout LyX-Code
4534CHARACTER(LEN=*) :: type
4535\end_layout
4536
4537\begin_layout Standard
4538Define the type of interpolation on an axis.
4539 This attribute is optional.
4540\end_layout
4541
4542\begin_layout Subsection*
4543order:
4544\emph on
4545integer
4546\end_layout
4547
4548\begin_layout Standard
4549Fortran:
4550\end_layout
4551
4552\begin_layout LyX-Code
4553INTEGER :: order
4554\end_layout
4555
4556\begin_layout Standard
4557Define a order of interpolation.
4558 This attribute is optional.
4559 The default value is 2.
4560\end_layout
4561
4562\begin_layout Subsection
4563inverse_axis
4564\end_layout
4565
4566\begin_layout Subsection
4567zoom_axis
4568\end_layout
4569
4570\begin_layout Subsection*
4571begin:
4572\begin_inset Flex Emph
4573status collapsed
4574
4575\begin_layout Plain Layout
4576integer
4577\end_layout
4578
4579\end_inset
4580
4581
4582\end_layout
4583
4584\begin_layout Standard
4585Fortran:
4586\end_layout
4587
4588\begin_layout LyX-Code
4589INTEGER :: begin
4590\end_layout
4591
4592\begin_layout Standard
4593Define the begining index of the zoomed region on global axis.
4594 This attribute is optional.
4595 This must be an integer between
4596\begin_inset Flex Strong
4597status collapsed
4598
4599\begin_layout Plain Layout
46000
4601\end_layout
4602
4603\end_inset
4604
4605 and
4606\begin_inset Flex Strong
4607status collapsed
4608
4609\begin_layout Plain Layout
4610ni_glo-1
4611\end_layout
4612
4613\end_inset
4614
4615 of associated axis.
4616 If not specified the default value is
4617\begin_inset Flex Strong
4618status collapsed
4619
4620\begin_layout Plain Layout
46210
4622\end_layout
4623
4624\end_inset
4625
4626.
4627\end_layout
4628
4629\begin_layout Subsection*
4630n:
4631\begin_inset Flex Emph
4632status collapsed
4633
4634\begin_layout Plain Layout
4635integer
4636\end_layout
4637
4638\end_inset
4639
4640
4641\end_layout
4642
4643\begin_layout Standard
4644Fortran:
4645\end_layout
4646
4647\begin_layout LyX-Code
4648INTEGER :: n
4649\end_layout
4650
4651\begin_layout Standard
4652Define the size of zoomed region on global axis.
4653 This attribute is optional.
4654 This must be an integer between
4655\begin_inset Flex Strong
4656status collapsed
4657
4658\begin_layout Plain Layout
46591
4660\end_layout
4661
4662\end_inset
4663
4664and
4665\begin_inset Flex Strong
4666status collapsed
4667
4668\begin_layout Plain Layout
4669nj_glo
4670\end_layout
4671
4672\end_inset
4673
4674 of the associated axis.
4675 If not specified the default value is
4676\begin_inset Flex Strong
4677status collapsed
4678
4679\begin_layout Plain Layout
4680nj_glo
4681\end_layout
4682
4683\end_inset
4684
4685 of the associated axis.
4686\end_layout
4687
4688\begin_layout Subsection
4689interpolate_domain
4690\end_layout
4691
4692\begin_layout Subsection*
4693file:
4694\emph on
4695string
4696\end_layout
4697
4698\begin_layout Standard
4699Fortran:
4700\end_layout
4701
4702\begin_layout LyX-Code
4703CHARACTER(LEN=*) :: type
4704\end_layout
4705
4706\begin_layout Standard
4707Define the file which contains the weight value to interpolate from domain
4708 source to domain destination.
4709 This attribute is optional.
4710 If not specified, the internal interpolation module will be used.
4711\end_layout
4712
4713\begin_layout Subsection*
4714order:
4715\emph on
4716integer
4717\end_layout
4718
4719\begin_layout Standard
4720Fortran:
4721\end_layout
4722
4723\begin_layout LyX-Code
4724INTEGER :: order
4725\end_layout
4726
4727\begin_layout Standard
4728Define a order of interpolation.
4729 This attribute is only for internal interoplation module.
4730 This attribute is optional.
4731 The default value is 2.
4732\end_layout
4733
4734\begin_layout Subsection
4735zoom_domain
4736\end_layout
4737
4738\begin_layout Subsection*
4739ibegin:
4740\begin_inset Flex Emph
4741status collapsed
4742
4743\begin_layout Plain Layout
4744integer
4745\end_layout
4746
4747\end_inset
4748
4749
4750\end_layout
4751
4752\begin_layout Standard
4753Fortran:
4754\end_layout
4755
4756\begin_layout LyX-Code
4757INTEGER :: ibegin
4758\end_layout
4759
4760\begin_layout Standard
4761Define the begining index of the zoomed region on the first dimension of
4762 the global domain.
4763 This attribute is optional.
4764 This must be an integer between
4765\begin_inset Flex Strong
4766status collapsed
4767
4768\begin_layout Plain Layout
47690
4770\end_layout
4771
4772\end_inset
4773
4774 and
4775\begin_inset Flex Strong
4776status collapsed
4777
4778\begin_layout Plain Layout
4779ni_glo-1
4780\end_layout
4781
4782\end_inset
4783
4784 of the associated dimension of domain.
4785 If not specified the default value is
4786\begin_inset Flex Strong
4787status collapsed
4788
4789\begin_layout Plain Layout
47900
4791\end_layout
4792
4793\end_inset
4794
4795.
4796\end_layout
4797
4798\begin_layout Subsection*
4799ni:
4800\begin_inset Flex Emph
4801status collapsed
4802
4803\begin_layout Plain Layout
4804integer
4805\end_layout
4806
4807\end_inset
4808
4809
4810\end_layout
4811
4812\begin_layout Standard
4813Fortran:
4814\end_layout
4815
4816\begin_layout LyX-Code
4817INTEGER :: ni
4818\end_layout
4819
4820\begin_layout Standard
4821Define the size of zoomed region on the first dimension of the global domain.
4822 This attribute is optional.
4823 This must be an integer between
4824\begin_inset Flex Strong
4825status collapsed
4826
4827\begin_layout Plain Layout
48281
4829\end_layout
4830
4831\end_inset
4832
4833and
4834\begin_inset Flex Strong
4835status collapsed
4836
4837\begin_layout Plain Layout
4838ni_glo
4839\end_layout
4840
4841\end_inset
4842
4843 of the associated dimension of domain.
4844 If not specified the default value is
4845\begin_inset Flex Strong
4846status collapsed
4847
4848\begin_layout Plain Layout
4849ni_glo
4850\end_layout
4851
4852\end_inset
4853
4854 of the dimension of domain.
4855\end_layout
4856
4857\begin_layout Subsection*
4858jbegin:
4859\begin_inset Flex Emph
4860status collapsed
4861
4862\begin_layout Plain Layout
4863integer
4864\end_layout
4865
4866\end_inset
4867
4868
4869\end_layout
4870
4871\begin_layout Standard
4872Fortran:
4873\end_layout
4874
4875\begin_layout LyX-Code
4876INTEGER :: jbegin
4877\end_layout
4878
4879\begin_layout Standard
4880Define the begining index of the zoomed region on the second dimension of
4881 the global domain.
4882 This attribute is optional.
4883 This must be an integer between
4884\begin_inset Flex Strong
4885status collapsed
4886
4887\begin_layout Plain Layout
48880
4889\end_layout
4890
4891\end_inset
4892
4893 and
4894\begin_inset Flex Strong
4895status collapsed
4896
4897\begin_layout Plain Layout
4898nj_glo-1
4899\end_layout
4900
4901\end_inset
4902
4903 of the associated dimension of domain.
4904 If not specified the default value is
4905\begin_inset Flex Strong
4906status collapsed
4907
4908\begin_layout Plain Layout
49090
4910\end_layout
4911
4912\end_inset
4913
4914.
4915\end_layout
4916
4917\begin_layout Subsection*
4918nj:
4919\begin_inset Flex Emph
4920status collapsed
4921
4922\begin_layout Plain Layout
4923integer
4924\end_layout
4925
4926\end_inset
4927
4928
4929\end_layout
4930
4931\begin_layout Standard
4932Fortran:
4933\end_layout
4934
4935\begin_layout LyX-Code
4936INTEGER :: nj
4937\end_layout
4938
4939\begin_layout Standard
4940Define the size of zoomed region on the second dimension of the global domain.
4941 This attribute is optional.
4942 This must be an integer between
4943\begin_inset Flex Strong
4944status collapsed
4945
4946\begin_layout Plain Layout
49471
4948\end_layout
4949
4950\end_inset
4951
4952and
4953\begin_inset Flex Strong
4954status collapsed
4955
4956\begin_layout Plain Layout
4957nj_glo
4958\end_layout
4959
4960\end_inset
4961
4962 of the associated dimension of domain.
4963 If not specified the default value is
4964\begin_inset Flex Strong
4965status collapsed
4966
4967\begin_layout Plain Layout
4968nj_glo
4969\end_layout
4970
4971\end_inset
4972
4973 of the dimension of domain.
4974\end_layout
4975
4976\begin_layout Subsection
4977generate_rectilinear_domain
4978\end_layout
4979
4980\begin_layout Standard
4981
4982\end_layout
4983
4984\begin_layout Chapter
4985Fortran interface reference
4986\end_layout
4987
4988\begin_layout Section*
4989Initialization
4990\end_layout
4991
4992\begin_layout Subsection*
4993XIOS initialization
4994\end_layout
4995
4996\begin_layout Subsubsection*
4997Synopsis:
4998\end_layout
4999
5000\begin_layout LyX-Code
5001SUBROUTINE xios_initialize(client_id, local_comm, return_comm)
5002\end_layout
5003
5004\begin_layout LyX-Code
5005  CHARACTER(LEN=*),INTENT(IN)         :: client_id
5006\end_layout
5007
5008\begin_layout LyX-Code
5009  INTEGER,INTENT(IN),OPTIONAL         :: local_comm
5010\end_layout
5011
5012\begin_layout LyX-Code
5013  INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
5014\end_layout
5015
5016\begin_layout Subsubsection*
5017Argument:
5018\end_layout
5019
5020\begin_layout Itemize
5021\begin_inset Flex Code
5022status collapsed
5023
5024\begin_layout Plain Layout
5025client_id
5026\end_layout
5027
5028\end_inset
5029
5030: client identifier
5031\end_layout
5032
5033\begin_layout Itemize
5034\begin_inset Flex Code
5035status collapsed
5036
5037\begin_layout Plain Layout
5038local_comm
5039\end_layout
5040
5041\end_inset
5042
5043: MPI communicator of the client
5044\end_layout
5045
5046\begin_layout Itemize
5047\begin_inset Flex Code
5048status collapsed
5049
5050\begin_layout Plain Layout
5051return_comm
5052\end_layout
5053
5054\end_inset
5055
5056: split return MPI communicator
5057\end_layout
5058
5059\begin_layout Subsubsection*
5060Description:
5061\end_layout
5062
5063\begin_layout Standard
5064This subroutine must be called before any other call of MPI client library.
5065 It may be able to initialize MPI library (calling
5066\begin_inset Flex Code
5067status collapsed
5068
5069\begin_layout Plain Layout
5070MPI_Init
5071\end_layout
5072
5073\end_inset
5074
5075) if not already initialized.
5076 Since XIOS is able to work in client/server mode (parameter
5077\begin_inset Flex Code
5078status collapsed
5079
5080\begin_layout Plain Layout
5081using_server=true
5082\end_layout
5083
5084\end_inset
5085
5086), the global communicator must be split and a local split communicator
5087 is returned to be used by the client model for it own purpose.
5088 If more than one model is present, XIOS could be interfaced with the OASIS
5089 coupler (compiled with
5090\begin_inset Flex Code
5091status collapsed
5092
5093\begin_layout Plain Layout
5094-using_oasis
5095\end_layout
5096
5097\end_inset
5098
5099 option and parameter
5100\begin_inset Flex Code
5101status collapsed
5102
5103\begin_layout Plain Layout
5104using_oasis=true
5105\end_layout
5106
5107\end_inset
5108
5109), so in this case, the splitting would be done globally by OASIS.
5110\end_layout
5111
5112\begin_layout Itemize
5113If MPI is not initialized, XIOS would initialize it calling MPI_Init function.
5114 In this case, the MPI finalization would be done by XIOS in the
5115\begin_inset Flex Code
5116status collapsed
5117
5118\begin_layout Plain Layout
5119xios_finalize
5120\end_layout
5121
5122\end_inset
5123
5124 subroutine, and must not be done by the model.
5125\end_layout
5126
5127\begin_layout Itemize
5128If OASIS coupler is not used (using_oasis=false)
5129\end_layout
5130
5131\begin_deeper
5132\begin_layout Itemize
5133If server mode is not activated (
5134\begin_inset Flex Code
5135status collapsed
5136
5137\begin_layout Plain Layout
5138using_server=false
5139\end_layout
5140
5141\end_inset
5142
5143): if local_comm MPI communicator is specified then it would be used for
5144 internal MPI communication otherwise
5145\begin_inset Flex Code
5146status collapsed
5147
5148\begin_layout Plain Layout
5149MPI_COMM_WORLD
5150\end_layout
5151
5152\end_inset
5153
5154 communicator would be used by default.
5155 A copy of the communicator (of
5156\begin_inset Flex Code
5157status collapsed
5158
5159\begin_layout Plain Layout
5160local_comm
5161\end_layout
5162
5163\end_inset
5164
5165 or
5166\begin_inset Flex Code
5167status collapsed
5168
5169\begin_layout Plain Layout
5170MPI_COMM_WORLD
5171\end_layout
5172
5173\end_inset
5174
5175) would be returned in return_comm argument.
5176 If
5177\begin_inset Flex Code
5178status collapsed
5179
5180\begin_layout Plain Layout
5181return_comm
5182\end_layout
5183
5184\end_inset
5185
5186 is not specified, then
5187\begin_inset Flex Code
5188status collapsed
5189
5190\begin_layout Plain Layout
5191local_comm
5192\end_layout
5193
5194\end_inset
5195
5196 or
5197\begin_inset Flex Code
5198status collapsed
5199
5200\begin_layout Plain Layout
5201MPI_COMM_WORLD
5202\end_layout
5203
5204\end_inset
5205
5206 can be used by the model for it own communication.
5207\end_layout
5208
5209\begin_layout Itemize
5210If server mode is activated (
5211\begin_inset Flex Code
5212status collapsed
5213
5214\begin_layout Plain Layout
5215using_server=true
5216\end_layout
5217
5218\end_inset
5219
5220):
5221\begin_inset Flex Code
5222status collapsed
5223
5224\begin_layout Plain Layout
5225local_comm
5226\end_layout
5227
5228\end_inset
5229
5230 must not be specified since the global
5231\begin_inset Flex Code
5232status collapsed
5233
5234\begin_layout Plain Layout
5235MPI_COMM_WORLD
5236\end_layout
5237
5238\end_inset
5239
5240 communicator would be split by XIOS.
5241 The split communicator is returned in
5242\begin_inset Flex Code
5243status collapsed
5244
5245\begin_layout Plain Layout
5246return_comm
5247\end_layout
5248
5249\end_inset
5250
5251 argument.
5252\end_layout
5253
5254\end_deeper
5255\begin_layout Itemize
5256If OASIS coupler is used (
5257\begin_inset Flex Code
5258status collapsed
5259
5260\begin_layout Plain Layout
5261using_oasis=true
5262\end_layout
5263
5264\end_inset
5265
5266)
5267\end_layout
5268
5269\begin_deeper
5270\begin_layout Itemize
5271If server mode is not enabled (
5272\begin_inset Flex Code
5273status collapsed
5274
5275\begin_layout Plain Layout
5276using_server=false
5277\end_layout
5278
5279\end_inset
5280
5281)
5282\end_layout
5283
5284\begin_deeper
5285\begin_layout Itemize
5286If
5287\begin_inset Flex Code
5288status collapsed
5289
5290\begin_layout Plain Layout
5291local_comm
5292\end_layout
5293
5294\end_inset
5295
5296 is specified, it means that OASIS has been initialized by the model and
5297 global communicator has been already split previously by OASIS, and passed
5298 as
5299\begin_inset Flex Code
5300status collapsed
5301
5302\begin_layout Plain Layout
5303local_comm
5304\end_layout
5305
5306\end_inset
5307
5308 argument.
5309 The returned communicator would be a duplicate copy of
5310\begin_inset Flex Code
5311status collapsed
5312
5313\begin_layout Plain Layout
5314local_comm
5315\end_layout
5316
5317\end_inset
5318
5319.
5320\end_layout
5321
5322\begin_layout Itemize
5323Otherwise: if MPI was not initialized, OASIS will be initialized calling
5324 
5325\begin_inset Flex Code
5326status collapsed
5327
5328\begin_layout Plain Layout
5329prism_init_comp_proto
5330\end_layout
5331
5332\end_inset
5333
5334 subroutine.
5335 In this case, XIOS will call
5336\begin_inset Flex Code
5337status collapsed
5338
5339\begin_layout Plain Layout
5340prism_terminate_proto
5341\end_layout
5342
5343\end_inset
5344
5345 when
5346\begin_inset Flex Code
5347status collapsed
5348
5349\begin_layout Plain Layout
5350xios_finalized
5351\end_layout
5352
5353\end_inset
5354
5355 is called.
5356 The split communicator is returned in
5357\begin_inset Flex Code
5358status collapsed
5359
5360\begin_layout Plain Layout
5361return_comm
5362\end_layout
5363
5364\end_inset
5365
5366 argument using
5367\begin_inset Flex Code
5368status collapsed
5369
5370\begin_layout Plain Layout
5371prism_get_localcomm_proto
5372\end_layout
5373
5374\end_inset
5375
5376 return argument.
5377\end_layout
5378
5379\end_deeper
5380\begin_layout Itemize
5381If server mode is enabled (
5382\begin_inset Flex Code
5383status collapsed
5384
5385\begin_layout Plain Layout
5386using_server=true
5387\end_layout
5388
5389\end_inset
5390
5391)
5392\end_layout
5393
5394\begin_deeper
5395\begin_layout Itemize
5396If
5397\begin_inset Flex Code
5398status collapsed
5399
5400\begin_layout Plain Layout
5401local_comm
5402\end_layout
5403
5404\end_inset
5405
5406 is specified, it means that OASIS has been initialized by the model and
5407 global communicator has been already split previously by OASIS, and passed
5408 as local_comm argument.
5409 The returned communicator return_comm would be a split communicator given
5410 by OASIS.
5411\end_layout
5412
5413\begin_layout Itemize
5414Otherwise: if MPI was not initialized, OASIS will be initialized calling
5415 
5416\begin_inset Flex Code
5417status collapsed
5418
5419\begin_layout Plain Layout
5420prism_init_comp_proto
5421\end_layout
5422
5423\end_inset
5424
5425 subroutine.
5426 In this case, XIOS will call
5427\begin_inset Flex Code
5428status collapsed
5429
5430\begin_layout Plain Layout
5431prism_terminate_proto
5432\end_layout
5433
5434\end_inset
5435
5436 when
5437\begin_inset Flex Code
5438status collapsed
5439
5440\begin_layout Plain Layout
5441xios_finalized
5442\end_layout
5443
5444\end_inset
5445
5446 is called.
5447 The split communicator is returned in
5448\begin_inset Flex Code
5449status collapsed
5450
5451\begin_layout Plain Layout
5452return_comm
5453\end_layout
5454
5455\end_inset
5456
5457 argument using
5458\begin_inset Flex Code
5459status collapsed
5460
5461\begin_layout Plain Layout
5462prism_get_localcomm_proto
5463\end_layout
5464
5465\end_inset
5466
5467 return argument.
5468\end_layout
5469
5470\end_deeper
5471\end_deeper
5472\begin_layout Section*
5473Finalization
5474\end_layout
5475
5476\begin_layout Subsection*
5477XIOS finalization
5478\end_layout
5479
5480\begin_layout Subsubsection*
5481Synopsis:
5482\end_layout
5483
5484\begin_layout LyX-Code
5485SUBROUTINE xios_finalize()
5486\end_layout
5487
5488\begin_layout Subsubsection*
5489Arguments:
5490\end_layout
5491
5492\begin_layout Standard
5493None
5494\end_layout
5495
5496\begin_layout Subsubsection*
5497Description:
5498\end_layout
5499
5500\begin_layout Standard
5501This call must be done at the end of the simulation for a successful execution.
5502 It gives the end signal to the xios server pools to finish it execution.
5503 If MPI has been initialize by XIOS the MPI_Finalize will be called.
5504 If OASIS coupler has been initialized by XIOS, then finalization will be
5505 done calling
5506\begin_inset Flex Code
5507status collapsed
5508
5509\begin_layout Plain Layout
5510prism_terminate_proto
5511\end_layout
5512
5513\end_inset
5514
5515 subroutine.
5516\end_layout
5517
5518\begin_layout Section*
5519Tree elements management subroutines
5520\end_layout
5521
5522\begin_layout Standard
5523This set of subroutines enable the models to interact, complete or query
5524 the XML tree data base.
5525 New elements or group of elements can be added as child in the tree, attributes
5526 of the elements can be set or query.
5527 The type of element actually available are: context, axis, domain, grid,
5528 field, variable and file.
5529 An element can be identified by a string or by an handle associated to
5530 the type of the element.
5531 Root element (ex:
5532\begin_inset Quotes eld
5533\end_inset
5534
5535axis_definition
5536\begin_inset Quotes erd
5537\end_inset
5538
5539,
5540\begin_inset Quotes eld
5541\end_inset
5542
5543field_definition
5544\begin_inset Quotes erd
5545\end_inset
5546
5547,....) are considered like a group of element and are identified by a specific
5548 string
5549\begin_inset Quotes eld
5550\end_inset
5551
5552element_definition
5553\begin_inset Quotes erd
5554\end_inset
5555
5556 where element can be any one of the existing elements.
5557\end_layout
5558
5559\begin_layout Subsection*
5560Fortran type of the handles element
5561\end_layout
5562
5563\begin_layout Quotation
5564TYPE(xios_element)
5565\end_layout
5566
5567\begin_layout Standard
5568where
5569\begin_inset Quotes eld
5570\end_inset
5571
5572element
5573\begin_inset Quotes erd
5574\end_inset
5575
5576 can be any one among
5577\begin_inset Quotes eld
5578\end_inset
5579
5580context
5581\begin_inset Quotes erd
5582\end_inset
5583
5584,
5585\begin_inset Quotes eld
5586\end_inset
5587
5588axis
5589\begin_inset Quotes erd
5590\end_inset
5591
5592,
5593\begin_inset Quotes eld
5594\end_inset
5595
5596domain
5597\begin_inset Quotes erd
5598\end_inset
5599
5600,
5601\begin_inset Quotes eld
5602\end_inset
5603
5604grid
5605\begin_inset Quotes erd
5606\end_inset
5607
5608,
5609\begin_inset Quotes eld
5610\end_inset
5611
5612field
5613\begin_inset Quotes erd
5614\end_inset
5615
5616,
5617\begin_inset Quotes eld
5618\end_inset
5619
5620variable
5621\begin_inset Quotes erd
5622\end_inset
5623
5624 or
5625\begin_inset Quotes eld
5626\end_inset
5627
5628file
5629\begin_inset Quotes erd
5630\end_inset
5631
5632, or the associated group (excepted for context):
5633\begin_inset Quotes eld
5634\end_inset
5635
5636axis_group
5637\begin_inset Quotes erd
5638\end_inset
5639
5640,
5641\begin_inset Quotes eld
5642\end_inset
5643
5644domain_group
5645\begin_inset Quotes erd
5646\end_inset
5647
5648,
5649\begin_inset Quotes eld
5650\end_inset
5651
5652grid_group
5653\begin_inset Quotes erd
5654\end_inset
5655
5656,
5657\begin_inset Quotes eld
5658\end_inset
5659
5660field_group
5661\begin_inset Quotes erd
5662\end_inset
5663
5664,
5665\begin_inset Quotes eld
5666\end_inset
5667
5668variable_group
5669\begin_inset Quotes erd
5670\end_inset
5671
5672 or
5673\begin_inset Quotes eld
5674\end_inset
5675
5676file_group
5677\begin_inset Quotes erd
5678\end_inset
5679
5680.
5681\end_layout
5682
5683\begin_layout Subsection*
5684Getting handles
5685\end_layout
5686
5687\begin_layout Subsubsection*
5688Synopsis:
5689\end_layout
5690
5691\begin_layout LyX-Code
5692SUBROUTINE xios_get_element_handle(id,handle)
5693\end_layout
5694
5695\begin_layout LyX-Code
5696CHARACTER(len = *) , INTENT(IN) :: id
5697\end_layout
5698
5699\begin_layout LyX-Code
5700TYPE(xios_element), INTENT(OUT):: handle
5701\end_layout
5702
5703\begin_layout Standard
5704where element is one of the existing element or group of element.
5705\end_layout
5706
5707\begin_layout Subsubsection*
5708Arguments:
5709\end_layout
5710
5711\begin_layout Itemize
5712\begin_inset Flex Code
5713status collapsed
5714
5715\begin_layout Plain Layout
5716id
5717\end_layout
5718
5719\end_inset
5720
5721: string identifier.
5722\end_layout
5723
5724\begin_layout Itemize
5725\begin_inset Flex Code
5726status collapsed
5727
5728\begin_layout Plain Layout
5729handle
5730\end_layout
5731
5732\end_inset
5733
5734: element handle
5735\end_layout
5736
5737\begin_layout Subsubsection*
5738Description:
5739\end_layout
5740
5741\begin_layout Standard
5742This subroutine return the handle of the specified element identified by
5743 its string.
5744 The element must be existing otherwise it raise an error.
5745\end_layout
5746
5747\begin_layout Subsection*
5748Query for a valid element
5749\end_layout
5750
5751\begin_layout Subsubsection*
5752Synopsis:
5753\end_layout
5754
5755\begin_layout LyX-Code
5756LOGICAL FUNCTION xios_is_valid_element(id)
5757\end_layout
5758
5759\begin_layout LyX-Code
5760CHARACTER(len = *) , INTENT(IN) :: id
5761\end_layout
5762
5763\begin_layout Standard
5764where element is one of the existing element or group of element.
5765\end_layout
5766
5767\begin_layout Subsubsection*
5768Arguments:
5769\end_layout
5770
5771\begin_layout Itemize
5772\begin_inset Flex Code
5773status collapsed
5774
5775\begin_layout Plain Layout
5776id
5777\end_layout
5778
5779\end_inset
5780
5781: string identifier.
5782\end_layout
5783
5784\begin_layout Subsubsection*
5785Description:
5786\end_layout
5787
5788\begin_layout Standard
5789This function return .TRUE.
5790 if the element defined by the string identifier id is existing in the data
5791 base, otherwise it return .FALSE.
5792 .
5793\end_layout
5794
5795\begin_layout Subsection*
5796Adding child
5797\end_layout
5798
5799\begin_layout Subsubsection*
5800Synopsis:
5801\end_layout
5802
5803\begin_layout LyX-Code
5804SUBROUTINE xios_add_element(parent_handle, child_handle, child_id)
5805\end_layout
5806
5807\begin_layout LyX-Code
5808TYPE(xios_element)         , INTENT(IN) :: parent_handle
5809\end_layout
5810
5811\begin_layout LyX-Code
5812TYPE(xios_element)         , INTENT(OUT):: child_handle
5813\end_layout
5814
5815\begin_layout LyX-Code
5816CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
5817\end_layout
5818
5819\begin_layout Standard
5820where element is one of the existing element or group of element.
5821\end_layout
5822
5823\begin_layout Subsubsection*
5824Arguments:
5825\end_layout
5826
5827\begin_layout Itemize
5828\begin_inset Flex Code
5829status collapsed
5830
5831\begin_layout Plain Layout
5832parent_handle
5833\end_layout
5834
5835\end_inset
5836
5837: handle of the parent element.
5838\end_layout
5839
5840\begin_layout Itemize
5841\begin_inset Flex Code
5842status collapsed
5843
5844\begin_layout Plain Layout
5845child_handle
5846\end_layout
5847
5848\end_inset
5849
5850: handle of the child element.
5851\end_layout
5852
5853\begin_layout Itemize
5854\begin_inset Flex Code
5855status collapsed
5856
5857\begin_layout Plain Layout
5858child_id
5859\end_layout
5860
5861\end_inset
5862
5863: string identifier of the child.
5864\end_layout
5865
5866\begin_layout Subsubsection*
5867Description:
5868\end_layout
5869
5870\begin_layout Standard
5871This subroutine add a child to an existing parent element.
5872 The identifier of the child, if existing, can be specified optionally.
5873 All group elements can contains child of the same kind, provided generic
5874 inheritance.
5875 Some elements can contains children of an other kind for a specific behaviour.
5876 File element may contains field_group, field, variable and variable_group
5877 child elements.
5878 Field elements may contains variable_group of variable child element.
5879\end_layout
5880
5881\begin_layout Subsection*
5882Query if a value of an element attributes is defined (by handle)
5883\end_layout
5884
5885\begin_layout Subsubsection*
5886Synopsis:
5887\end_layout
5888
5889\begin_layout LyX-Code
5890SUBROUTINE xios_is_defined_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
5891 ...)
5892\end_layout
5893
5894\begin_layout LyX-Code
5895TYPE(xios_element)         , INTENT(IN) :: handle
5896\end_layout
5897
5898\begin_layout LyX-Code
5899LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
5900\end_layout
5901
5902\begin_layout LyX-Code
5903LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
5904\end_layout
5905
5906\begin_layout LyX-Code
5907....
5908\end_layout
5909
5910\begin_layout Standard
5911where element is one of the existing element or group of element.
5912 attribute_x is describing in the chapter dedicated to the attribute description.
5913\end_layout
5914
5915\begin_layout Subsubsection*
5916Arguments:
5917\end_layout
5918
5919\begin_layout Itemize
5920\begin_inset Flex Code
5921status collapsed
5922
5923\begin_layout Plain Layout
5924handle
5925\end_layout
5926
5927\end_inset
5928
5929: element handle.
5930\end_layout
5931
5932\begin_layout Itemize
5933\begin_inset Flex Code
5934status collapsed
5935
5936\begin_layout Plain Layout
5937attr_x
5938\end_layout
5939
5940\end_inset
5941
5942: return true if the attribute as a defined value.
5943\end_layout
5944
5945\begin_layout Subsubsection*
5946Description:
5947\end_layout
5948
5949\begin_layout Standard
5950This subroutine my be used to query if one or more attributes of an element
5951 have a defined value.
5952 The list of attributes and their type are described in a specific chapter
5953 of the documentation.
5954 
5955\end_layout
5956
5957\begin_layout Subsection*
5958Query if a value of an element attributes is defined (by identifier)
5959\end_layout
5960
5961\begin_layout Subsubsection*
5962Synopsis:
5963\end_layout
5964
5965\begin_layout LyX-Code
5966SUBROUTINE xios_is_defined_element_attr(id, attr_1=attribute_1, attr_2=attribute
5967_2, ...)
5968\end_layout
5969
5970\begin_layout LyX-Code
5971CHARACTER(len = *) , INTENT(IN) :: id
5972\end_layout
5973
5974\begin_layout LyX-Code
5975LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
5976\end_layout
5977
5978\begin_layout LyX-Code
5979LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
5980\end_layout
5981
5982\begin_layout LyX-Code
5983....
5984\end_layout
5985
5986\begin_layout Standard
5987where element is one of the existing element or group of element.
5988 attribute_x is describing in the chapter dedicated to the attribute description.
5989\end_layout
5990
5991\begin_layout Subsubsection*
5992Arguments:
5993\end_layout
5994
5995\begin_layout Itemize
5996\begin_inset Flex Code
5997status collapsed
5998
5999\begin_layout Plain Layout
6000id
6001\end_layout
6002
6003\end_inset
6004
6005: element identifier.
6006\end_layout
6007
6008\begin_layout Itemize
6009\begin_inset Flex Code
6010status collapsed
6011
6012\begin_layout Plain Layout
6013attr_x
6014\end_layout
6015
6016\end_inset
6017
6018: return true if the attribute as a defined value.
6019\end_layout
6020
6021\begin_layout Subsubsection*
6022Description:
6023\end_layout
6024
6025\begin_layout Standard
6026This subroutine my be used to query if one or more attributes of an element
6027 have a defined value.
6028 The list of available attributes and their type are described in a specific
6029 chapter of the documentation.
6030 
6031\end_layout
6032
6033\begin_layout Subsection*
6034Setting element attributes value by handle
6035\end_layout
6036
6037\begin_layout Subsubsection*
6038Synopsis:
6039\end_layout
6040
6041\begin_layout LyX-Code
6042SUBROUTINE xios_set_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
6043 ...)
6044\end_layout
6045
6046\begin_layout LyX-Code
6047TYPE(xios_element)         , INTENT(IN) :: handle
6048\end_layout
6049
6050\begin_layout LyX-Code
6051attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
6052\end_layout
6053
6054\begin_layout LyX-Code
6055attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
6056\end_layout
6057
6058\begin_layout LyX-Code
6059....
6060\end_layout
6061
6062\begin_layout Standard
6063where element is one of the existing element or group of element.
6064 attribute_x and attribute_type_x are describing in the chapter dedicated
6065 to the attribute description.
6066\end_layout
6067
6068\begin_layout Subsubsection*
6069Arguments:
6070\end_layout
6071
6072\begin_layout Itemize
6073\begin_inset Flex Code
6074status collapsed
6075
6076\begin_layout Plain Layout
6077handle
6078\end_layout
6079
6080\end_inset
6081
6082: element handle.
6083\end_layout
6084
6085\begin_layout Itemize
6086\begin_inset Flex Code
6087status collapsed
6088
6089\begin_layout Plain Layout
6090attr_x
6091\end_layout
6092
6093\end_inset
6094
6095: value of the attribute to be set.
6096\end_layout
6097
6098\begin_layout Subsubsection*
6099Description:
6100\end_layout
6101
6102\begin_layout Standard
6103This subroutine my be used to set one or more attribute to an element defined
6104 by its handle.
6105 The list of available attributes and their type are described in a specific
6106 chapter of the documentation.
6107 
6108\end_layout
6109
6110\begin_layout Subsection*
6111Setting element attributes value by id
6112\end_layout
6113
6114\begin_layout Subsubsection*
6115Synopsis:
6116\end_layout
6117
6118\begin_layout LyX-Code
6119SUBROUTINE xios_set_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
6120 ...)
6121\end_layout
6122
6123\begin_layout LyX-Code
6124CHARACTER(len = *),  INTENT(IN)          :: id
6125\end_layout
6126
6127\begin_layout LyX-Code
6128attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
6129\end_layout
6130
6131\begin_layout LyX-Code
6132attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
6133\end_layout
6134
6135\begin_layout LyX-Code
6136....
6137\end_layout
6138
6139\begin_layout Standard
6140where element is one of the existing element or group of element.
6141 attribute_x and attribute_type_x are describing in the chapter dedicated
6142 to the attribute description.
6143\end_layout
6144
6145\begin_layout Subsubsection*
6146Arguments:
6147\end_layout
6148
6149\begin_layout Itemize
6150\begin_inset Flex Code
6151status collapsed
6152
6153\begin_layout Plain Layout
6154id
6155\end_layout
6156
6157\end_inset
6158
6159: string identifier.
6160\end_layout
6161
6162\begin_layout Itemize
6163\begin_inset Flex Code
6164status collapsed
6165
6166\begin_layout Plain Layout
6167attr_x
6168\end_layout
6169
6170\end_inset
6171
6172: value of the attribute to be set.
6173\end_layout
6174
6175\begin_layout Subsubsection*
6176Description:
6177\end_layout
6178
6179\begin_layout Standard
6180This subroutine my be used to set one or more attribute to an element defined
6181 by its string id.
6182 The list of available attributes and their type are described in a specific
6183 chapter of the documentation.
6184\end_layout
6185
6186\begin_layout Subsection*
6187Getting element attributes value (by handle)
6188\end_layout
6189
6190\begin_layout Subsubsection*
6191Synopsis:
6192\end_layout
6193
6194\begin_layout LyX-Code
6195SUBROUTINE xios_get_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
6196 ...)
6197\end_layout
6198
6199\begin_layout LyX-Code
6200TYPE(xios_element)         , INTENT(IN) :: handle
6201\end_layout
6202
6203\begin_layout LyX-Code
6204attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
6205\end_layout
6206
6207\begin_layout LyX-Code
6208attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
6209\end_layout
6210
6211\begin_layout LyX-Code
6212....
6213\end_layout
6214
6215\begin_layout Standard
6216where element is one of the existing element or group of element.
6217 attribute_x and attribute_type_x are describing in the chapter dedicated
6218 to the attribute description.
6219\end_layout
6220
6221\begin_layout Subsubsection*
6222Arguments:
6223\end_layout
6224
6225\begin_layout Itemize
6226\begin_inset Flex Code
6227status collapsed
6228
6229\begin_layout Plain Layout
6230handle
6231\end_layout
6232
6233\end_inset
6234
6235: element handle.
6236\end_layout
6237
6238\begin_layout Itemize
6239\begin_inset Flex Code
6240status collapsed
6241
6242\begin_layout Plain Layout
6243attr_x
6244\end_layout
6245
6246\end_inset
6247
6248: value of the attribute to be get.
6249\end_layout
6250
6251\begin_layout Subsubsection*
6252Description:
6253\end_layout
6254
6255\begin_layout Standard
6256This subroutine my be used to get one or more attribute value of an element
6257 defined by its handle.
6258 All attributes in the arguments list must be defined.
6259 The list of available attributes and their type are described in a specific
6260 chapter of the documentation.
6261 
6262\end_layout
6263
6264\begin_layout Subsection*
6265Getting element attributes value (by identifier)
6266\end_layout
6267
6268\begin_layout Subsubsection*
6269Synopsis:
6270\end_layout
6271
6272\begin_layout LyX-Code
6273SUBROUTINE xios_get_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
6274 ...)
6275\end_layout
6276
6277\begin_layout LyX-Code
6278CHARACTER(len = *),   INTENT(IN)          :: id
6279\end_layout
6280
6281\begin_layout LyX-Code
6282attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
6283\end_layout
6284
6285\begin_layout LyX-Code
6286attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
6287\end_layout
6288
6289\begin_layout LyX-Code
6290....
6291\end_layout
6292
6293\begin_layout Standard
6294where element is one of the existing element or group of element.
6295 attribute_x is describing in the chapter dedicated to the attribute description.
6296\end_layout
6297
6298\begin_layout Subsubsection*
6299Arguments:
6300\end_layout
6301
6302\begin_layout Itemize
6303\begin_inset Flex Code
6304status collapsed
6305
6306\begin_layout Plain Layout
6307id
6308\end_layout
6309
6310\end_inset
6311
6312: element string identifier.
6313\end_layout
6314
6315\begin_layout Itemize
6316\begin_inset Flex Code
6317status collapsed
6318
6319\begin_layout Plain Layout
6320attr_x
6321\end_layout
6322
6323\end_inset
6324
6325: value of the attribute to be get.
6326\end_layout
6327
6328\begin_layout Subsubsection*
6329Description:
6330\end_layout
6331
6332\begin_layout Standard
6333This subroutine my be used to get one or more attribute value of an element
6334 defined by its handle.
6335 All attributes in the arguments list must have a defined value.
6336 The list of available attributes and their type are described in a specific
6337 chapter of the documentation.
6338\end_layout
6339
6340\begin_layout Section*
6341Interface relative to context management
6342\end_layout
6343
6344\begin_layout Subsection*
6345XIOS context initialization
6346\end_layout
6347
6348\begin_layout Subsubsection*
6349Synopsis:
6350\end_layout
6351
6352\begin_layout LyX-Code
6353SUBROUTINE xios_context_initialize(context_id, context_comm)
6354\end_layout
6355
6356\begin_layout LyX-Code
6357  CHARACTER(LEN=*),INTENT(IN)         :: context_id
6358\end_layout
6359
6360\begin_layout LyX-Code
6361  INTEGER,INTENT(IN)                  :: context_comm
6362\end_layout
6363
6364\begin_layout Subsubsection*
6365Argument:
6366\end_layout
6367
6368\begin_layout Itemize
6369\begin_inset Flex Code
6370status collapsed
6371
6372\begin_layout Plain Layout
6373context_id
6374\end_layout
6375
6376\end_inset
6377
6378: context identifier
6379\end_layout
6380
6381\begin_layout Itemize
6382\begin_inset Flex Code
6383status collapsed
6384
6385\begin_layout Plain Layout
6386context_comm
6387\end_layout
6388
6389\end_inset
6390
6391: MPI communicator of the context
6392\end_layout
6393
6394\begin_layout Subsubsection*
6395Description:
6396\end_layout
6397
6398\begin_layout Standard
6399This subroutine initialize a context identified by
6400\begin_inset Flex Code
6401status collapsed
6402
6403\begin_layout Plain Layout
6404context_id
6405\end_layout
6406
6407\end_inset
6408
6409 string and must be called before any call related to this context.
6410 A context must be associated to a communicator, which can be the returned
6411 communicator of the
6412\begin_inset Flex Code
6413status collapsed
6414
6415\begin_layout Plain Layout
6416xios_initialize
6417\end_layout
6418
6419\end_inset
6420
6421 subroutine or a sub-communicator of this.
6422 The context initialization is dynamic and can be done at any time before
6423 the
6424\begin_inset Flex Code
6425status collapsed
6426
6427\begin_layout Plain Layout
6428xios_finalize
6429\end_layout
6430
6431\end_inset
6432
6433 call.
6434\end_layout
6435
6436\begin_layout Subsection*
6437XIOS context finalization
6438\end_layout
6439
6440\begin_layout Subsubsection*
6441Synopsis:
6442\end_layout
6443
6444\begin_layout LyX-Code
6445SUBROUTINE xios_context_finalize()
6446\end_layout
6447
6448\begin_layout Subsubsection*
6449Arguments:
6450\end_layout
6451
6452\begin_layout Standard
6453None
6454\end_layout
6455
6456\begin_layout Subsubsection*
6457Description:
6458\end_layout
6459
6460\begin_layout Standard
6461This subroutine must be call to close a context, before the
6462\begin_inset Flex Code
6463status collapsed
6464
6465\begin_layout Plain Layout
6466xios_finalize
6467\end_layout
6468
6469\end_inset
6470
6471 call.
6472 It waits until that all pending request sent to the servers will be processed
6473 and the opened files will be closed.
6474\end_layout
6475
6476\begin_layout Subsection*
6477Setting current active context
6478\end_layout
6479
6480\begin_layout Subsubsection*
6481Synopsis:
6482\end_layout
6483
6484\begin_layout LyX-Code
6485SUBROUTINE xios_set_current_context(context_handle)
6486\end_layout
6487
6488\begin_layout LyX-Code
6489TYPE(xios_context),INTENT(IN) :: context_handle
6490\end_layout
6491
6492\begin_layout Standard
6493or
6494\end_layout
6495
6496\begin_layout LyX-Code
6497SUBROUTINE xios_set_current_context(context_id)
6498\end_layout
6499
6500\begin_layout LyX-Code
6501CHARACTER(LEN=*),INTENT(IN) :: context_id
6502\end_layout
6503
6504\begin_layout Subsubsection*
6505Arguments:
6506\end_layout
6507
6508\begin_layout Itemize
6509\begin_inset Flex Code
6510status collapsed
6511
6512\begin_layout Plain Layout
6513context_handle
6514\end_layout
6515
6516\end_inset
6517
6518: handle of the context
6519\end_layout
6520
6521\begin_layout Standard
6522or
6523\end_layout
6524
6525\begin_layout Itemize
6526\begin_inset Flex Code
6527status collapsed
6528
6529\begin_layout Plain Layout
6530context_id
6531\end_layout
6532
6533\end_inset
6534
6535: string context identifier
6536\end_layout
6537
6538\begin_layout Subsubsection*
6539Description:
6540\end_layout
6541
6542\begin_layout Standard
6543These subroutines set the current active context.
6544 All xios calls after will refer to this active context.
6545 If only one context is defined, it is automatically set as the active context.
6546 
6547\end_layout
6548
6549\begin_layout Subsection*
6550Closing definition
6551\end_layout
6552
6553\begin_layout Subsubsection*
6554Synopsis:
6555\end_layout
6556
6557\begin_layout LyX-Code
6558SUBROUTINE xios_close_context_definition()
6559\end_layout
6560
6561\begin_layout Subsubsection*
6562Arguments:
6563\end_layout
6564
6565\begin_layout Standard
6566None
6567\end_layout
6568
6569\begin_layout Subsubsection*
6570Description:
6571\end_layout
6572
6573\begin_layout Standard
6574This subroutine must be call when all definitions of a context is finished
6575 at the end of the initialization and before entering to the time loop.
6576 A lot of operations are performed internally (inheritance, grid definition,
6577 contacting servers,...) so this call is mandatory.
6578 Any call related to the tree management definition done after will have
6579 an undefined effect.
6580\end_layout
6581
6582\begin_layout Section*
6583Interface relative to calendar management
6584\end_layout
6585
6586\begin_layout Subsection*
6587Creating the calendar
6588\end_layout
6589
6590\begin_layout Subsubsection*
6591Synopsis:
6592\end_layout
6593
6594\begin_layout LyX-Code
6595SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin,
6596 &
6597\begin_inset Newline newline
6598\end_inset
6599
6600                                day_length, month_lengths, year_length,
6601 &
6602\begin_inset Newline newline
6603\end_inset
6604
6605                                leap_year_month, leap_year_drift, &
6606\begin_inset Newline newline
6607\end_inset
6608
6609                                leap_year_drift_offset)
6610\begin_inset Newline newline
6611\end_inset
6612
6613CHARACTER(len = *),              INTENT(IN) :: type
6614\begin_inset Newline newline
6615\end_inset
6616
6617TYPE(xios_duration),   OPTIONAL, INTENT(IN) :: timestep
6618\begin_inset Newline newline
6619\end_inset
6620
6621TYPE(xios_date),       OPTIONAL, INTENT(IN) :: start_date
6622\begin_inset Newline newline
6623\end_inset
6624
6625TYPE(xios_date),       OPTIONAL, INTENT(IN) :: time_origin
6626\begin_inset Newline newline
6627\end_inset
6628
6629INTEGER,               OPTIONAL, INTENT(IN) :: day_length
6630\begin_inset Newline newline
6631\end_inset
6632
6633INTEGER,               OPTIONAL, INTENT(IN) :: month_lengths(:)
6634\begin_inset Newline newline
6635\end_inset
6636
6637INTEGER,               OPTIONAL, INTENT(IN) :: year_length
6638\begin_inset Newline newline
6639\end_inset
6640
6641DOUBLE PRECISION,      OPTIONAL, INTENT(IN) :: leap_year_drift
6642\begin_inset Newline newline
6643\end_inset
6644
6645DOUBLE PRECISION,      OPTIONAL, INTENT(IN) :: leap_year_drift_offset
6646\begin_inset Newline newline
6647\end_inset
6648
6649INTEGER,               OPTIONAL, INTENT(IN) :: leap_year_month
6650\end_layout
6651
6652\begin_layout Subsubsection*
6653Arguments:
6654\end_layout
6655
6656\begin_layout Itemize
6657\begin_inset Flex Code
6658status collapsed
6659
6660\begin_layout Plain Layout
6661type
6662\end_layout
6663
6664\end_inset
6665
6666: the calendar type, one of
6667\begin_inset Flex Code
6668status collapsed
6669
6670\begin_layout Plain Layout
6671"Gregorian"
6672\end_layout
6673
6674\end_inset
6675
6676,
6677\begin_inset Flex Code
6678status collapsed
6679
6680\begin_layout Plain Layout
6681"Julian"
6682\end_layout
6683
6684\end_inset
6685
6686,
6687\begin_inset Flex Code
6688status collapsed
6689
6690\begin_layout Plain Layout
6691"D360"
6692\end_layout
6693
6694\end_inset
6695
6696,
6697\begin_inset Flex Code
6698status collapsed
6699
6700\begin_layout Plain Layout
6701"AllLeap"
6702\end_layout
6703
6704\end_inset
6705
6706,
6707\begin_inset Flex Code
6708status collapsed
6709
6710\begin_layout Plain Layout
6711"NoLeap"
6712\end_layout
6713
6714\end_inset
6715
6716,
6717\begin_inset Flex Code
6718status collapsed
6719
6720\begin_layout Plain Layout
6721"user_defined"
6722\end_layout
6723
6724\end_inset
6725
6726
6727\end_layout
6728
6729\begin_layout Itemize
6730\begin_inset Flex Code
6731status collapsed
6732
6733\begin_layout Plain Layout
6734timestep
6735\end_layout
6736
6737\end_inset
6738
6739: the time step of the simulation (optional, can be set later)
6740\end_layout
6741
6742\begin_layout Itemize
6743\begin_inset Flex Code
6744status collapsed
6745
6746\begin_layout Plain Layout
6747start_date
6748\end_layout
6749
6750\end_inset
6751
6752: the start date of the simulation (optional,
6753\begin_inset Flex Code
6754status collapsed
6755
6756\begin_layout Plain Layout
6757xios_date(0000, 01, 01, 00, 00, 00)
6758\end_layout
6759
6760\end_inset
6761
6762 is used by default)
6763\end_layout
6764
6765\begin_layout Itemize
6766\begin_inset Flex Code
6767status collapsed
6768
6769\begin_layout Plain Layout
6770time_origin
6771\end_layout
6772
6773\end_inset
6774
6775: the origin of the time axis (optional,
6776\begin_inset Flex Code
6777status collapsed
6778
6779\begin_layout Plain Layout
6780xios_date(0000, 01, 01, 00, 00, 00)
6781\end_layout
6782
6783\end_inset
6784
6785 is used by default)
6786\end_layout
6787
6788\begin_layout Itemize
6789\begin_inset Flex Code
6790status collapsed
6791
6792\begin_layout Plain Layout
6793day_length
6794\end_layout
6795
6796\end_inset
6797
6798: the length of a day in seconds (mandatory when creating an user defined
6799 calendar, must not be set otherwise)
6800\end_layout
6801
6802\begin_layout Itemize
6803\begin_inset Flex Code
6804status collapsed
6805
6806\begin_layout Plain Layout
6807month_lengths
6808\end_layout
6809
6810\end_inset
6811
6812: the length of each month of the year in days (either
6813\begin_inset Flex Code
6814status collapsed
6815
6816\begin_layout Plain Layout
6817month_lengths
6818\end_layout
6819
6820\end_inset
6821
6822 or
6823\begin_inset Flex Code
6824status collapsed
6825
6826\begin_layout Plain Layout
6827year_length
6828\end_layout
6829
6830\end_inset
6831
6832 must be set when creating an user defined calendar, must not be set otherwise)
6833\end_layout
6834
6835\begin_layout Itemize
6836\begin_inset Flex Code
6837status collapsed
6838
6839\begin_layout Plain Layout
6840year_length
6841\end_layout
6842
6843\end_inset
6844
6845: the length of a year in seconds (either
6846\begin_inset Flex Code
6847status collapsed
6848
6849\begin_layout Plain Layout
6850month_lengths
6851\end_layout
6852
6853\end_inset
6854
6855 or
6856\begin_inset Flex Code
6857status collapsed
6858
6859\begin_layout Plain Layout
6860year_length
6861\end_layout
6862
6863\end_inset
6864
6865 must be set when creating an user defined calendar, must not be set otherwise)
6866\end_layout
6867
6868\begin_layout Itemize
6869\begin_inset Flex Code
6870status collapsed
6871
6872\begin_layout Plain Layout
6873leap_year_drift
6874\end_layout
6875
6876\end_inset
6877
6878: the yearly drift between the user defined calendar and the astronomical
6879 calendar, expressed as a fraction of day (can optionally be set when creating
6880 an user defined calendar in which case
6881\begin_inset Flex Code
6882status collapsed
6883
6884\begin_layout Plain Layout
6885leap_year_month
6886\end_layout
6887
6888\end_inset
6889
6890 must be set too)
6891\end_layout
6892
6893\begin_layout Itemize
6894\begin_inset Flex Code
6895status collapsed
6896
6897\begin_layout Plain Layout
6898leap_year_drift_offset
6899\end_layout
6900
6901\end_inset
6902
6903: the initial drift between the user defined calendar and the astronomical
6904 calendar at the time origin, expressed as a fraction of day (can optionally
6905 be set if
6906\begin_inset Flex Code
6907status collapsed
6908
6909\begin_layout Plain Layout
6910leap_year_drift
6911\end_layout
6912
6913\end_inset
6914
6915 and
6916\begin_inset Flex Code
6917status collapsed
6918
6919\begin_layout Plain Layout
6920leap_year_month
6921\end_layout
6922
6923\end_inset
6924
6925 are set)
6926\end_layout
6927
6928\begin_layout Itemize
6929\begin_inset Flex Code
6930status collapsed
6931
6932\begin_layout Plain Layout
6933leap_year_month
6934\end_layout
6935
6936\end_inset
6937
6938: the month to which an extra day must be added in case of leap year (can
6939 optionally be set when creating an user defined calendar in which case
6940 
6941\begin_inset Flex Code
6942status collapsed
6943
6944\begin_layout Plain Layout
6945leap_year_drift
6946\end_layout
6947
6948\end_inset
6949
6950 must be set too)
6951\end_layout
6952
6953\begin_layout Standard
6954For a more detailed description of those arguments, see the description
6955 of the corresponding attributes in section 1.2
6956\begin_inset Quotes eld
6957\end_inset
6958
6959Calendar attribute reference
6960\begin_inset Quotes erd
6961\end_inset
6962
6963.
6964\end_layout
6965
6966\begin_layout Subsubsection*
6967Description:
6968\end_layout
6969
6970\begin_layout Standard
6971This subroutine creates the calendar for the current context.
6972 Note that the calendar is created once and for all, either from the XML
6973 configuration file or the Fortran interface.
6974 If it was not created from the configuration file, then this subroutine
6975 must be called once and only once before the context definition is closed.
6976 The calendar features can be used immediately after the calendar was created.
6977\begin_inset Newline newline
6978\end_inset
6979
6980
6981\begin_inset Newline newline
6982\end_inset
6983
6984If an user defined calendar is created, the following arguments must also
6985 be provided:
6986\begin_inset Flex Code
6987status collapsed
6988
6989\begin_layout Plain Layout
6990day_length
6991\end_layout
6992
6993\end_inset
6994
6995 and either
6996\begin_inset Flex Code
6997status collapsed
6998
6999\begin_layout Plain Layout
7000month_lengths
7001\end_layout
7002
7003\end_inset
7004
7005 or
7006\begin_inset Flex Code
7007status collapsed
7008
7009\begin_layout Plain Layout
7010year_length
7011\end_layout
7012
7013\end_inset
7014
7015.
7016 Optionally it is possible to configure the user defined calendar to have
7017 leap years.
7018 In this case,
7019\begin_inset Flex Code
7020status collapsed
7021
7022\begin_layout Plain Layout
7023leap_year_drift
7024\end_layout
7025
7026\end_inset
7027
7028 and
7029\begin_inset Flex Code
7030status collapsed
7031
7032\begin_layout Plain Layout
7033leap_year_month
7034\end_layout
7035
7036\end_inset
7037
7038 must also be provided and
7039\begin_inset Flex Code
7040status collapsed
7041
7042\begin_layout Plain Layout
7043leap_year_drift_offset
7044\end_layout
7045
7046\end_inset
7047
7048 might be used.
7049\end_layout
7050
7051\begin_layout Subsection*
7052Accessing the calendar type of the current calendar
7053\end_layout
7054
7055\begin_layout Subsubsection*
7056Synopsis:
7057\end_layout
7058
7059\begin_layout LyX-Code
7060SUBROUTINE xios_get_calendar_type(calendar_type)
7061\begin_inset Newline newline
7062\end_inset
7063
7064CHARACTER(len=*), INTENT(OUT) :: calendar_type
7065\end_layout
7066
7067\begin_layout Subsubsection*
7068Arguments:
7069\end_layout
7070
7071\begin_layout Itemize
7072\begin_inset Flex Code
7073status collapsed
7074
7075\begin_layout Plain Layout
7076calendar_type
7077\end_layout
7078
7079\end_inset
7080
7081: on output, the type of the calendar attached to the current context
7082\end_layout
7083
7084\begin_layout Subsubsection*
7085Description:
7086\end_layout
7087
7088\begin_layout Standard
7089This subroutine gets the calendar type associated to the current context.
7090 It will raise an error if used before the calendar was created.
7091\end_layout
7092
7093\begin_layout Subsection*
7094Accessing and defining the time step of the current calendar
7095\end_layout
7096
7097\begin_layout Subsubsection*
7098Synopsis:
7099\end_layout
7100
7101\begin_layout LyX-Code
7102SUBROUTINE xios_get_timestep(timestep)
7103\begin_inset Newline newline
7104\end_inset
7105
7106TYPE(xios_duration), INTENT(OUT) :: timestep
7107\end_layout
7108
7109\begin_layout Standard
7110and
7111\end_layout
7112
7113\begin_layout LyX-Code
7114SUBROUTINE xios_set_timestep(timestep)
7115\begin_inset Newline newline
7116\end_inset
7117
7118TYPE(xios_duration), INTENT(IN) :: timestep
7119\end_layout
7120
7121\begin_layout Subsubsection*
7122Arguments:
7123\end_layout
7124
7125\begin_layout Itemize
7126\begin_inset Flex Code
7127status collapsed
7128
7129\begin_layout Plain Layout
7130timestep
7131\end_layout
7132
7133\end_inset
7134
7135: a duration corresponding to the time step of the simulation
7136\end_layout
7137
7138\begin_layout Subsubsection*
7139Description:
7140\end_layout
7141
7142\begin_layout Standard
7143Those subroutines respectively gets and sets the time step associated to
7144 the calendar of the current context.
7145 Note that the time step must always be set before the context definition
7146 is closed and that an error will be raised if the getter subroutine is
7147 used before the time step is defined.
7148\end_layout
7149
7150\begin_layout Subsection*
7151Accessing and defining the start date of the current calendar
7152\end_layout
7153
7154\begin_layout Subsubsection*
7155Synopsis:
7156\end_layout
7157
7158\begin_layout LyX-Code
7159SUBROUTINE xios_get_start_date(start_date)
7160\begin_inset Newline newline
7161\end_inset
7162
7163TYPE(xios_date), INTENT(OUT) :: start_date
7164\end_layout
7165
7166\begin_layout Standard
7167and
7168\end_layout
7169
7170\begin_layout LyX-Code
7171SUBROUTINE xios_set_start_date(start_date)
7172\begin_inset Newline newline
7173\end_inset
7174
7175TYPE(xios_date), INTENT(IN) :: start_date
7176\end_layout
7177
7178\begin_layout Subsubsection*
7179Arguments:
7180\end_layout
7181
7182\begin_layout Itemize
7183\begin_inset Flex Code
7184status collapsed
7185
7186\begin_layout Plain Layout
7187start_date
7188\end_layout
7189
7190\end_inset
7191
7192: a date corresponding to the beginning of the simulation
7193\end_layout
7194
7195\begin_layout Subsubsection*
7196Description:
7197\end_layout
7198
7199\begin_layout Standard
7200Those subroutines respectively gets and sets the start date associated to
7201 the calendar of the current context.
7202 They must not be used before the calendar was created.
7203\end_layout
7204
7205\begin_layout Subsection*
7206Accessing and defining the time origin of the current calendar
7207\end_layout
7208
7209\begin_layout Subsubsection*
7210Synopsis:
7211\end_layout
7212
7213\begin_layout LyX-Code
7214SUBROUTINE xios_get_time_origin(time_origin)
7215\begin_inset Newline newline
7216\end_inset
7217
7218TYPE(xios_date), INTENT(OUT) :: time_origin
7219\end_layout
7220
7221\begin_layout Standard
7222and
7223\end_layout
7224
7225\begin_layout LyX-Code
7226SUBROUTINE xios_set_time_date(time_origin)
7227\begin_inset Newline newline
7228\end_inset
7229
7230TYPE(xios_date), INTENT(IN) :: time_origin
7231\end_layout
7232
7233\begin_layout Subsubsection*
7234Arguments:
7235\end_layout
7236
7237\begin_layout Itemize
7238\begin_inset Flex Code
7239status collapsed
7240
7241\begin_layout Plain Layout
7242start_date
7243\end_layout
7244
7245\end_inset
7246
7247: a date corresponding to the origin of the time axis
7248\end_layout
7249
7250\begin_layout Subsubsection*
7251Description:
7252\end_layout
7253
7254\begin_layout Standard
7255Those subroutines respectively gets and sets the origin of time associated
7256 to the calendar of the current context.
7257 They must not be used before the calendar was created.
7258\end_layout
7259
7260\begin_layout Subsection*
7261Updating the current date of the current calendar
7262\end_layout
7263
7264\begin_layout Subsubsection*
7265Synopsis:
7266\end_layout
7267
7268\begin_layout LyX-Code
7269SUBROUTINE xios_update_calendar(step)
7270\begin_inset Newline newline
7271\end_inset
7272
7273INTEGER, INTENT(IN) :: step
7274\end_layout
7275
7276\begin_layout Subsubsection*
7277Arguments:
7278\end_layout
7279
7280\begin_layout Itemize
7281\begin_inset Flex Code
7282status collapsed
7283
7284\begin_layout Plain Layout
7285step
7286\end_layout
7287
7288\end_inset
7289
7290: the current iteration number
7291\end_layout
7292
7293\begin_layout Subsubsection*
7294Description:
7295\end_layout
7296
7297\begin_layout Standard
7298This subroutine sets the current date associated to the calendar of the
7299 current context based on the current iteration number:
7300\begin_inset Formula $current\_date=start\_date+step\times timestep$
7301\end_inset
7302
7303.
7304 It must not be used before the calendar was created.
7305\end_layout
7306
7307\begin_layout Subsection*
7308Accessing the current date of the current calendar
7309\end_layout
7310
7311\begin_layout Subsubsection*
7312Synopsis:
7313\end_layout
7314
7315\begin_layout LyX-Code
7316SUBROUTINE xios_get_current_date(current_date)
7317\begin_inset Newline newline
7318\end_inset
7319
7320TYPE(xios_date), INTENT(OUT) :: current_date
7321\end_layout
7322
7323\begin_layout Subsubsection*
7324Arguments:
7325\end_layout
7326
7327\begin_layout Itemize
7328\begin_inset Flex Code
7329status collapsed
7330
7331\begin_layout Plain Layout
7332current_date
7333\end_layout
7334
7335\end_inset
7336
7337: on output, the current date
7338\end_layout
7339
7340\begin_layout Subsubsection*
7341Description:
7342\end_layout
7343
7344\begin_layout Standard
7345This subroutine gets the current date associated to the calendar of the
7346 current context.
7347 It must not be used before the calendar was created.
7348\end_layout
7349
7350\begin_layout Subsection*
7351Accessing the year length of the current calendar
7352\end_layout
7353
7354\begin_layout Subsubsection*
7355Synopsis:
7356\end_layout
7357
7358\begin_layout LyX-Code
7359INTEGER FUNCTION xios_get_year_length_in_seconds(year)
7360\begin_inset Newline newline
7361\end_inset
7362
7363INTEGER, INTENT(IN) :: year
7364\end_layout
7365
7366\begin_layout Subsubsection*
7367Arguments:
7368\end_layout
7369
7370\begin_layout Itemize
7371\begin_inset Flex Code
7372status collapsed
7373
7374\begin_layout Plain Layout
7375year
7376\end_layout
7377
7378\end_inset
7379
7380: the year whose length is requested
7381\end_layout
7382
7383\begin_layout Subsubsection*
7384Description:
7385\end_layout
7386
7387\begin_layout Standard
7388This function returns the duration in seconds of the specified year, taking
7389 leap years into account based on the calendar of the current context.
7390 It must not be used before the calendar was created.
7391\end_layout
7392
7393\begin_layout Subsection*
7394Accessing the day length of the current calendar
7395\end_layout
7396
7397\begin_layout Subsubsection*
7398Synopsis:
7399\end_layout
7400
7401\begin_layout LyX-Code
7402INTEGER FUNCTION xios_get_day_length_in_seconds()
7403\end_layout
7404
7405\begin_layout Subsubsection*
7406Arguments: None
7407\end_layout
7408
7409\begin_layout Subsubsection*
7410Description:
7411\end_layout
7412
7413\begin_layout Standard
7414This function returns the duration in seconds of a day, based on the calendar
7415 of the current context.
7416 It must not be used before the calendar was created.
7417\end_layout
7418
7419\begin_layout Section*
7420Interface relative to duration handling
7421\end_layout
7422
7423\begin_layout Subsection*
7424Duration constants
7425\end_layout
7426
7427\begin_layout Standard
7428Some duration constants are available to ease duration handling:
7429\end_layout
7430
7431\begin_layout Itemize
7432\begin_inset Flex Code
7433status collapsed
7434
7435\begin_layout Plain Layout
7436xios_year
7437\end_layout
7438
7439\end_inset
7440
7441
7442\end_layout
7443
7444\begin_layout Itemize
7445\begin_inset Flex Code
7446status collapsed
7447
7448\begin_layout Plain Layout
7449xios_month
7450\end_layout
7451
7452\end_inset
7453
7454
7455\end_layout
7456
7457\begin_layout Itemize
7458\begin_inset Flex Code
7459status collapsed
7460
7461\begin_layout Plain Layout
7462xios_day
7463\end_layout
7464
7465\end_inset
7466
7467
7468\end_layout
7469
7470\begin_layout Itemize
7471\begin_inset Flex Code
7472status collapsed
7473
7474\begin_layout Plain Layout
7475xios_hour
7476\end_layout
7477
7478\end_inset
7479
7480
7481\end_layout
7482
7483\begin_layout Itemize
7484\begin_inset Flex Code
7485status collapsed
7486
7487\begin_layout Plain Layout
7488xios_minute
7489\end_layout
7490
7491\end_inset
7492
7493
7494\end_layout
7495
7496\begin_layout Itemize
7497\begin_inset Flex Code
7498status collapsed
7499
7500\begin_layout Plain Layout
7501xios_second
7502\end_layout
7503
7504\end_inset
7505
7506
7507\end_layout
7508
7509\begin_layout Itemize
7510\begin_inset Flex Code
7511status collapsed
7512
7513\begin_layout Plain Layout
7514xios_timestep
7515\end_layout
7516
7517\end_inset
7518
7519
7520\end_layout
7521
7522\begin_layout Subsection*
7523Arithmetic operations on durations
7524\end_layout
7525
7526\begin_layout Standard
7527The following arithmetic operations on durations are available:
7528\end_layout
7529
7530\begin_layout Itemize
7531Addition:
7532\begin_inset Flex Code
7533status collapsed
7534
7535\begin_layout Plain Layout
7536xios_duration = xios_duration + xios_duration
7537\end_layout
7538
7539\end_inset
7540
7541
7542\end_layout
7543
7544\begin_layout Itemize
7545Subtraction:
7546\begin_inset Flex Code
7547status collapsed
7548
7549\begin_layout Plain Layout
7550xios_duration = xios_duration - xios_duration
7551\end_layout
7552
7553\end_inset
7554
7555
7556\end_layout
7557
7558\begin_layout Itemize
7559Multiplication by a scalar value:
7560\begin_inset Flex Code
7561status collapsed
7562
7563\begin_layout Plain Layout
7564xios_duration = scalar * xios_duration
7565\end_layout
7566
7567\end_inset
7568
7569 or
7570\begin_inset Flex Code
7571status collapsed
7572
7573\begin_layout Plain Layout
7574xios_duration = xios_duration * scalar
7575\end_layout
7576
7577\end_inset
7578
7579
7580\end_layout
7581
7582\begin_layout Itemize
7583Negation:
7584\begin_inset Flex Code
7585status collapsed
7586
7587\begin_layout Plain Layout
7588xios_duration = -xios_duration
7589\end_layout
7590
7591\end_inset
7592
7593
7594\end_layout
7595
7596\begin_layout Subsection*
7597Comparison operations on durations
7598\end_layout
7599
7600\begin_layout Standard
7601The following comparison operations on durations are available:
7602\end_layout
7603
7604\begin_layout Itemize
7605Equality:
7606\begin_inset Flex Code
7607status collapsed
7608
7609\begin_layout Plain Layout
7610LOGICAL = xios_duration == xios_duration
7611\end_layout
7612
7613\end_inset
7614
7615
7616\end_layout
7617
7618\begin_layout Itemize
7619Inequality:
7620\begin_inset Flex Code
7621status collapsed
7622
7623\begin_layout Plain Layout
7624LOGICAL = xios_duration /= xios_duration
7625\end_layout
7626
7627\end_inset
7628
7629
7630\end_layout
7631
7632\begin_layout Section*
7633Interface relative to date handling
7634\end_layout
7635
7636\begin_layout Subsection*
7637Arithmetic operations on dates
7638\end_layout
7639
7640\begin_layout Standard
7641The following arithmetic operations on dates are available:
7642\end_layout
7643
7644\begin_layout Itemize
7645Addition of a duration:
7646\begin_inset Flex Code
7647status collapsed
7648
7649\begin_layout Plain Layout
7650xios_date = xios_date + xios_duration
7651\end_layout
7652
7653\end_inset
7654
7655
7656\end_layout
7657
7658\begin_layout Itemize
7659Subtraction of a duration:
7660\begin_inset Flex Code
7661status collapsed
7662
7663\begin_layout Plain Layout
7664xios_date = xios_date - xios_duration
7665\end_layout
7666
7667\end_inset
7668
7669
7670\end_layout
7671
7672\begin_layout Itemize
7673Subtraction of two dates:
7674\begin_inset Flex Code
7675status collapsed
7676
7677\begin_layout Plain Layout
7678xios_duration = xios_date - xios_date
7679\end_layout
7680
7681\end_inset
7682
7683
7684\end_layout
7685
7686\begin_layout Subsection*
7687Comparison operations on dates
7688\end_layout
7689
7690\begin_layout Standard
7691The following comparison operations on dates are available:
7692\end_layout
7693
7694\begin_layout Itemize
7695Equality:
7696\begin_inset Flex Code
7697status collapsed
7698
7699\begin_layout Plain Layout
7700LOGICAL = xios_date == xios_date
7701\end_layout
7702
7703\end_inset
7704
7705
7706\end_layout
7707
7708\begin_layout Itemize
7709Inequality:
7710\begin_inset Flex Code
7711status collapsed
7712
7713\begin_layout Plain Layout
7714LOGICAL = xios_date /= xios_date
7715\end_layout
7716
7717\end_inset
7718
7719
7720\end_layout
7721
7722\begin_layout Itemize
7723Less than:
7724\begin_inset Flex Code
7725status collapsed
7726
7727\begin_layout Plain Layout
7728LOGICAL = xios_date < xios_date
7729\end_layout
7730
7731\end_inset
7732
7733
7734\end_layout
7735
7736\begin_layout Itemize
7737Less or equal:
7738\begin_inset Flex Code
7739status collapsed
7740
7741\begin_layout Plain Layout
7742LOGICAL = xios_date <= xios_date
7743\end_layout
7744
7745\end_inset
7746
7747
7748\end_layout
7749
7750\begin_layout Itemize
7751Greater than:
7752\begin_inset Flex Code
7753status collapsed
7754
7755\begin_layout Plain Layout
7756LOGICAL = xios_date > xios_date
7757\end_layout
7758
7759\end_inset
7760
7761
7762\end_layout
7763
7764\begin_layout Itemize
7765Greater or equal:
7766\begin_inset Flex Code
7767status collapsed
7768
7769\begin_layout Plain Layout
7770LOGICAL = xios_date >= xios_date
7771\end_layout
7772
7773\end_inset
7774
7775
7776\end_layout
7777
7778\begin_layout Subsection*
7779Converting a date to a number of seconds since the time origin
7780\end_layout
7781
7782\begin_layout Subsubsection*
7783Synopsis:
7784\end_layout
7785
7786\begin_layout LyX-Code
7787FUNCTION INTEGER(kind = 8) xios_date_convert_to_seconds(date)
7788\begin_inset Newline newline
7789\end_inset
7790
7791TYPE(xios_date), INTENT(IN) :: date
7792\end_layout
7793
7794\begin_layout Subsubsection*
7795Arguments:
7796\end_layout
7797
7798\begin_layout Itemize
7799\begin_inset Flex Code
7800status collapsed
7801
7802\begin_layout Plain Layout
7803date
7804\end_layout
7805
7806\end_inset
7807
7808: the date to convert
7809\end_layout
7810
7811\begin_layout Subsubsection*
7812Description:
7813\end_layout
7814
7815\begin_layout Standard
7816This function returns the number of seconds since the time origin for the
7817 specified date, based on the calendar of the current context.
7818 It must not be used before the calendar was created.
7819\end_layout
7820
7821\begin_layout Subsection*
7822Converting a date to a number of seconds since the beginning of the year
7823\end_layout
7824
7825\begin_layout Subsubsection*
7826Synopsis:
7827\end_layout
7828
7829\begin_layout LyX-Code
7830FUNCTION INTEGER xios(date_get_second_of_year)(date)
7831\begin_inset Newline newline
7832\end_inset
7833
7834TYPE(xios_date), INTENT(IN) :: date
7835\end_layout
7836
7837\begin_layout Subsubsection*
7838Arguments:
7839\end_layout
7840
7841\begin_layout Itemize
7842\begin_inset Flex Code
7843status collapsed
7844
7845\begin_layout Plain Layout
7846date
7847\end_layout
7848
7849\end_inset
7850
7851: the date to convert
7852\end_layout
7853
7854\begin_layout Subsubsection*
7855Description:
7856\end_layout
7857
7858\begin_layout Standard
7859This function returns the number of seconds since the beginning of the year
7860 for the specified date, based on the calendar of the current context.
7861 It must not be used before the calendar was created.
7862\end_layout
7863
7864\begin_layout Subsection*
7865Converting a date to a number of days since the beginning of the year
7866\end_layout
7867
7868\begin_layout Subsubsection*
7869Synopsis:
7870\end_layout
7871
7872\begin_layout LyX-Code
7873FUNCTION DOUBLE_PRECISION xios_date_get_day_of_year(date)
7874\begin_inset Newline newline
7875\end_inset
7876
7877TYPE(xios_date), INTENT(IN) :: date
7878\end_layout
7879
7880\begin_layout Subsubsection*
7881Arguments:
7882\end_layout
7883
7884\begin_layout Itemize
7885\begin_inset Flex Code
7886status collapsed
7887
7888\begin_layout Plain Layout
7889date
7890\end_layout
7891
7892\end_inset
7893
7894: the date to convert
7895\end_layout
7896
7897\begin_layout Subsubsection*
7898Description:
7899\end_layout
7900
7901\begin_layout Standard
7902This function returns the number of days since the beginning of the year
7903 for the specified date, based on the calendar of the current context.
7904 It must not be used before the calendar was created.
7905\end_layout
7906
7907\begin_layout Subsection*
7908Converting a date to a fraction of the current year
7909\end_layout
7910
7911\begin_layout Subsubsection*
7912Synopsis:
7913\end_layout
7914
7915\begin_layout LyX-Code
7916FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_year(date)
7917\begin_inset Newline newline
7918\end_inset
7919
7920TYPE(xios_date), INTENT(IN) :: date
7921\end_layout
7922
7923\begin_layout Subsubsection*
7924Arguments:
7925\end_layout
7926
7927\begin_layout Itemize
7928\begin_inset Flex Code
7929status collapsed
7930
7931\begin_layout Plain Layout
7932date
7933\end_layout
7934
7935\end_inset
7936
7937: the date to convert
7938\end_layout
7939
7940\begin_layout Subsubsection*
7941Description:
7942\end_layout
7943
7944\begin_layout Standard
7945This function returns the fraction of year corresponding to the specified
7946 date, based on the calendar of the current context.
7947 It must not be used before the calendar was created.
7948\end_layout
7949
7950\begin_layout Subsection*
7951Converting a date to a number of seconds since the beginning of the day
7952\end_layout
7953
7954\begin_layout Subsubsection*
7955Synopsis:
7956\end_layout
7957
7958\begin_layout LyX-Code
7959FUNCTION INTEGER xios(date_get_second_of_day)(date)
7960\begin_inset Newline newline
7961\end_inset
7962
7963TYPE(xios_date), INTENT(IN) :: date
7964\end_layout
7965
7966\begin_layout Subsubsection*
7967Arguments:
7968\end_layout
7969
7970\begin_layout Itemize
7971\begin_inset Flex Code
7972status collapsed
7973
7974\begin_layout Plain Layout
7975date
7976\end_layout
7977
7978\end_inset
7979
7980: the date to convert
7981\end_layout
7982
7983\begin_layout Subsubsection*
7984Description:
7985\end_layout
7986
7987\begin_layout Standard
7988This function returns the number of seconds since the beginning of the day
7989 for the specified date, based on the calendar of the current context.
7990 It must not be used before the calendar was created.
7991\end_layout
7992
7993\begin_layout Subsection*
7994Converting a date to a fraction of the current day
7995\end_layout
7996
7997\begin_layout Subsubsection*
7998Synopsis:
7999\end_layout
8000
8001\begin_layout LyX-Code
8002FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_day(date)
8003\begin_inset Newline newline
8004\end_inset
8005
8006TYPE(xios_date), INTENT(IN) :: date
8007\end_layout
8008
8009\begin_layout Subsubsection*
8010Arguments:
8011\end_layout
8012
8013\begin_layout Itemize
8014\begin_inset Flex Code
8015status collapsed
8016
8017\begin_layout Plain Layout
8018date
8019\end_layout
8020
8021\end_inset
8022
8023: the date to convert
8024\end_layout
8025
8026\begin_layout Subsubsection*
8027Description:
8028\end_layout
8029
8030\begin_layout Standard
8031This function returns the fraction of day corresponding to the specified
8032 date, based on the calendar of the current context.
8033 It must not be used before the calendar was created.
8034\end_layout
8035
8036\end_body
8037\end_document
Note: See TracBrowser for help on using the repository browser.