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

Last change on this file since 536 was 536, checked in by ymipsl, 7 years ago

Add Xios reference documentation source file in tex (using lyx editor).
Thanks to M. Rezny for kindly having made some correction.

YM

  • Property svn:executable set to *
File size: 74.9 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 Subsection*
92calendar_type :
93\begin_inset Flex Emph
94status collapsed
95
96\begin_layout Plain Layout
97enum { Gregorian, Julian, D360, AllLeap, NoLeap}
98\end_layout
99
100\end_inset
101
102
103\end_layout
104
105\begin_layout Standard
106Fortran :
107\end_layout
108
109\begin_layout LyX-Code
110CHARACTER(LEN=*) :: calendar_type
111\end_layout
112
113\begin_layout Standard
114Define the calendar used for the context.
115 This attribute is mandatory
116\end_layout
117
118\begin_layout Subsection*
119start_date :
120\begin_inset Flex Emph
121status collapsed
122
123\begin_layout Plain Layout
124date
125\end_layout
126
127\end_inset
128
129
130\end_layout
131
132\begin_layout Standard
133Fortran :
134\end_layout
135
136\begin_layout LyX-Code
137CHARACTER(LEN=*) :: start_date
138\end_layout
139
140\begin_layout Standard
141Define the start date of the simulation for the current context.
142 This attribute is madatory
143\end_layout
144
145\begin_layout Subsection*
146time_origin :
147\begin_inset Flex Emph
148status collapsed
149
150\begin_layout Plain Layout
151date
152\end_layout
153
154\end_inset
155
156
157\end_layout
158
159\begin_layout Standard
160Fortran :
161\end_layout
162
163\begin_layout LyX-Code
164CHARACTER(LEN=*) :: time_origin
165\end_layout
166
167\begin_layout Standard
168Define the time origin of the time axis.
169 It will appear as metadata attached to the time axis in the output file.
170 The default value is the
171\begin_inset Flex Strong
172status collapsed
173
174\begin_layout Plain Layout
175start_date
176\end_layout
177
178\end_inset
179
180 attribute.
181\end_layout
182
183\begin_layout Subsection*
184timestep :
185\begin_inset Flex Emph
186status collapsed
187
188\begin_layout Plain Layout
189duration
190\end_layout
191
192\end_inset
193
194
195\end_layout
196
197\begin_layout Standard
198Fortran :
199\end_layout
200
201\begin_layout LyX-Code
202CHARACTER(LEN=*) :: timestep
203\end_layout
204
205\begin_layout Standard
206Define the timestep of the context.
207 This attribute is mandatory.
208 The time step can be also defined by calling the Fortran subroutine :
209\end_layout
210
211\begin_layout LyX-Code
212SUBROUTINE xios_set_timestep(timestep)
213\end_layout
214
215\begin_layout LyX-Code
216TYPE(xios_time) :: timestep
217\end_layout
218
219\begin_layout Section
220Axis attribute reference
221\end_layout
222
223\begin_layout Subsection*
224name :
225\begin_inset Flex Emph
226status collapsed
227
228\begin_layout Plain Layout
229string
230\end_layout
231
232\end_inset
233
234
235\end_layout
236
237\begin_layout Standard
238Fortran :
239\end_layout
240
241\begin_layout LyX-Code
242CHARACTER(LEN=*) :: name
243\end_layout
244
245\begin_layout Standard
246Define the name of the vertical axis, as it will appear in a file.
247 If not defined, a name is self generated from the id.
248 If multiple vertical axis are defined in a same file, each name must be
249 different.
250 
251\end_layout
252
253\begin_layout Subsection*
254standard_name :
255\begin_inset Flex Emph
256status collapsed
257
258\begin_layout Plain Layout
259string
260\end_layout
261
262\end_inset
263
264
265\end_layout
266
267\begin_layout Standard
268Fortran :
269\end_layout
270
271\begin_layout LyX-Code
272CHARACTER(LEN=*) :: standard_name
273\end_layout
274
275\begin_layout Standard
276Define the standard name of the vertical axis, as it will appear in the
277 metadata attached to the axis of the output file.
278 
279\end_layout
280
281\begin_layout Subsection*
282long_name :
283\begin_inset Flex Emph
284status collapsed
285
286\begin_layout Plain Layout
287string
288\end_layout
289
290\end_inset
291
292
293\end_layout
294
295\begin_layout Standard
296Fortran :
297\end_layout
298
299\begin_layout LyX-Code
300CHARACTER(LEN=*) :: long_name
301\end_layout
302
303\begin_layout Standard
304Define the long name of the vertical axis, as it will appear in the metadata
305 attached to the axis of the output file.
306 
307\end_layout
308
309\begin_layout Subsection*
310unit :
311\begin_inset Flex Emph
312status collapsed
313
314\begin_layout Plain Layout
315string
316\end_layout
317
318\end_inset
319
320
321\end_layout
322
323\begin_layout Standard
324Fortran :
325\end_layout
326
327\begin_layout LyX-Code
328CHARACTER(LEN=*) :: unit
329\end_layout
330
331\begin_layout Standard
332Define the unit of the axis as it will appear in the metadata attached to
333 the axis in the output file.
334\end_layout
335
336\begin_layout Subsection*
337size :
338\begin_inset Flex Emph
339status collapsed
340
341\begin_layout Plain Layout
342integer
343\end_layout
344
345\end_inset
346
347
348\end_layout
349
350\begin_layout Standard
351Fortran :
352\end_layout
353
354\begin_layout LyX-Code
355INTEGER :: size
356\end_layout
357
358\begin_layout Standard
359Define the size of the axis.
360 This attribute is mandatory.
361\end_layout
362
363\begin_layout Subsection*
364zoom_begin :
365\begin_inset Flex Emph
366status collapsed
367
368\begin_layout Plain Layout
369integer
370\end_layout
371
372\end_inset
373
374
375\end_layout
376
377\begin_layout Standard
378Fortran :
379\end_layout
380
381\begin_layout LyX-Code
382INTEGER :: zoom_begin
383\end_layout
384
385\begin_layout Standard
386Define the the begining of the zoom.
387 This must be an index betwen 1 and
388\begin_inset Flex Strong
389status collapsed
390
391\begin_layout Plain Layout
392size
393\end_layout
394
395\end_inset
396
397.
398 If not specified the default value is 1.
399 It must also be evaluated from
400\begin_inset Flex Strong
401status collapsed
402
403\begin_layout Plain Layout
404zoom_end
405\end_layout
406
407\end_inset
408
409 and
410\begin_inset Flex Strong
411status collapsed
412
413\begin_layout Plain Layout
414zoom_size
415\end_layout
416
417\end_inset
418
419 if these are specified.
420\end_layout
421
422\begin_layout Subsection*
423zoom_end :
424\begin_inset Flex Emph
425status collapsed
426
427\begin_layout Plain Layout
428integer
429\end_layout
430
431\end_inset
432
433
434\end_layout
435
436\begin_layout Standard
437Fortran :
438\end_layout
439
440\begin_layout LyX-Code
441INTEGER :: zoom_end
442\end_layout
443
444\begin_layout Standard
445Define the the end of the zoom.
446 This must be an index between 1 and
447\begin_inset Flex Strong
448status collapsed
449
450\begin_layout Plain Layout
451size
452\end_layout
453
454\end_inset
455
456.
457 If not specified the default value is
458\begin_inset Flex Strong
459status collapsed
460
461\begin_layout Plain Layout
462size
463\end_layout
464
465\end_inset
466
467.
468 It must also be evaluated from
469\begin_inset Flex Strong
470status collapsed
471
472\begin_layout Plain Layout
473zoom_begin
474\end_layout
475
476\end_inset
477
478 and
479\begin_inset Flex Strong
480status collapsed
481
482\begin_layout Plain Layout
483zoom_size
484\end_layout
485
486\end_inset
487
488 if these are specified.
489\end_layout
490
491\begin_layout Subsection*
492zoom_size :
493\begin_inset Flex Emph
494status collapsed
495
496\begin_layout Plain Layout
497integer
498\end_layout
499
500\end_inset
501
502
503\end_layout
504
505\begin_layout Standard
506Fortran :
507\end_layout
508
509\begin_layout LyX-Code
510INTEGER :: zoom_size
511\end_layout
512
513\begin_layout Standard
514Define the the size of the zoom.
515 This must be an integer betwen 1 and
516\begin_inset Flex Strong
517status collapsed
518
519\begin_layout Plain Layout
520size
521\end_layout
522
523\end_inset
524
525.
526 If not specified the default value is
527\begin_inset Flex Strong
528status collapsed
529
530\begin_layout Plain Layout
531size
532\end_layout
533
534\end_inset
535
536.
537 It must also be evaluated from
538\begin_inset Flex Strong
539status collapsed
540
541\begin_layout Plain Layout
542zoom_begin
543\end_layout
544
545\end_inset
546
547 and
548\begin_inset Flex Strong
549status collapsed
550
551\begin_layout Plain Layout
552zoom_end
553\end_layout
554
555\end_inset
556
557 if these are specified.
558\end_layout
559
560\begin_layout Subsection*
561value :
562\begin_inset Flex Emph
563status collapsed
564
565\begin_layout Plain Layout
5661D-array of double
567\end_layout
568
569\end_inset
570
571
572\end_layout
573
574\begin_layout Standard
575Fortran :
576\end_layout
577
578\begin_layout LyX-Code
579DOUBLE PRECISION :: value(:)
580\end_layout
581
582\begin_layout Standard
583Define the level values of the vertical axis.
584 The size of the array must be equal to the
585\begin_inset Flex Strong
586status collapsed
587
588\begin_layout Plain Layout
589size
590\end_layout
591
592\end_inset
593
594 attribute.
595 If not defined the default values are filled with values from 1 to
596\begin_inset Flex Strong
597status collapsed
598
599\begin_layout Plain Layout
600size
601\end_layout
602
603\end_inset
604
605.
606\end_layout
607
608\begin_layout Section
609Domain attribute reference
610\end_layout
611
612\begin_layout Subsection*
613name :
614\begin_inset Flex Emph
615status collapsed
616
617\begin_layout Plain Layout
618string
619\end_layout
620
621\end_inset
622
623
624\end_layout
625
626\begin_layout Standard
627Fortran :
628\end_layout
629
630\begin_layout LyX-Code
631CHARACTER(LEN=*) :: name
632\end_layout
633
634\begin_layout Standard
635Define the name of the horizontal domain.
636 This attribute may be used in case of multiple domains defined in the same
637 file.
638 In this case, the
639\begin_inset Flex Strong
640status collapsed
641
642\begin_layout Plain Layout
643name
644\end_layout
645
646\end_inset
647
648 attribute will be suffixed to the longitude and latitude dimensions and
649 axis name.
650 Otherwise, a suffix will be self-generated.
651\end_layout
652
653\begin_layout Subsection*
654type :
655\begin_inset Flex Emph
656status collapsed
657
658\begin_layout Plain Layout
659enum { regular, curvilinear, unstructured}
660\end_layout
661
662\end_inset
663
664
665\end_layout
666
667\begin_layout Standard
668Fortran :
669\end_layout
670
671\begin_layout LyX-Code
672CHARACTER(LEN=*) :: type
673\end_layout
674
675\begin_layout Standard
676Define the type of the grid.
677\end_layout
678
679\begin_layout Subsection*
680ni_glo :
681\begin_inset Flex Emph
682status collapsed
683
684\begin_layout Plain Layout
685integer
686\end_layout
687
688\end_inset
689
690
691\end_layout
692
693\begin_layout Standard
694Fortran :
695\end_layout
696
697\begin_layout LyX-Code
698INTEGER :: ni_glo
699\end_layout
700
701\begin_layout Standard
702Define the first dimension of the global domain.
703 This attribute is mandatory.
704\end_layout
705
706\begin_layout Subsection*
707nj_glo :
708\begin_inset Flex Emph
709status collapsed
710
711\begin_layout Plain Layout
712integer
713\end_layout
714
715\end_inset
716
717
718\end_layout
719
720\begin_layout Standard
721Fortran :
722\end_layout
723
724\begin_layout LyX-Code
725INTEGER :: nj_glo
726\end_layout
727
728\begin_layout Standard
729Define the second dimension of the global domain.
730 This attribute is mandatory.
731\end_layout
732
733\begin_layout Subsection*
734ni :
735\begin_inset Flex Emph
736status collapsed
737
738\begin_layout Plain Layout
739integer
740\end_layout
741
742\end_inset
743
744
745\end_layout
746
747\begin_layout Standard
748Fortran :
749\end_layout
750
751\begin_layout LyX-Code
752INTEGER :: ni
753\end_layout
754
755\begin_layout Standard
756Define the first dimension of the local domain.
757 This attribute may be also computed from
758\begin_inset Flex Strong
759status collapsed
760
761\begin_layout Plain Layout
762ibegin
763\end_layout
764
765\end_inset
766
767 and
768\begin_inset Flex Strong
769status collapsed
770
771\begin_layout Plain Layout
772iend
773\end_layout
774
775\end_inset
776
777 attribute value, so this attribute is optional.
778 But, if defined, a consistent value must be supplied.
779\end_layout
780
781\begin_layout Standard
782\begin_inset Formula $ni=iend-ibegin+1$
783\end_inset
784
785
786\end_layout
787
788\begin_layout Standard
789\begin_inset Formula $1\leq ibegin\leq iend\leq ni\_glo$
790\end_inset
791
792
793\end_layout
794
795\begin_layout Subsection*
796ibegin :
797\begin_inset Flex Emph
798status collapsed
799
800\begin_layout Plain Layout
801integer
802\end_layout
803
804\end_inset
805
806
807\end_layout
808
809\begin_layout Standard
810Fortran :
811\end_layout
812
813\begin_layout LyX-Code
814INTEGER :: ibegin
815\end_layout
816
817\begin_layout Standard
818Define the begining index of the first dimension of the local domain.
819 This attribute may be also computed from
820\begin_inset Flex Strong
821status collapsed
822
823\begin_layout Plain Layout
824ni
825\end_layout
826
827\end_inset
828
829 and
830\begin_inset Flex Strong
831status collapsed
832
833\begin_layout Plain Layout
834iend
835\end_layout
836
837\end_inset
838
839 attribute values, so this attribute is optional.
840 But, if defined, a consistent value must be supplied.
841\end_layout
842
843\begin_layout Standard
844\begin_inset Formula $ibegin=iend-ni+1$
845\end_inset
846
847
848\end_layout
849
850\begin_layout Standard
851\begin_inset Formula $1\leq ibegin\leq iend\leq ni\_glo$
852\end_inset
853
854
855\end_layout
856
857\begin_layout Subsection*
858iend :
859\begin_inset Flex Emph
860status collapsed
861
862\begin_layout Plain Layout
863integer
864\end_layout
865
866\end_inset
867
868
869\end_layout
870
871\begin_layout Standard
872Fortran :
873\end_layout
874
875\begin_layout LyX-Code
876INTEGER :: iend
877\end_layout
878
879\begin_layout Standard
880Define the end index of the first dimension of the local domain.
881 This attribute may be also computed from
882\begin_inset Flex Strong
883status collapsed
884
885\begin_layout Plain Layout
886ni
887\end_layout
888
889\end_inset
890
891 and
892\begin_inset Flex Strong
893status collapsed
894
895\begin_layout Plain Layout
896ibegin
897\end_layout
898
899\end_inset
900
901 attribute values, so this attribute is optional.
902 But, if defined, a consistent value must be supplied.
903\end_layout
904
905\begin_layout Standard
906\begin_inset Formula $iend=ibegin+ni-1$
907\end_inset
908
909
910\end_layout
911
912\begin_layout Standard
913\begin_inset Formula $1\leq ibegin\leq iend\leq ni\_glo$
914\end_inset
915
916
917\end_layout
918
919\begin_layout Subsection*
920nj :
921\begin_inset Flex Emph
922status collapsed
923
924\begin_layout Plain Layout
925integer
926\end_layout
927
928\end_inset
929
930
931\end_layout
932
933\begin_layout Standard
934Fortran :
935\end_layout
936
937\begin_layout LyX-Code
938INTEGER :: nj
939\end_layout
940
941\begin_layout Standard
942Define the second dimension of the local domain.
943 This attribute may be also computed from
944\begin_inset Flex Strong
945status collapsed
946
947\begin_layout Plain Layout
948jbegin
949\end_layout
950
951\end_inset
952
953 and
954\begin_inset Flex Strong
955status collapsed
956
957\begin_layout Plain Layout
958jend
959\end_layout
960
961\end_inset
962
963 attribute values, so this attribute is optional.
964 But, if defined, a consistent value must be supplied.
965\end_layout
966
967\begin_layout Standard
968\begin_inset Formula $nj=jend-jbegin+1$
969\end_inset
970
971
972\end_layout
973
974\begin_layout Standard
975\begin_inset Formula $1\leq jbegin\leq jend\leq nj\_glo$
976\end_inset
977
978
979\end_layout
980
981\begin_layout Subsection*
982jbegin :
983\begin_inset Flex Emph
984status collapsed
985
986\begin_layout Plain Layout
987integer
988\end_layout
989
990\end_inset
991
992
993\end_layout
994
995\begin_layout Standard
996Fortran :
997\end_layout
998
999\begin_layout LyX-Code
1000INTEGER :: jbegin
1001\end_layout
1002
1003\begin_layout Standard
1004Define the begining index of the second dimension of the local domain.
1005 This attribute may be also computed from
1006\begin_inset Flex Strong
1007status collapsed
1008
1009\begin_layout Plain Layout
1010nj
1011\end_layout
1012
1013\end_inset
1014
1015 and
1016\begin_inset Flex Strong
1017status collapsed
1018
1019\begin_layout Plain Layout
1020jend
1021\end_layout
1022
1023\end_inset
1024
1025 attribute values, so this attribute is optional.
1026 But, if defined, a consistent value must be supplied.
1027\end_layout
1028
1029\begin_layout Standard
1030\begin_inset Formula $jbegin=jend-nj+1$
1031\end_inset
1032
1033
1034\end_layout
1035
1036\begin_layout Standard
1037\begin_inset Formula $1\leq jbegin\leq jend\leq nj\_glo$
1038\end_inset
1039
1040
1041\end_layout
1042
1043\begin_layout Subsection*
1044jend :
1045\begin_inset Flex Emph
1046status collapsed
1047
1048\begin_layout Plain Layout
1049integer
1050\end_layout
1051
1052\end_inset
1053
1054
1055\end_layout
1056
1057\begin_layout Standard
1058Fortran :
1059\end_layout
1060
1061\begin_layout LyX-Code
1062INTEGER :: jend
1063\end_layout
1064
1065\begin_layout Standard
1066Define the ending index of the second dimension of the local domain.
1067 This attribute may be also computed from
1068\begin_inset Flex Strong
1069status collapsed
1070
1071\begin_layout Plain Layout
1072nj
1073\end_layout
1074
1075\end_inset
1076
1077 and
1078\begin_inset Flex Strong
1079status collapsed
1080
1081\begin_layout Plain Layout
1082jbegin
1083\end_layout
1084
1085\end_inset
1086
1087 attribute values, so this attribute is optional.
1088 But, if defined, a consistent value must be supplied.
1089\end_layout
1090
1091\begin_layout Standard
1092\begin_inset Formula $jend=jbegin+nj-1$
1093\end_inset
1094
1095
1096\end_layout
1097
1098\begin_layout Standard
1099\begin_inset Formula $1\leq jbegin\leq jend\leq nj\_glo$
1100\end_inset
1101
1102
1103\end_layout
1104
1105\begin_layout Subsection*
1106zoom_ni :
1107\emph on
1108integer
1109\end_layout
1110
1111\begin_layout Standard
1112Fortran :
1113\end_layout
1114
1115\begin_layout LyX-Code
1116INTEGER :: zoom_ni
1117\end_layout
1118
1119\begin_layout Standard
1120Define the size of the zoom on the first dimension on the global domain.
1121 This attribute is optional.
1122 The default value is
1123\begin_inset Flex Strong
1124status collapsed
1125
1126\begin_layout Plain Layout
1127ni
1128\end_layout
1129
1130\end_inset
1131
1132.
1133\end_layout
1134
1135\begin_layout Standard
1136\begin_inset Formula $1\leq zoom\_ni\leq ni$
1137\end_inset
1138
1139
1140\end_layout
1141
1142\begin_layout Subsection*
1143zoom_ibegin :
1144\emph on
1145integer
1146\end_layout
1147
1148\begin_layout Standard
1149Fortran
1150\end_layout
1151
1152\begin_layout LyX-Code
1153INTEGER :: zoom_ibegin
1154\end_layout
1155
1156\begin_layout Standard
1157Define the begining index on the first dimension of the zoom for the global
1158 domain.
1159 This attribute is optional.
1160 The default value is
1161\begin_inset Flex Strong
1162status collapsed
1163
1164\begin_layout Plain Layout
11651
1166\end_layout
1167
1168\end_inset
1169
1170.
1171\end_layout
1172
1173\begin_layout Subsection*
1174zoom_nj :
1175\emph on
1176integer
1177\end_layout
1178
1179\begin_layout Standard
1180Fortran :
1181\end_layout
1182
1183\begin_layout LyX-Code
1184INTEGER :: zoom_nj
1185\end_layout
1186
1187\begin_layout Standard
1188Define the size of the zoom on the second dimension for the global domain.
1189 This attribute is optional.
1190 The default value is
1191\begin_inset Flex Strong
1192status collapsed
1193
1194\begin_layout Plain Layout
1195nj
1196\end_layout
1197
1198\end_inset
1199
1200.
1201\end_layout
1202
1203\begin_layout Standard
1204\begin_inset Formula $1\leq zoom\_ni\leq ni$
1205\end_inset
1206
1207
1208\end_layout
1209
1210\begin_layout Subsection*
1211zoom_jbegin :
1212\emph on
1213integer
1214\end_layout
1215
1216\begin_layout Standard
1217Fortran :
1218\end_layout
1219
1220\begin_layout LyX-Code
1221INTEGER :: zoom_jbegin
1222\end_layout
1223
1224\begin_layout Standard
1225Define the begining index on the second dimension of the zoom for the global
1226 domain.
1227 This attribute is optional.
1228 The default value is
1229\begin_inset Flex Strong
1230status collapsed
1231
1232\begin_layout Plain Layout
12331
1234\end_layout
1235
1236\end_inset
1237
1238.
1239\end_layout
1240
1241\begin_layout Subsection*
1242mask :
1243\emph on
12442D-array of bool
1245\end_layout
1246
1247\begin_layout Standard
1248Fortran :
1249\end_layout
1250
1251\begin_layout LyX-Code
1252LOGICAL :: mask(:,:)
1253\end_layout
1254
1255\begin_layout Standard
1256Define the mask of the local domain.
1257 The masked value will be replaced by the value of the field attribute
1258\begin_inset Flex Strong
1259status collapsed
1260
1261\begin_layout Plain Layout
1262default_value
1263\end_layout
1264
1265\end_inset
1266
1267 in the output file.
1268\end_layout
1269
1270\begin_layout Subsection*
1271lonvalue :
1272\emph on
12731D-array of double
1274\end_layout
1275
1276\begin_layout Standard
1277Fortran :
1278\end_layout
1279
1280\begin_layout LyX-Code
1281DOUBLE PRECISION :: lonvalue(:)
1282\end_layout
1283
1284\begin_layout Standard
1285Define the value of the longitude on the local domain.
1286 For a cartesian grid, the size of the array will be
1287\begin_inset Flex Strong
1288status collapsed
1289
1290\begin_layout Plain Layout
1291ni
1292\end_layout
1293
1294\end_inset
1295
1296.
1297 For a curvilinear grid, the size of the array will be
1298\begin_inset Flex Strong
1299status collapsed
1300
1301\begin_layout Plain Layout
1302ni
1303\begin_inset Formula $\times$
1304\end_inset
1305
1306nj
1307\end_layout
1308
1309\end_inset
1310
1311.
1312 This attribute is mandatory.
1313\end_layout
1314
1315\begin_layout Subsection*
1316latvalue :
1317\emph on
13181D-array of double
1319\end_layout
1320
1321\begin_layout Standard
1322Fortran :
1323\end_layout
1324
1325\begin_layout LyX-Code
1326DOUBLE PRECISION :: latvalue(:)
1327\end_layout
1328
1329\begin_layout Standard
1330Define the value of the latitude on the local domain.
1331 For a cartesian grid, the size of the array will be nj.
1332 For a curvilinear grid, the size of the array will be
1333\begin_inset Flex Strong
1334status collapsed
1335
1336\begin_layout Plain Layout
1337ni
1338\begin_inset Formula $\times$
1339\end_inset
1340
1341nj
1342\end_layout
1343
1344\end_inset
1345
1346.
1347 This attribute is mandatory.
1348\end_layout
1349
1350\begin_layout Subsection*
1351nvertex :
1352\emph on
1353integer
1354\end_layout
1355
1356\begin_layout Standard
1357Fortran :
1358\end_layout
1359
1360\begin_layout LyX-Code
1361INTEGER :: nvertex
1362\end_layout
1363
1364\begin_layout Standard
1365Define the the maximum number of vertices for a cell.
1366 This is useful to specify the boundaries of cells for an unstructured mesh.
1367 This attribute is optional.
1368\end_layout
1369
1370\begin_layout Subsection*
1371bounds_lon :
1372\emph on
13731D-array of double
1374\end_layout
1375
1376\begin_layout Standard
1377Fortran :
1378\end_layout
1379
1380\begin_layout LyX-Code
1381DOUBLE PRECISION :: bounds_lon(:)
1382\end_layout
1383
1384\begin_layout Standard
1385Longitude value of the vertex of the cells.
1386\begin_inset Flex Strong
1387status collapsed
1388
1389\begin_layout Plain Layout
1390nvertex
1391\end_layout
1392
1393\end_inset
1394
1395 attribute must also be defined.
1396 This attribute is optional.
1397\end_layout
1398
1399\begin_layout Subsection*
1400bounds_lat :
1401\emph on
14021D-array of double
1403\end_layout
1404
1405\begin_layout Standard
1406Fortran :
1407\end_layout
1408
1409\begin_layout LyX-Code
1410DOUBLE PRECISION :: bounds_lat(:)
1411\end_layout
1412
1413\begin_layout Standard
1414Latitude value of the vertex of the cells.
1415\begin_inset Flex Strong
1416status collapsed
1417
1418\begin_layout Plain Layout
1419nvertex
1420\end_layout
1421
1422\end_inset
1423
1424 attribute must also be defined.
1425 This attribute is optional.
1426\end_layout
1427
1428\begin_layout Subsection*
1429data_dim :
1430\emph on
1431integer
1432\end_layout
1433
1434\begin_layout Standard
1435Fortran :
1436\end_layout
1437
1438\begin_layout LyX-Code
1439INTEGER :: datadim
1440\end_layout
1441
1442\begin_layout Standard
1443Define how a field is stored on memory for the client code.
1444 
1445\begin_inset Flex Strong
1446status collapsed
1447
1448\begin_layout Plain Layout
1449datadim
1450\end_layout
1451
1452\end_inset
1453
1454 value can be
1455\begin_inset Flex Strong
1456status collapsed
1457
1458\begin_layout Plain Layout
14591
1460\end_layout
1461
1462\end_inset
1463
1464 or
1465\begin_inset Flex Strong
1466status collapsed
1467
1468\begin_layout Plain Layout
14692
1470\end_layout
1471
1472\end_inset
1473
1474.
1475 A value of
1476\begin_inset Flex Strong
1477status collapsed
1478
1479\begin_layout Plain Layout
14801
1481\end_layout
1482
1483\end_inset
1484
1485 indicates that the horizontal layer of the field is stored on a 1D array
1486 as a vector of points.
1487 A value of
1488\begin_inset Flex Strong
1489status collapsed
1490
1491\begin_layout Plain Layout
14922
1493\end_layout
1494
1495\end_inset
1496
1497 indicates that the horizontal layer is stored in a 2D array.
1498 This attribute is mandatory.
1499\end_layout
1500
1501\begin_layout Subsection*
1502data_ibegin :
1503\emph on
1504 integer
1505\end_layout
1506
1507\begin_layout Standard
1508Fortran :
1509\end_layout
1510
1511\begin_layout LyX-Code
1512INTEGER :: data_ibegin
1513\end_layout
1514
1515\begin_layout Standard
1516Define the begining index of the field data for the first dimension.
1517 This attribute is an offset regarding the local domain, so the value can
1518 be negative.
1519 A negative value indicates that only some valid part of the data will extracted
1520, for example in the case of a ghost cell.
1521 A positive value indicates that the local domain is greater than the data
1522 stored in memory.
1523 A 0-value means that the local domain matches the data in memory.
1524 This attribute is optional and the default value is 0.
1525 Otherwise
1526\begin_inset Flex Strong
1527status collapsed
1528
1529\begin_layout Plain Layout
1530data_ibegin
1531\end_layout
1532
1533\end_inset
1534
1535 and
1536\begin_inset Flex Strong
1537status collapsed
1538
1539\begin_layout Plain Layout
1540data_ni
1541\end_layout
1542
1543\end_inset
1544
1545 must be defined together.
1546\end_layout
1547
1548\begin_layout Subsection*
1549data_ni :
1550\emph on
1551integer
1552\end_layout
1553
1554\begin_layout Standard
1555Fortran :
1556\end_layout
1557
1558\begin_layout LyX-Code
1559INTEGER :: data_ni
1560\end_layout
1561
1562\begin_layout Standard
1563Define the size of the field data for the first dimension.
1564 This attribute is optional and the default value is
1565\begin_inset Flex Strong
1566status collapsed
1567
1568\begin_layout Plain Layout
1569ni
1570\end_layout
1571
1572\end_inset
1573
1574.
1575 Otherwise
1576\begin_inset Flex Strong
1577status collapsed
1578
1579\begin_layout Plain Layout
1580data_ibegin
1581\end_layout
1582
1583\end_inset
1584
1585 and
1586\begin_inset Flex Strong
1587status collapsed
1588
1589\begin_layout Plain Layout
1590data_ni
1591\end_layout
1592
1593\end_inset
1594
1595 must be defined together.
1596\end_layout
1597
1598\begin_layout Subsection*
1599data_jbegin :
1600\emph on
1601integer
1602\end_layout
1603
1604\begin_layout Standard
1605Fortran :
1606\end_layout
1607
1608\begin_layout LyX-Code
1609INTEGER :: data_jbegin
1610\end_layout
1611
1612\begin_layout Standard
1613Define the begining index of the field data for the second dimension.
1614 This attribute is take account only if
1615\begin_inset Flex Strong
1616status collapsed
1617
1618\begin_layout Plain Layout
1619 data_dim=2
1620\end_layout
1621
1622\end_inset
1623
1624.
1625 This attribute is an offset regarding the local domain, so the value can
1626 be negative.
1627 A negative value indicate that only some valid part of the data will extracted,
1628 for example in case of ghost cell.
1629 A positive value indicate that the local domain is greater than the data
1630 stored in memory.
1631 A 0-value means that the local domain match the data in memory.
1632 This attribute is optional and the default value is
1633\begin_inset Flex Strong
1634status collapsed
1635
1636\begin_layout Plain Layout
16370
1638\end_layout
1639
1640\end_inset
1641
1642.
1643 Otherwise
1644\begin_inset Flex Strong
1645status collapsed
1646
1647\begin_layout Plain Layout
1648data_jbegin
1649\end_layout
1650
1651\end_inset
1652
1653 and
1654\begin_inset Flex Strong
1655status collapsed
1656
1657\begin_layout Plain Layout
1658data_nj
1659\end_layout
1660
1661\end_inset
1662
1663 must be defined together.
1664\end_layout
1665
1666\begin_layout Subsection*
1667data_nj :
1668\emph on
1669integer
1670\end_layout
1671
1672\begin_layout Standard
1673Fortran :
1674\end_layout
1675
1676\begin_layout LyX-Code
1677INTEGER :: data_nj
1678\end_layout
1679
1680\begin_layout Standard
1681Define the size of the field data for the first dimension.
1682 This attribute is take account only if
1683\begin_inset Flex Strong
1684status collapsed
1685
1686\begin_layout Plain Layout
1687data_dim=2
1688\end_layout
1689
1690\end_inset
1691
1692.
1693 This attribute is optional and the default value is
1694\begin_inset Flex Strong
1695status collapsed
1696
1697\begin_layout Plain Layout
1698nj
1699\end_layout
1700
1701\end_inset
1702
1703.
1704 Otherwise
1705\begin_inset Flex Strong
1706status collapsed
1707
1708\begin_layout Plain Layout
1709data_jbegin
1710\end_layout
1711
1712\end_inset
1713
1714 and
1715\begin_inset Flex Strong
1716status collapsed
1717
1718\begin_layout Plain Layout
1719data_nj
1720\end_layout
1721
1722\end_inset
1723
1724 must be defined together.
1725\end_layout
1726
1727\begin_layout Subsection*
1728data_n_index :
1729\emph on
1730integer
1731\end_layout
1732
1733\begin_layout Standard
1734Fortran :
1735\end_layout
1736
1737\begin_layout LyX-Code
1738INTEGER :: data_nindex
1739\end_layout
1740
1741\begin_layout Standard
1742In case of a compressed horizontal domain, this attribute define the number
1743 of points stored in memory on the local domain.
1744\end_layout
1745
1746\begin_layout Subsection*
1747data_i_index :
1748\emph on
17491D-array of integer
1750\end_layout
1751
1752\begin_layout Standard
1753Fortran :
1754\end_layout
1755
1756\begin_layout LyX-Code
1757INTEGER :: data_i_index(:)
1758\end_layout
1759
1760\begin_layout Standard
1761In case of a compressed horizontal domain, define the indexation the indexation
1762 of the data for the first dimension.
1763 The size of the array must be
1764\begin_inset Flex Strong
1765status collapsed
1766
1767\begin_layout Plain Layout
1768data_nindex
1769\end_layout
1770
1771\end_inset
1772
1773.
1774 This attribute is optional.
1775\end_layout
1776
1777\begin_layout Subsection*
1778data_j_index :
1779\emph on
17801D-array of integer
1781\end_layout
1782
1783\begin_layout Standard
1784Fortran :
1785\end_layout
1786
1787\begin_layout LyX-Code
1788INTEGER :: data_j_index(:)
1789\end_layout
1790
1791\begin_layout Standard
1792In case of a compressed horizontal domain, define the indexation the indexation
1793 of the data for the second dimension.
1794 This is meaningful only if
1795\begin_inset Flex Strong
1796status collapsed
1797
1798\begin_layout Plain Layout
1799data_dim=2
1800\end_layout
1801
1802\end_inset
1803
1804.
1805 The size of the array must be
1806\begin_inset Flex Strong
1807status collapsed
1808
1809\begin_layout Plain Layout
1810data_nindex
1811\end_layout
1812
1813\end_inset
1814
1815.
1816 This attribute is optional.
1817\end_layout
1818
1819\begin_layout Section
1820Grid attribute reference
1821\end_layout
1822
1823\begin_layout Subsection*
1824name : string
1825\end_layout
1826
1827\begin_layout Standard
1828Fortran :
1829\end_layout
1830
1831\begin_layout LyX-Code
1832CHARACTER(LEN=*) :: name
1833\end_layout
1834
1835\begin_layout Standard
1836Define the name of the grid.
1837 This attribute is actually not used internally.
1838 Optional attribute.
1839\end_layout
1840
1841\begin_layout Subsection*
1842domain_ref : string
1843\end_layout
1844
1845\begin_layout Standard
1846Fortran :
1847\end_layout
1848
1849\begin_layout LyX-Code
1850CHARACTER(LEN=*) :: domain_ref
1851\end_layout
1852
1853\begin_layout Standard
1854Define the horizontal domain reference of the grid.
1855 This attribute is mandatory.
1856\end_layout
1857
1858\begin_layout Subsection*
1859axis_ref : string
1860\end_layout
1861
1862\begin_layout Standard
1863Fortran :
1864\end_layout
1865
1866\begin_layout LyX-Code
1867CHARACTER(LEN=*) :: axis_ref
1868\end_layout
1869
1870\begin_layout Standard
1871Define the axis reference of the grid.
1872 This attribute is optional, if not defined, the grid will be considered
1873 as a 2-Dimensionnal grid without vertical layer.
1874\end_layout
1875
1876\begin_layout Subsection*
1877mask :
1878\emph on
18793D-array of bool
1880\end_layout
1881
1882\begin_layout Standard
1883Fortran :
1884\end_layout
1885
1886\begin_layout LyX-Code
1887LOGICAL :: mask(:,:,:)
1888\end_layout
1889
1890\begin_layout Standard
1891Define the mask of the local grid.
1892 Masked value will be replaced by the value of the field attribute
1893\begin_inset Flex Strong
1894status collapsed
1895
1896\begin_layout Plain Layout
1897default_value
1898\end_layout
1899
1900\end_inset
1901
1902 in the output file.
1903\end_layout
1904
1905\begin_layout Section
1906Field attribute reference
1907\end_layout
1908
1909\begin_layout Subsection*
1910name :
1911\emph on
1912string
1913\end_layout
1914
1915\begin_layout Standard
1916Fortran :
1917\end_layout
1918
1919\begin_layout LyX-Code
1920CHARACTER(LEN=*) :: name
1921\end_layout
1922
1923\begin_layout Standard
1924Define the
1925\begin_inset Flex Strong
1926status collapsed
1927
1928\begin_layout Plain Layout
1929name
1930\end_layout
1931
1932\end_inset
1933
1934 of the field as it will apear in an ouput file.
1935 This attribut is optional.
1936 If not present, the identifer
1937\begin_inset Flex Strong
1938status collapsed
1939
1940\begin_layout Plain Layout
1941id
1942\end_layout
1943
1944\end_inset
1945
1946 will be substituted.
1947\end_layout
1948
1949\begin_layout Subsection*
1950standard_name :
1951\emph on
1952string
1953\end_layout
1954
1955\begin_layout Standard
1956Fortran :
1957\end_layout
1958
1959\begin_layout LyX-Code
1960CHARACTER(LEN=*) :: standard_name
1961\end_layout
1962
1963\begin_layout Standard
1964Define the
1965\begin_inset Flex Strong
1966status collapsed
1967
1968\begin_layout Plain Layout
1969standard_name
1970\end_layout
1971
1972\end_inset
1973
1974 attribute as it will appear in the metadata of an ouput file.
1975 This attribute is optional.
1976\end_layout
1977
1978\begin_layout Subsection*
1979long_name :
1980\emph on
1981string
1982\end_layout
1983
1984\begin_layout Standard
1985Fortran :
1986\end_layout
1987
1988\begin_layout LyX-Code
1989CHARACTER(LEN=*) :: long_name
1990\end_layout
1991
1992\begin_layout Standard
1993Define the
1994\begin_inset Flex Strong
1995status collapsed
1996
1997\begin_layout Plain Layout
1998long_name
1999\end_layout
2000
2001\end_inset
2002
2003 attribute as it will appear in the metadata of an output file.
2004 This attribute is optional.
2005\end_layout
2006
2007\begin_layout Subsection*
2008unit :
2009\emph on
2010string
2011\end_layout
2012
2013\begin_layout Standard
2014Fortran :
2015\end_layout
2016
2017\begin_layout LyX-Code
2018CHARACTER(LEN=*) :: unit
2019\end_layout
2020
2021\begin_layout Standard
2022Define the
2023\begin_inset Flex Strong
2024status collapsed
2025
2026\begin_layout Plain Layout
2027unit
2028\end_layout
2029
2030\end_inset
2031
2032 of the field.
2033 This attribute is optional.
2034\end_layout
2035
2036\begin_layout Subsection*
2037operation :
2038\emph on
2039enum { once, instant, average, maximum, minimum, accumulate }
2040\end_layout
2041
2042\begin_layout Standard
2043Fortran :
2044\end_layout
2045
2046\begin_layout LyX-Code
2047CHARACTER(LEN=*) :: operation
2048\end_layout
2049
2050\begin_layout Standard
2051Define the temporal operation applied on the field.
2052 This attribute is mandatory.
2053\end_layout
2054
2055\begin_layout Subsection*
2056freq_op :
2057\emph on
2058duration
2059\end_layout
2060
2061\begin_layout Standard
2062Fortran :
2063\end_layout
2064
2065\begin_layout LyX-Code
2066CHARACTER(LEN=*) :: freq_op
2067\end_layout
2068
2069\begin_layout Standard
2070Define the frequency of the sampling for the temporal operation, so a field
2071 value will be used for temporal averaging every
2072\begin_inset Flex Strong
2073status collapsed
2074
2075\begin_layout Plain Layout
2076freq_op
2077\end_layout
2078
2079\end_inset
2080
2081 timestep.
2082 It is very usefull for sub-processus called at different frequency in a
2083 model.
2084 This attribute is optional, the default value is
2085\begin_inset Flex Strong
2086status collapsed
2087
2088\begin_layout Plain Layout
20891ts
2090\end_layout
2091
2092\end_inset
2093
2094( 1 time step).
2095\end_layout
2096
2097\begin_layout Subsection*
2098freq_offset :
2099\emph on
2100duration
2101\end_layout
2102
2103\begin_layout Standard
2104Fortran :
2105\end_layout
2106
2107\begin_layout LyX-Code
2108CHARACTER(LEN=*) :: freq_offset
2109\end_layout
2110
2111\begin_layout Standard
2112Define the offset when
2113\begin_inset Flex Strong
2114status collapsed
2115
2116\begin_layout Plain Layout
2117freq_op
2118\end_layout
2119
2120\end_inset
2121
2122 is defined.
2123 This attribute is optional, the default value is
2124\begin_inset Flex Strong
2125status collapsed
2126
2127\begin_layout Plain Layout
21280ts
2129\end_layout
2130
2131\end_inset
2132
2133(0 time step).
2134\end_layout
2135
2136\begin_layout Standard
2137\begin_inset Formula $0\leq freq\_offset<freq\_op$
2138\end_inset
2139
2140
2141\end_layout
2142
2143\begin_layout Subsection*
2144level :
2145\emph on
2146integer
2147\end_layout
2148
2149\begin_layout Standard
2150Fortran :
2151\end_layout
2152
2153\begin_layout LyX-Code
2154INTEGER :: level
2155\end_layout
2156
2157\begin_layout Standard
2158Define the level of output of the field.
2159 A field will be output only if the file attribute
2160\begin_inset Flex Strong
2161status collapsed
2162
2163\begin_layout Plain Layout
2164 output_level
2165\begin_inset Formula $\geq$
2166\end_inset
2167
2168level
2169\end_layout
2170
2171\end_inset
2172
2173.
2174 This attribute is optional, the default value is
2175\begin_inset Flex Strong
2176status collapsed
2177
2178\begin_layout Plain Layout
21790
2180\end_layout
2181
2182\end_inset
2183
2184.
2185\end_layout
2186
2187\begin_layout Subsection*
2188prec :
2189\emph on
2190integer
2191\end_layout
2192
2193\begin_layout Standard
2194Fortran :
2195\end_layout
2196
2197\begin_layout LyX-Code
2198INTEGER :: prec
2199\end_layout
2200
2201\begin_layout Standard
2202Define the precision in byte of a field in an output file.
2203 Available value are : 2 (integer), 4 (float single precision) and 8 (float
2204 double precision).
2205\end_layout
2206
2207\begin_layout Subsection*
2208enabled :
2209\emph on
2210bool
2211\end_layout
2212
2213\begin_layout Standard
2214Fortran :
2215\end_layout
2216
2217\begin_layout LyX-Code
2218LOGICAL :: enabled
2219\end_layout
2220
2221\begin_layout Standard
2222Define if a field must be output or not.
2223 This attribut is optional, the default value is
2224\begin_inset Flex Strong
2225status collapsed
2226
2227\begin_layout Plain Layout
2228true
2229\end_layout
2230
2231\end_inset
2232
2233.
2234\end_layout
2235
2236\begin_layout Subsection*
2237field_ref :
2238\emph on
2239string
2240\end_layout
2241
2242\begin_layout Standard
2243Fortran :
2244\end_layout
2245
2246\begin_layout LyX-Code
2247CHARACTER(LEN=*) :: field_ref
2248\end_layout
2249
2250\begin_layout Standard
2251Define a field reference.
2252 All attributes are inherited from the referenced field after the classical
2253 inheritence mechanism.
2254 The value assigned to the referenced field is transmitted to to current
2255 field to perform temporal operation.
2256 This attribute is optional.
2257\end_layout
2258
2259\begin_layout Subsection*
2260grid_ref :
2261\emph on
2262string
2263\end_layout
2264
2265\begin_layout Standard
2266Fortran :
2267\end_layout
2268
2269\begin_layout LyX-Code
2270CHARACTER(LEN=*) :: grid_ref
2271\end_layout
2272
2273\begin_layout Standard
2274Define on which grid the current field is defined.
2275 This attribut is optional, if missing, domain_ref and axis_ref must be
2276 defining.
2277\end_layout
2278
2279\begin_layout Subsection*
2280domain_ref :
2281\emph on
2282string
2283\end_layout
2284
2285\begin_layout Standard
2286Fortran :
2287\end_layout
2288
2289\begin_layout LyX-Code
2290CHARACTER(LEN=*) :: domain_ref
2291\end_layout
2292
2293\begin_layout Standard
2294Define on which horizontal domain the current field is defined.
2295 This attribut is optional, but if this attribute is defined,
2296\begin_inset Flex Strong
2297status collapsed
2298
2299\begin_layout Plain Layout
2300grid_ref
2301\end_layout
2302
2303\end_inset
2304
2305 must not be.
2306\end_layout
2307
2308\begin_layout Subsection*
2309axis_ref :
2310\emph on
2311string
2312\end_layout
2313
2314\begin_layout Standard
2315Fortran :
2316\end_layout
2317
2318\begin_layout LyX-Code
2319CHARACTER(LEN=*) :: axis_ref
2320\end_layout
2321
2322\begin_layout Standard
2323Define on which vertical axis the current field is defined.
2324 This attribute is optional, but if this attribute is defined,
2325\begin_inset Flex Strong
2326status collapsed
2327
2328\begin_layout Plain Layout
2329domain_ref
2330\end_layout
2331
2332\end_inset
2333
2334 must be too and
2335\begin_inset Flex Strong
2336status collapsed
2337
2338\begin_layout Plain Layout
2339grid_ref
2340\end_layout
2341
2342\end_inset
2343
2344 must not.
2345\end_layout
2346
2347\begin_layout Subsection*
2348default_value :
2349\emph on
2350double
2351\end_layout
2352
2353\begin_layout Standard
2354Fortran :
2355\end_layout
2356
2357\begin_layout LyX-Code
2358DOUBLE PRECISION :: default_value
2359\end_layout
2360
2361\begin_layout Standard
2362Define the value for the missing data of a field.
2363 This attribute is optional.
2364 The default value is
2365\begin_inset Flex Strong
2366status collapsed
2367
2368\begin_layout Plain Layout
23690
2370\end_layout
2371
2372\end_inset
2373
2374.
2375\end_layout
2376
2377\begin_layout Subsection*
2378valid_min :
2379\emph on
2380double
2381\end_layout
2382
2383\begin_layout Standard
2384Fortran :
2385\end_layout
2386
2387\begin_layout LyX-Code
2388DOUBLE PRECISION :: valid_min
2389\end_layout
2390
2391\begin_layout Standard
2392All field values below
2393\begin_inset Flex Strong
2394status collapsed
2395
2396\begin_layout Plain Layout
2397valid_min
2398\end_layout
2399
2400\end_inset
2401
2402 attribute value are set to missing value.
2403\end_layout
2404
2405\begin_layout Subsection*
2406valid_min :
2407\emph on
2408double
2409\end_layout
2410
2411\begin_layout Standard
2412Fortran :
2413\end_layout
2414
2415\begin_layout LyX-Code
2416DOUBLE PRECISION :: valid_min
2417\end_layout
2418
2419\begin_layout Standard
2420All field values above
2421\begin_inset Flex Strong
2422status collapsed
2423
2424\begin_layout Plain Layout
2425valid_max
2426\end_layout
2427
2428\end_inset
2429
2430 attribute value are set to missing value.
2431\end_layout
2432
2433\begin_layout Subsection*
2434detect_missing_value :
2435\emph on
2436bool
2437\end_layout
2438
2439\begin_layout Standard
2440Fortran :
2441\end_layout
2442
2443\begin_layout LyX-Code
2444LOGICAL : detect_missing_value
2445\end_layout
2446
2447\begin_layout Standard
2448When XIOS detect a default value in a field, it does not include the value
2449 in the statistic of the operation, like averaging, minimum, maximum...
2450\end_layout
2451
2452\begin_layout Subsection*
2453add_offset :
2454\emph on
2455double
2456\end_layout
2457
2458\begin_layout Standard
2459Fortran :
2460\end_layout
2461
2462\begin_layout LyX-Code
2463DOUBLE PRECISION : add_offset
2464\end_layout
2465
2466\begin_layout Standard
2467Set the
2468\begin_inset Flex Strong
2469status open
2470
2471\begin_layout Plain Layout
2472add_offset
2473\end_layout
2474
2475\end_inset
2476
2477 metadata CF attribute in the output file.
2478 In output, the
2479\begin_inset Flex Strong
2480status open
2481
2482\begin_layout Plain Layout
2483add_offset
2484\end_layout
2485
2486\end_inset
2487
2488 value is substracted to the field values.
2489\end_layout
2490
2491\begin_layout Subsection*
2492scale_factor :
2493\emph on
2494double
2495\end_layout
2496
2497\begin_layout Standard
2498Fortran :
2499\end_layout
2500
2501\begin_layout LyX-Code
2502DOUBLE PRECISION : scale_factor
2503\end_layout
2504
2505\begin_layout Standard
2506Set the
2507\begin_inset Flex Strong
2508status open
2509
2510\begin_layout Plain Layout
2511scale_factor
2512\end_layout
2513
2514\end_inset
2515
2516 metadata CF attribute in the output file.
2517 In output, the field values are divided by the
2518\begin_inset Flex Strong
2519status open
2520
2521\begin_layout Plain Layout
2522scale_factor
2523\end_layout
2524
2525\end_inset
2526
2527 value.
2528\end_layout
2529
2530\begin_layout Section
2531Variable attribute reference
2532\end_layout
2533
2534\begin_layout Subsection*
2535name :
2536\emph on
2537string
2538\end_layout
2539
2540\begin_layout Standard
2541Fortran :
2542\end_layout
2543
2544\begin_layout LyX-Code
2545CHARACTER(LEN=*) :: name
2546\end_layout
2547
2548\begin_layout Standard
2549Define the
2550\begin_inset Flex Strong
2551status collapsed
2552
2553\begin_layout Plain Layout
2554name
2555\end_layout
2556
2557\end_inset
2558
2559 of the variable as it will apear in an ouput file.
2560 This attribut is optional.
2561\end_layout
2562
2563\begin_layout Subsection*
2564name :
2565\emph on
2566type
2567\end_layout
2568
2569\begin_layout Standard
2570Fortran :
2571\end_layout
2572
2573\begin_layout LyX-Code
2574CHARACTER(LEN=*) :: type
2575\end_layout
2576
2577\begin_layout Standard
2578Define the
2579\begin_inset Flex Strong
2580status collapsed
2581
2582\begin_layout Plain Layout
2583type
2584\end_layout
2585
2586\end_inset
2587
2588 of the variable : possible value are :
2589\begin_inset Flex Strong
2590status open
2591
2592\begin_layout Plain Layout
2593int, short /short int, lon / long int, float, double, long double, bool,
2594 string
2595\end_layout
2596
2597\end_inset
2598
2599.
2600 This attribut is optional.
2601\end_layout
2602
2603\begin_layout Section
2604File attribute reference
2605\end_layout
2606
2607\begin_layout Subsection*
2608name :
2609\emph on
2610string
2611\end_layout
2612
2613\begin_layout Standard
2614Fortran :
2615\end_layout
2616
2617\begin_layout LyX-Code
2618CHARACTER(LEN=*) :: name
2619\end_layout
2620
2621\begin_layout Standard
2622Define the name of the ouput file.
2623 This attribute is mandatory.
2624\end_layout
2625
2626\begin_layout Subsection*
2627name_suffix :
2628\emph on
2629string
2630\end_layout
2631
2632\begin_layout Standard
2633Fortran :
2634\end_layout
2635
2636\begin_layout LyX-Code
2637CHARACTER(LEN=*) :: name_suffix
2638\end_layout
2639
2640\begin_layout Standard
2641Define a suffix to add to the name of the output file.
2642 Thisn attribute is optional.
2643\end_layout
2644
2645\begin_layout Subsection*
2646output_freq :
2647\emph on
2648duration
2649\end_layout
2650
2651\begin_layout Standard
2652Fortran :
2653\end_layout
2654
2655\begin_layout LyX-Code
2656CHARACTER(LEN=*) :: output_freq
2657\end_layout
2658
2659\begin_layout Standard
2660Define the output frequency for the current file.
2661 This attribute is mandatory.
2662\end_layout
2663
2664\begin_layout Subsection*
2665output_level :
2666\emph on
2667integer
2668\end_layout
2669
2670\begin_layout Standard
2671Fortran :
2672\end_layout
2673
2674\begin_layout LyX-Code
2675INTEGER :: output_level
2676\end_layout
2677
2678\begin_layout Standard
2679Define an output level for the field defining inside the current file.
2680 Field is output only if the field attribute
2681\begin_inset Formula $level\leq output\_level$
2682\end_inset
2683
2684.
2685\end_layout
2686
2687\begin_layout Subsection*
2688sync_freq :
2689\emph on
2690duration
2691\end_layout
2692
2693\begin_layout Standard
2694Fortran :
2695\end_layout
2696
2697\begin_layout LyX-Code
2698CHARACTER(LEN=*) :: sync_freq
2699\end_layout
2700
2701\begin_layout Standard
2702Define the frequency for flushing the current file onto disk.
2703 It may result bad performance but data are wrote even if the file will
2704 not be closed.
2705 This attribute is optional.
2706\end_layout
2707
2708\begin_layout Subsection*
2709split_freq :
2710\emph on
2711duration
2712\end_layout
2713
2714\begin_layout Standard
2715Fortran :
2716\end_layout
2717
2718\begin_layout LyX-Code
2719CHARACTER(LEN=*) :: split_freq
2720\end_layout
2721
2722\begin_layout Standard
2723Define the time frequency for splitting the current file.
2724 Date is suffixed to the name (see
2725\begin_inset Flex Emph
2726status collapsed
2727
2728\begin_layout Plain Layout
2729split_freq_format
2730\end_layout
2731
2732\end_inset
2733
2734 attribute).
2735 This attribute is optional.
2736\end_layout
2737
2738\begin_layout Subsection*
2739split_freq_format :
2740\emph on
2741string
2742\end_layout
2743
2744\begin_layout Standard
2745Fortran :
2746\end_layout
2747
2748\begin_layout LyX-Code
2749CHARACTER(LEN=*) :: split_freq_format
2750\end_layout
2751
2752\begin_layout Standard
2753Define the format of the split date suffixed to the file.
2754 Can contain any character, %y will be replaced by the year (4 characters),
2755 %mo month (2 char), %d day (2 char), %mi minute (2 char), %s second (2
2756 char).
2757 This attribute is optional.
2758 and the default behavior is to create a suffix with the date until the
2759 smaller non zero unit.
2760 For example, in one day split frequency, the hour minute and second will
2761 note appear in the suffix, only year, month and day.
2762\end_layout
2763
2764\begin_layout Subsection*
2765enabled :
2766\emph on
2767bool
2768\end_layout
2769
2770\begin_layout Standard
2771Fortran :
2772\end_layout
2773
2774\begin_layout LyX-Code
2775LOGICAL :: enabled
2776\end_layout
2777
2778\begin_layout Standard
2779Define if a file must be output or not.
2780 This attribute is mandatory, the default value is
2781\begin_inset Flex Strong
2782status collapsed
2783
2784\begin_layout Plain Layout
2785true
2786\end_layout
2787
2788\end_inset
2789
2790.
2791\end_layout
2792
2793\begin_layout Subsection*
2794type :
2795\emph on
2796enumeration { one_file, multiple_file}
2797\end_layout
2798
2799\begin_layout Standard
2800Fortran :
2801\end_layout
2802
2803\begin_layout LyX-Code
2804CHARACTER(LEN=*) :: type
2805\end_layout
2806
2807\begin_layout Standard
2808Define which type of file will be output.
2809 
2810\begin_inset Flex Strong
2811status collapsed
2812
2813\begin_layout Plain Layout
2814multiple_file
2815\end_layout
2816
2817\end_inset
2818
2819 : one file by server using sequential netcdf writing.
2820 
2821\begin_inset Flex Strong
2822status collapsed
2823
2824\begin_layout Plain Layout
2825one_file
2826\end_layout
2827
2828\end_inset
2829
2830 : one single global file is wrote using netcdf4 parallel access.
2831\end_layout
2832
2833\begin_layout Subsection*
2834par_access :
2835\emph on
2836enumeration { collective, independent }
2837\end_layout
2838
2839\begin_layout Standard
2840Fortran :
2841\end_layout
2842
2843\begin_layout LyX-Code
2844CHARACTER(LEN=*) :: par_access
2845\end_layout
2846
2847\begin_layout Standard
2848For parallel writting, define the MPI call used.
2849 This attribut is optional, the default value is
2850\begin_inset Flex Strong
2851status collapsed
2852
2853\begin_layout Plain Layout
2854collective
2855\end_layout
2856
2857\end_inset
2858
2859.
2860\end_layout
2861
2862\begin_layout Subsection*
2863min_digits :
2864\emph on
2865integer
2866\end_layout
2867
2868\begin_layout Standard
2869Fortran :
2870\end_layout
2871
2872\begin_layout LyX-Code
2873INTEGER :: min_digits
2874\end_layout
2875
2876\begin_layout Standard
2877For multiple_file, define the minimum digits composing the suffix defining
2878 the rank of the server, which will be happened to the name of the output
2879 file.
2880 This attribut is optional and the default value is
2881\begin_inset Flex Strong
2882status collapsed
2883
2884\begin_layout Plain Layout
28850
2886\end_layout
2887
2888\end_inset
2889
2890.
2891\end_layout
2892
2893\begin_layout Chapter
2894Fortran interface reference
2895\end_layout
2896
2897\begin_layout Section*
2898Initialization
2899\end_layout
2900
2901\begin_layout Subsection*
2902XIOS initialization
2903\end_layout
2904
2905\begin_layout Subsubsection*
2906Synopsis :
2907\end_layout
2908
2909\begin_layout LyX-Code
2910SUBROUTINE xios_initialize(client_id, local_comm, return_comm)
2911\end_layout
2912
2913\begin_layout LyX-Code
2914  CHARACTER(LEN=*),INTENT(IN)         :: client_id
2915\end_layout
2916
2917\begin_layout LyX-Code
2918  INTEGER,INTENT(IN),OPTIONAL         :: local_comm
2919\end_layout
2920
2921\begin_layout LyX-Code
2922  INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
2923\end_layout
2924
2925\begin_layout Subsubsection*
2926Argument :
2927\end_layout
2928
2929\begin_layout Itemize
2930\begin_inset Flex Code
2931status collapsed
2932
2933\begin_layout Plain Layout
2934client_id
2935\end_layout
2936
2937\end_inset
2938
2939 : client identifier
2940\end_layout
2941
2942\begin_layout Itemize
2943\begin_inset Flex Code
2944status collapsed
2945
2946\begin_layout Plain Layout
2947local_comm
2948\end_layout
2949
2950\end_inset
2951
2952 : MPI communicator of the client
2953\end_layout
2954
2955\begin_layout Itemize
2956\begin_inset Flex Code
2957status collapsed
2958
2959\begin_layout Plain Layout
2960return_comm
2961\end_layout
2962
2963\end_inset
2964
2965 : split return MPI communicator
2966\end_layout
2967
2968\begin_layout Subsubsection*
2969Description :
2970\end_layout
2971
2972\begin_layout Standard
2973This subroutine must be called before any other call of MPI client library.
2974 It may be able to initialize MPI library (calling
2975\begin_inset Flex Code
2976status collapsed
2977
2978\begin_layout Plain Layout
2979MPI_Init
2980\end_layout
2981
2982\end_inset
2983
2984) if not already initialized.
2985 Since XIOS is able to work in client/server mode (parameter
2986\begin_inset Flex Code
2987status collapsed
2988
2989\begin_layout Plain Layout
2990using_server=true
2991\end_layout
2992
2993\end_inset
2994
2995), the global communicator must be split and a local split communicator
2996 is returned to be used by the client model for it own purpose.
2997 If more than one model is present, XIOS could be interfaced with the OASIS
2998 coupler (compiled with
2999\begin_inset Flex Code
3000status collapsed
3001
3002\begin_layout Plain Layout
3003-using_oasis
3004\end_layout
3005
3006\end_inset
3007
3008 option and parameter
3009\begin_inset Flex Code
3010status collapsed
3011
3012\begin_layout Plain Layout
3013using_oasis=true
3014\end_layout
3015
3016\end_inset
3017
3018), so in this case, the splitting would be done globally by OASIS.
3019\end_layout
3020
3021\begin_layout Itemize
3022If MPI is not initialized, XIOS would initialize it calling MPI_Init function.
3023 In this case, the MPI finalization would be done by XIOS in the
3024\begin_inset Flex Code
3025status collapsed
3026
3027\begin_layout Plain Layout
3028xios_finalize
3029\end_layout
3030
3031\end_inset
3032
3033 subroutine, and must not be done by the model.
3034\end_layout
3035
3036\begin_layout Itemize
3037If OASIS coupler is not used (using_oasis=false)
3038\end_layout
3039
3040\begin_deeper
3041\begin_layout Itemize
3042If server mode is not activated (
3043\begin_inset Flex Code
3044status collapsed
3045
3046\begin_layout Plain Layout
3047using_server=false
3048\end_layout
3049
3050\end_inset
3051
3052) : if local_comm MPI communicator is specified then it would be used for
3053 internal MPI communication otherwise
3054\begin_inset Flex Code
3055status collapsed
3056
3057\begin_layout Plain Layout
3058MPI_COMM_WORLD
3059\end_layout
3060
3061\end_inset
3062
3063 communicator would be used by default.
3064 A copy of the communicator (of
3065\begin_inset Flex Code
3066status collapsed
3067
3068\begin_layout Plain Layout
3069local_comm
3070\end_layout
3071
3072\end_inset
3073
3074 or
3075\begin_inset Flex Code
3076status collapsed
3077
3078\begin_layout Plain Layout
3079MPI_COMM_WORLD
3080\end_layout
3081
3082\end_inset
3083
3084) would be returned in return_comm argument.
3085 If
3086\begin_inset Flex Code
3087status collapsed
3088
3089\begin_layout Plain Layout
3090return_comm
3091\end_layout
3092
3093\end_inset
3094
3095 is not specified, then
3096\begin_inset Flex Code
3097status collapsed
3098
3099\begin_layout Plain Layout
3100local_comm
3101\end_layout
3102
3103\end_inset
3104
3105 or
3106\begin_inset Flex Code
3107status collapsed
3108
3109\begin_layout Plain Layout
3110MPI_COMM_WORLD
3111\end_layout
3112
3113\end_inset
3114
3115 can be used by the model for it own communication.
3116\end_layout
3117
3118\begin_layout Itemize
3119If server mode is activated (
3120\begin_inset Flex Code
3121status collapsed
3122
3123\begin_layout Plain Layout
3124using_server=true
3125\end_layout
3126
3127\end_inset
3128
3129) :
3130\begin_inset Flex Code
3131status collapsed
3132
3133\begin_layout Plain Layout
3134local_comm
3135\end_layout
3136
3137\end_inset
3138
3139 must not be specified since the global
3140\begin_inset Flex Code
3141status collapsed
3142
3143\begin_layout Plain Layout
3144MPI_COMM_WORLD
3145\end_layout
3146
3147\end_inset
3148
3149 communicator would be splitted by XIOS.
3150 The split communicator is returned in
3151\begin_inset Flex Code
3152status collapsed
3153
3154\begin_layout Plain Layout
3155return_comm
3156\end_layout
3157
3158\end_inset
3159
3160 argument.
3161\end_layout
3162
3163\end_deeper
3164\begin_layout Itemize
3165If OASIS coupler is used (
3166\begin_inset Flex Code
3167status collapsed
3168
3169\begin_layout Plain Layout
3170using_oasis=true
3171\end_layout
3172
3173\end_inset
3174
3175)
3176\end_layout
3177
3178\begin_deeper
3179\begin_layout Itemize
3180If server mode is not enabled (
3181\begin_inset Flex Code
3182status collapsed
3183
3184\begin_layout Plain Layout
3185using_server=false
3186\end_layout
3187
3188\end_inset
3189
3190)
3191\end_layout
3192
3193\begin_deeper
3194\begin_layout Itemize
3195If
3196\begin_inset Flex Code
3197status collapsed
3198
3199\begin_layout Plain Layout
3200local_comm
3201\end_layout
3202
3203\end_inset
3204
3205 is specified, it means that OASIS has been initialized by the model and
3206 global communicator has been already split previously by OASIS, and passed
3207 as
3208\begin_inset Flex Code
3209status collapsed
3210
3211\begin_layout Plain Layout
3212local_comm
3213\end_layout
3214
3215\end_inset
3216
3217 argument.
3218 The returned communicator would be a duplicate copy of
3219\begin_inset Flex Code
3220status collapsed
3221
3222\begin_layout Plain Layout
3223local_comm
3224\end_layout
3225
3226\end_inset
3227
3228.
3229\end_layout
3230
3231\begin_layout Itemize
3232Otherwise : if MPI was not initialized, OASIS will be initialized calling
3233 
3234\begin_inset Flex Code
3235status collapsed
3236
3237\begin_layout Plain Layout
3238prism_init_comp_proto
3239\end_layout
3240
3241\end_inset
3242
3243 subroutine.
3244 In this case, XIOS will call
3245\begin_inset Flex Code
3246status collapsed
3247
3248\begin_layout Plain Layout
3249prism_terminate_proto
3250\end_layout
3251
3252\end_inset
3253
3254 when
3255\begin_inset Flex Code
3256status collapsed
3257
3258\begin_layout Plain Layout
3259xios_finalized
3260\end_layout
3261
3262\end_inset
3263
3264 is called.
3265 The split communicator is returned in
3266\begin_inset Flex Code
3267status collapsed
3268
3269\begin_layout Plain Layout
3270return_comm
3271\end_layout
3272
3273\end_inset
3274
3275 argument using
3276\begin_inset Flex Code
3277status collapsed
3278
3279\begin_layout Plain Layout
3280prism_get_localcomm_proto
3281\end_layout
3282
3283\end_inset
3284
3285 return argument.
3286\end_layout
3287
3288\end_deeper
3289\begin_layout Itemize
3290If server mode is enabled (
3291\begin_inset Flex Code
3292status collapsed
3293
3294\begin_layout Plain Layout
3295using_server=true
3296\end_layout
3297
3298\end_inset
3299
3300)
3301\end_layout
3302
3303\begin_deeper
3304\begin_layout Itemize
3305If
3306\begin_inset Flex Code
3307status collapsed
3308
3309\begin_layout Plain Layout
3310local_comm
3311\end_layout
3312
3313\end_inset
3314
3315 is specified, it means that OASIS has been initialized by the model and
3316 global communicator has been already split previously by OASIS, and passed
3317 as local_comm argument.
3318 The returned communicator return_comm would be a split communicator given
3319 by OASIS.
3320\end_layout
3321
3322\begin_layout Itemize
3323Otherwise : if MPI was not initialized, OASIS will be initialized calling
3324 
3325\begin_inset Flex Code
3326status collapsed
3327
3328\begin_layout Plain Layout
3329prism_init_comp_proto
3330\end_layout
3331
3332\end_inset
3333
3334 subroutine.
3335 In this case, XIOS will call
3336\begin_inset Flex Code
3337status collapsed
3338
3339\begin_layout Plain Layout
3340prism_terminate_proto
3341\end_layout
3342
3343\end_inset
3344
3345 when
3346\begin_inset Flex Code
3347status collapsed
3348
3349\begin_layout Plain Layout
3350xios_finalized
3351\end_layout
3352
3353\end_inset
3354
3355 is called.
3356 The split communicator is returned in
3357\begin_inset Flex Code
3358status collapsed
3359
3360\begin_layout Plain Layout
3361return_comm
3362\end_layout
3363
3364\end_inset
3365
3366 argument using
3367\begin_inset Flex Code
3368status collapsed
3369
3370\begin_layout Plain Layout
3371prism_get_localcomm_proto
3372\end_layout
3373
3374\end_inset
3375
3376 return argument.
3377\end_layout
3378
3379\end_deeper
3380\end_deeper
3381\begin_layout Section*
3382Finalization
3383\end_layout
3384
3385\begin_layout Subsection*
3386XIOS finalization
3387\end_layout
3388
3389\begin_layout Subsubsection*
3390Synopsis :
3391\end_layout
3392
3393\begin_layout LyX-Code
3394SUBROUTINE xios_finalize()
3395\end_layout
3396
3397\begin_layout Subsubsection*
3398Arguments :
3399\end_layout
3400
3401\begin_layout Standard
3402None
3403\end_layout
3404
3405\begin_layout Subsubsection*
3406Description :
3407\end_layout
3408
3409\begin_layout Standard
3410This call must be done at the end of the simulation for a succesfull execution.
3411 It gives the end signal to the xios server pools to finish it execution.
3412 If MPI has been initialize by XIOS the MPI_Finalize will be called.
3413 If OASIS coupler has been initialized by XIOS, then finalization will be
3414 done calling
3415\begin_inset Flex Code
3416status collapsed
3417
3418\begin_layout Plain Layout
3419prism_terminate_proto
3420\end_layout
3421
3422\end_inset
3423
3424 subroutine.
3425\end_layout
3426
3427\begin_layout Section*
3428Tree elements management subroutines
3429\end_layout
3430
3431\begin_layout Standard
3432This set of subroutines enable the models to interact, complete or query
3433 the XML tree data base.
3434 New elements or group of elements can be added as child in the tree, attributes
3435 of the elements can be set or query.
3436 The type of element actually avalaible are : context, axis, domain, grid,
3437 field, variable and file.
3438 An element can be identified by a string or by an handle associated to
3439 the type of the element.
3440 Root element (ex :
3441\begin_inset Quotes eld
3442\end_inset
3443
3444axis_definition
3445\begin_inset Quotes erd
3446\end_inset
3447
3448,
3449\begin_inset Quotes eld
3450\end_inset
3451
3452field_definition
3453\begin_inset Quotes erd
3454\end_inset
3455
3456,....) are considered like a group of element and are identified by a specific
3457 string
3458\begin_inset Quotes eld
3459\end_inset
3460
3461element_definition
3462\begin_inset Quotes erd
3463\end_inset
3464
3465 where element can be any one of the existing elements.
3466\end_layout
3467
3468\begin_layout Subsection*
3469Fortran type of the handles element
3470\end_layout
3471
3472\begin_layout Quotation
3473TYPE(txios_element)
3474\end_layout
3475
3476\begin_layout Standard
3477where
3478\begin_inset Quotes eld
3479\end_inset
3480
3481element
3482\begin_inset Quotes erd
3483\end_inset
3484
3485 can be any one among
3486\begin_inset Quotes eld
3487\end_inset
3488
3489context
3490\begin_inset Quotes erd
3491\end_inset
3492
3493,
3494\begin_inset Quotes eld
3495\end_inset
3496
3497axis
3498\begin_inset Quotes erd
3499\end_inset
3500
3501,
3502\begin_inset Quotes eld
3503\end_inset
3504
3505domain
3506\begin_inset Quotes erd
3507\end_inset
3508
3509,
3510\begin_inset Quotes eld
3511\end_inset
3512
3513grid
3514\begin_inset Quotes erd
3515\end_inset
3516
3517,
3518\begin_inset Quotes eld
3519\end_inset
3520
3521field
3522\begin_inset Quotes erd
3523\end_inset
3524
3525,
3526\begin_inset Quotes eld
3527\end_inset
3528
3529variable
3530\begin_inset Quotes erd
3531\end_inset
3532
3533 or
3534\begin_inset Quotes eld
3535\end_inset
3536
3537file
3538\begin_inset Quotes erd
3539\end_inset
3540
3541, or the associated group (excepted for context) :
3542\begin_inset Quotes eld
3543\end_inset
3544
3545axis_group
3546\begin_inset Quotes erd
3547\end_inset
3548
3549,
3550\begin_inset Quotes eld
3551\end_inset
3552
3553domain_group
3554\begin_inset Quotes erd
3555\end_inset
3556
3557,
3558\begin_inset Quotes eld
3559\end_inset
3560
3561grid_group
3562\begin_inset Quotes erd
3563\end_inset
3564
3565,
3566\begin_inset Quotes eld
3567\end_inset
3568
3569field_group
3570\begin_inset Quotes erd
3571\end_inset
3572
3573,
3574\begin_inset Quotes eld
3575\end_inset
3576
3577variable_group
3578\begin_inset Quotes erd
3579\end_inset
3580
3581 or
3582\begin_inset Quotes eld
3583\end_inset
3584
3585file_group
3586\begin_inset Quotes erd
3587\end_inset
3588
3589.
3590\end_layout
3591
3592\begin_layout Subsection*
3593Getting handles
3594\end_layout
3595
3596\begin_layout Subsubsection*
3597Synopsis :
3598\end_layout
3599
3600\begin_layout LyX-Code
3601SUBROUTINE xios_get_element_handle(id,handle)
3602\end_layout
3603
3604\begin_layout LyX-Code
3605CHARACTER(len = *) , INTENT(IN) :: id
3606\end_layout
3607
3608\begin_layout LyX-Code
3609TYPE(txios_element), INTENT(OUT):: handle
3610\end_layout
3611
3612\begin_layout Standard
3613whera element is one of the existing element or group of element.
3614\end_layout
3615
3616\begin_layout Subsubsection*
3617Arguments :
3618\end_layout
3619
3620\begin_layout Itemize
3621\begin_inset Flex Code
3622status collapsed
3623
3624\begin_layout Plain Layout
3625id
3626\end_layout
3627
3628\end_inset
3629
3630 : string identifier.
3631\end_layout
3632
3633\begin_layout Itemize
3634\begin_inset Flex Code
3635status collapsed
3636
3637\begin_layout Plain Layout
3638handle
3639\end_layout
3640
3641\end_inset
3642
3643 : element handle
3644\end_layout
3645
3646\begin_layout Subsubsection*
3647Description :
3648\end_layout
3649
3650\begin_layout Standard
3651This subroutine return the handle of the specified element identified by
3652 its string.
3653 The element must be existing otherwise it raise an error.
3654\end_layout
3655
3656\begin_layout Subsection*
3657Query for a valid element
3658\end_layout
3659
3660\begin_layout Subsubsection*
3661Synopsis :
3662\end_layout
3663
3664\begin_layout LyX-Code
3665LOGICAL FUNCTION xios_is_valid_element(id)
3666\end_layout
3667
3668\begin_layout LyX-Code
3669CHARACTER(len = *) , INTENT(IN) :: id
3670\end_layout
3671
3672\begin_layout Standard
3673whera element is one of the existing element or group of element.
3674\end_layout
3675
3676\begin_layout Subsubsection*
3677Arguments :
3678\end_layout
3679
3680\begin_layout Itemize
3681\begin_inset Flex Code
3682status collapsed
3683
3684\begin_layout Plain Layout
3685id
3686\end_layout
3687
3688\end_inset
3689
3690 : string identifier.
3691\end_layout
3692
3693\begin_layout Subsubsection*
3694Description :
3695\end_layout
3696
3697\begin_layout Standard
3698This function return .TRUE.
3699 if the element defined by the string identifier id is existing in the data
3700 base, otherwise it return .FALSE.
3701 .
3702\end_layout
3703
3704\begin_layout Subsection*
3705Adding child
3706\end_layout
3707
3708\begin_layout Subsubsection*
3709Synopsis :
3710\end_layout
3711
3712\begin_layout LyX-Code
3713SUBROUTINE xios_add_element(parent_handle, child_handle, child_id)
3714\end_layout
3715
3716\begin_layout LyX-Code
3717TYPE(txios_element)         , INTENT(IN) :: parent_handle
3718\end_layout
3719
3720\begin_layout LyX-Code
3721TYPE(txios_element)         , INTENT(OUT):: child_handle
3722\end_layout
3723
3724\begin_layout LyX-Code
3725CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
3726\end_layout
3727
3728\begin_layout Standard
3729where element is one of the existing element or group of element.
3730\end_layout
3731
3732\begin_layout Subsubsection*
3733Arguments :
3734\end_layout
3735
3736\begin_layout Itemize
3737\begin_inset Flex Code
3738status collapsed
3739
3740\begin_layout Plain Layout
3741parent_handle
3742\end_layout
3743
3744\end_inset
3745
3746 : handle of the parent element.
3747\end_layout
3748
3749\begin_layout Itemize
3750\begin_inset Flex Code
3751status collapsed
3752
3753\begin_layout Plain Layout
3754child_handle
3755\end_layout
3756
3757\end_inset
3758
3759 : handle of the child element.
3760\end_layout
3761
3762\begin_layout Itemize
3763\begin_inset Flex Code
3764status collapsed
3765
3766\begin_layout Plain Layout
3767child_id
3768\end_layout
3769
3770\end_inset
3771
3772 : string identifier of the child.
3773\end_layout
3774
3775\begin_layout Subsubsection*
3776Description :
3777\end_layout
3778
3779\begin_layout Standard
3780This subroutine add a child to an existing parent element.
3781 The identifier of the child, if existing, can be specified optionally.
3782 All group elements can contains child of the same kind, provided generic
3783 inheritance.
3784 Some elements can contains childs of an other kind for a specific behaviour.
3785 File element may contains field_group, field, variable and variable_group
3786 child elements.
3787 Field elements may contains variable_group of variable child element.
3788\end_layout
3789
3790\begin_layout Subsection*
3791Query if a value of an element attributes is defined (by handle)
3792\end_layout
3793
3794\begin_layout Subsubsection*
3795Synopsis :
3796\end_layout
3797
3798\begin_layout LyX-Code
3799SUBROUTINE xios_is_defined_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
3800 ...)
3801\end_layout
3802
3803\begin_layout LyX-Code
3804TYPE(txios_element)         , INTENT(IN) :: handle
3805\end_layout
3806
3807\begin_layout LyX-Code
3808LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
3809\end_layout
3810
3811\begin_layout LyX-Code
3812LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
3813\end_layout
3814
3815\begin_layout LyX-Code
3816....
3817\end_layout
3818
3819\begin_layout Standard
3820where element is one of the existing element or group of element.
3821 attribute_x is describing in the chapter dedicated to the attribute description.
3822\end_layout
3823
3824\begin_layout Subsubsection*
3825Arguments :
3826\end_layout
3827
3828\begin_layout Itemize
3829\begin_inset Flex Code
3830status collapsed
3831
3832\begin_layout Plain Layout
3833handle
3834\end_layout
3835
3836\end_inset
3837
3838 : element handle.
3839\end_layout
3840
3841\begin_layout Itemize
3842\begin_inset Flex Code
3843status collapsed
3844
3845\begin_layout Plain Layout
3846attr_x
3847\end_layout
3848
3849\end_inset
3850
3851 : return true if the attribute as a defined value.
3852\end_layout
3853
3854\begin_layout Subsubsection*
3855Description :
3856\end_layout
3857
3858\begin_layout Standard
3859This subroutine my be used to query if one or more attributes of an element
3860 have a defined value.
3861 The list of attributes and their type are described in a specific chapter
3862 of the documention.
3863 
3864\end_layout
3865
3866\begin_layout Subsection*
3867Query if a value of an element attributes is defined (by identifier)
3868\end_layout
3869
3870\begin_layout Subsubsection*
3871Synopsis :
3872\end_layout
3873
3874\begin_layout LyX-Code
3875SUBROUTINE xios_is_defined_element_attr(id, attr_1=attribute_1, attr_2=attribute
3876_2, ...)
3877\end_layout
3878
3879\begin_layout LyX-Code
3880CHARACTER(len = *) , INTENT(IN) :: id
3881\end_layout
3882
3883\begin_layout LyX-Code
3884LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_1
3885\end_layout
3886
3887\begin_layout LyX-Code
3888LOGICAL, OPTIONAL  , INTENT(OUT) :: attr_2
3889\end_layout
3890
3891\begin_layout LyX-Code
3892....
3893\end_layout
3894
3895\begin_layout Standard
3896where element is one of the existing element or group of element.
3897 attribute_x is describing in the chapter dedicated to the attribute description.
3898\end_layout
3899
3900\begin_layout Subsubsection*
3901Arguments :
3902\end_layout
3903
3904\begin_layout Itemize
3905\begin_inset Flex Code
3906status collapsed
3907
3908\begin_layout Plain Layout
3909id
3910\end_layout
3911
3912\end_inset
3913
3914 : element identifier.
3915\end_layout
3916
3917\begin_layout Itemize
3918\begin_inset Flex Code
3919status collapsed
3920
3921\begin_layout Plain Layout
3922attr_x
3923\end_layout
3924
3925\end_inset
3926
3927 : return true if the attribute as a defined value.
3928\end_layout
3929
3930\begin_layout Subsubsection*
3931Description :
3932\end_layout
3933
3934\begin_layout Standard
3935This subroutine my be used to query if one or more attributes of an element
3936 have a defined value.
3937 The list of available attributes and their type are described in a specific
3938 chapter of the documention.
3939 
3940\end_layout
3941
3942\begin_layout Subsection*
3943Setting element attributes value by handle
3944\end_layout
3945
3946\begin_layout Subsubsection*
3947Synopsis :
3948\end_layout
3949
3950\begin_layout LyX-Code
3951SUBROUTINE xios_set_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
3952 ...)
3953\end_layout
3954
3955\begin_layout LyX-Code
3956TYPE(txios_element)         , INTENT(IN) :: handle
3957\end_layout
3958
3959\begin_layout LyX-Code
3960attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
3961\end_layout
3962
3963\begin_layout LyX-Code
3964attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
3965\end_layout
3966
3967\begin_layout LyX-Code
3968....
3969\end_layout
3970
3971\begin_layout Standard
3972where element is one of the existing element or group of element.
3973 attribute_x and attribute_type_x are describing in the chapter dedicated
3974 to the attribute description.
3975\end_layout
3976
3977\begin_layout Subsubsection*
3978Arguments :
3979\end_layout
3980
3981\begin_layout Itemize
3982\begin_inset Flex Code
3983status collapsed
3984
3985\begin_layout Plain Layout
3986handle
3987\end_layout
3988
3989\end_inset
3990
3991 : element handle.
3992\end_layout
3993
3994\begin_layout Itemize
3995\begin_inset Flex Code
3996status collapsed
3997
3998\begin_layout Plain Layout
3999attr_x
4000\end_layout
4001
4002\end_inset
4003
4004 : value of the attribute to be set.
4005\end_layout
4006
4007\begin_layout Subsubsection*
4008Description :
4009\end_layout
4010
4011\begin_layout Standard
4012This subroutine my be used to set one or more attribute to an element defined
4013 by its handle.
4014 The list of available attributes and their type are described in a specific
4015 chapter of the documention.
4016 
4017\end_layout
4018
4019\begin_layout Subsection*
4020Setting element attributes value by id
4021\end_layout
4022
4023\begin_layout Subsubsection*
4024Synopsis :
4025\end_layout
4026
4027\begin_layout LyX-Code
4028SUBROUTINE xios_set_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
4029 ...)
4030\end_layout
4031
4032\begin_layout LyX-Code
4033CHARACTER(len = *),  INTENT(IN)          :: id
4034\end_layout
4035
4036\begin_layout LyX-Code
4037attribute_type_1, OPTIONAL  , INTENT(IN) :: attr_1
4038\end_layout
4039
4040\begin_layout LyX-Code
4041attribute_type_2, OPTIONAL  , INTENT(IN) :: attr_2
4042\end_layout
4043
4044\begin_layout LyX-Code
4045....
4046\end_layout
4047
4048\begin_layout Standard
4049where element is one of the existing element or group of element.
4050 attribute_x and attribute_type_x are describing in the chapter dedicated
4051 to the attribute description.
4052\end_layout
4053
4054\begin_layout Subsubsection*
4055Arguments :
4056\end_layout
4057
4058\begin_layout Itemize
4059\begin_inset Flex Code
4060status collapsed
4061
4062\begin_layout Plain Layout
4063id
4064\end_layout
4065
4066\end_inset
4067
4068 : string identifier.
4069\end_layout
4070
4071\begin_layout Itemize
4072\begin_inset Flex Code
4073status collapsed
4074
4075\begin_layout Plain Layout
4076attr_x
4077\end_layout
4078
4079\end_inset
4080
4081 : value of the attribute to be set.
4082\end_layout
4083
4084\begin_layout Subsubsection*
4085Description :
4086\end_layout
4087
4088\begin_layout Standard
4089This subroutine my be used to set one or more attribute to an element defined
4090 by its string id.
4091 The list of available attributes and their type are described in a specific
4092 chapter of the documention.
4093\end_layout
4094
4095\begin_layout Subsection*
4096Getting element attributes value (by handle)
4097\end_layout
4098
4099\begin_layout Subsubsection*
4100Synopsis :
4101\end_layout
4102
4103\begin_layout LyX-Code
4104SUBROUTINE xios_get_attr(handle, attr_1=attribute_1, attr_2=attribute_2,
4105 ...)
4106\end_layout
4107
4108\begin_layout LyX-Code
4109TYPE(txios_element)         , INTENT(IN) :: handle
4110\end_layout
4111
4112\begin_layout LyX-Code
4113attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
4114\end_layout
4115
4116\begin_layout LyX-Code
4117attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
4118\end_layout
4119
4120\begin_layout LyX-Code
4121....
4122\end_layout
4123
4124\begin_layout Standard
4125where element is one of the existing element or group of element.
4126 attribute_x and attribute_type_x are describing in the chapter dedicated
4127 to the attribute description.
4128\end_layout
4129
4130\begin_layout Subsubsection*
4131Arguments :
4132\end_layout
4133
4134\begin_layout Itemize
4135\begin_inset Flex Code
4136status collapsed
4137
4138\begin_layout Plain Layout
4139handle
4140\end_layout
4141
4142\end_inset
4143
4144 : element handle.
4145\end_layout
4146
4147\begin_layout Itemize
4148\begin_inset Flex Code
4149status collapsed
4150
4151\begin_layout Plain Layout
4152attr_x
4153\end_layout
4154
4155\end_inset
4156
4157 : value of the attribute to be get.
4158\end_layout
4159
4160\begin_layout Subsubsection*
4161Description :
4162\end_layout
4163
4164\begin_layout Standard
4165This subroutine my be used to get one or more attribute value of an element
4166 defined by its handle.
4167 All attributes in the arguments list must be defined.
4168 The list of available attributes and their type are described in a specific
4169 chapter of the documention.
4170 
4171\end_layout
4172
4173\begin_layout Subsection*
4174Getting element attributes value (by identifier)
4175\end_layout
4176
4177\begin_layout Subsubsection*
4178Synopsis :
4179\end_layout
4180
4181\begin_layout LyX-Code
4182SUBROUTINE xios_get_element_attr(id, attr_1=attribute_1, attr_2=attribute_2,
4183 ...)
4184\end_layout
4185
4186\begin_layout LyX-Code
4187CHARACTER(len = *),   INTENT(IN)          :: id
4188\end_layout
4189
4190\begin_layout LyX-Code
4191attribute_type_1, OPTIONAL  , INTENT(OUT) :: attr_1
4192\end_layout
4193
4194\begin_layout LyX-Code
4195attribute_type_2, OPTIONAL  , INTENT(OUT) :: attr_2
4196\end_layout
4197
4198\begin_layout LyX-Code
4199....
4200\end_layout
4201
4202\begin_layout Standard
4203where element is one of the existing element or group of element.
4204 attribute_x is describing in the chapter dedicated to the attribute description.
4205\end_layout
4206
4207\begin_layout Subsubsection*
4208Arguments :
4209\end_layout
4210
4211\begin_layout Itemize
4212\begin_inset Flex Code
4213status collapsed
4214
4215\begin_layout Plain Layout
4216id
4217\end_layout
4218
4219\end_inset
4220
4221 : element string identifier.
4222\end_layout
4223
4224\begin_layout Itemize
4225\begin_inset Flex Code
4226status collapsed
4227
4228\begin_layout Plain Layout
4229attr_x
4230\end_layout
4231
4232\end_inset
4233
4234 : value of the attribute to be get.
4235\end_layout
4236
4237\begin_layout Subsubsection*
4238Description :
4239\end_layout
4240
4241\begin_layout Standard
4242This subroutine my be used to get one or more attribute value of an element
4243 defined by its handle.
4244 All attributes in the arguments list must have a defined value.
4245 The list of available attributes and their type are described in a specific
4246 chapter of the documention.
4247\end_layout
4248
4249\begin_layout Section*
4250Interface relative to context managment
4251\end_layout
4252
4253\begin_layout Subsection*
4254XIOS context initialization
4255\end_layout
4256
4257\begin_layout Subsubsection*
4258Synopsis :
4259\end_layout
4260
4261\begin_layout LyX-Code
4262SUBROUTINE xios_context_initialize(context_id, context_comm)
4263\end_layout
4264
4265\begin_layout LyX-Code
4266  CHARACTER(LEN=*),INTENT(IN)         :: context_id
4267\end_layout
4268
4269\begin_layout LyX-Code
4270  INTEGER,INTENT(IN)                  :: context_comm
4271\end_layout
4272
4273\begin_layout Subsubsection*
4274Argument :
4275\end_layout
4276
4277\begin_layout Itemize
4278\begin_inset Flex Code
4279status collapsed
4280
4281\begin_layout Plain Layout
4282context_id
4283\end_layout
4284
4285\end_inset
4286
4287 : context identifier
4288\end_layout
4289
4290\begin_layout Itemize
4291\begin_inset Flex Code
4292status collapsed
4293
4294\begin_layout Plain Layout
4295context_comm
4296\end_layout
4297
4298\end_inset
4299
4300 : MPI communicator of the context
4301\end_layout
4302
4303\begin_layout Subsubsection*
4304Description :
4305\end_layout
4306
4307\begin_layout Standard
4308This subroutine initialize a context identified by
4309\begin_inset Flex Code
4310status collapsed
4311
4312\begin_layout Plain Layout
4313context_id
4314\end_layout
4315
4316\end_inset
4317
4318 string and must be called before any call related to this context.
4319 A context must be associated to a communicator, which can be the returned
4320 communicator of the
4321\begin_inset Flex Code
4322status collapsed
4323
4324\begin_layout Plain Layout
4325xios_initialize
4326\end_layout
4327
4328\end_inset
4329
4330 subroutine or a sub-communicator of this.
4331 The context initialization is dynamic and can be done at any time before
4332 the
4333\begin_inset Flex Code
4334status collapsed
4335
4336\begin_layout Plain Layout
4337xios_finalize
4338\end_layout
4339
4340\end_inset
4341
4342 call.
4343\end_layout
4344
4345\begin_layout Subsection*
4346XIOS context finalization
4347\end_layout
4348
4349\begin_layout Subsubsection*
4350Synopsis :
4351\end_layout
4352
4353\begin_layout LyX-Code
4354SUBROUTINE xios_context_finalize()
4355\end_layout
4356
4357\begin_layout Subsubsection*
4358Arguments :
4359\end_layout
4360
4361\begin_layout Standard
4362None
4363\end_layout
4364
4365\begin_layout Subsubsection*
4366Description :
4367\end_layout
4368
4369\begin_layout Standard
4370This subroutine must be call to close a context, before the
4371\begin_inset Flex Code
4372status collapsed
4373
4374\begin_layout Plain Layout
4375xios_finalize
4376\end_layout
4377
4378\end_inset
4379
4380 call.
4381 It waits until that all pending request sent to the servers will be processed
4382 and the opened files will be closed.
4383\end_layout
4384
4385\begin_layout Subsection*
4386Setting current active context
4387\end_layout
4388
4389\begin_layout Subsubsection*
4390Synopsis :
4391\end_layout
4392
4393\begin_layout LyX-Code
4394SUBROUTINE xios_set_current_context(context_handle)
4395\end_layout
4396
4397\begin_layout LyX-Code
4398TYPE(txios_context),INTENT(IN) :: context_handle
4399\end_layout
4400
4401\begin_layout Standard
4402or
4403\end_layout
4404
4405\begin_layout LyX-Code
4406SUBROUTINE xios_set_current_context(context_id)
4407\end_layout
4408
4409\begin_layout LyX-Code
4410CHARACTER(LEN=*),INTENT(IN) :: context_id
4411\end_layout
4412
4413\begin_layout Subsubsection*
4414Arguments :
4415\end_layout
4416
4417\begin_layout Itemize
4418\begin_inset Flex Code
4419status collapsed
4420
4421\begin_layout Plain Layout
4422context_handle
4423\end_layout
4424
4425\end_inset
4426
4427 : handle of the context
4428\end_layout
4429
4430\begin_layout Standard
4431or
4432\end_layout
4433
4434\begin_layout Itemize
4435\begin_inset Flex Code
4436status collapsed
4437
4438\begin_layout Plain Layout
4439context_id
4440\end_layout
4441
4442\end_inset
4443
4444 : string context identifier
4445\end_layout
4446
4447\begin_layout Subsubsection*
4448Description :
4449\end_layout
4450
4451\begin_layout Standard
4452These subroutines set the current active context.
4453 All xios calls after will refer to this active context.
4454 If only one context is defined, it is automatically set as the active context.
4455 
4456\end_layout
4457
4458\begin_layout Subsection*
4459Closing definition
4460\end_layout
4461
4462\begin_layout Subsubsection*
4463Synopsis :
4464\end_layout
4465
4466\begin_layout LyX-Code
4467SUBROUTINE xios_close_context_definition()
4468\end_layout
4469
4470\begin_layout Subsubsection*
4471Arguments :
4472\end_layout
4473
4474\begin_layout Standard
4475None
4476\end_layout
4477
4478\begin_layout Subsubsection*
4479Description :
4480\end_layout
4481
4482\begin_layout Standard
4483This subroutine must be call when all definitions of a context is finished
4484 at the end of the initialization and before entering to the time loop.
4485 A lot of operations are performed internally (inheritance, grid definition,
4486 contacting servers,...) so this call is mandatory.
4487 Any call related to the tree management definition done after will have
4488 an indefined effect.
4489\end_layout
4490
4491\begin_layout Subsection*
4492Defining the time step of the context
4493\end_layout
4494
4495\begin_layout Subsubsection*
4496Synopsis :
4497\end_layout
4498
4499\begin_layout LyX-Code
4500SUBROUTINE xios_set_timestep(timestep)
4501\end_layout
4502
4503\begin_layout LyX-Code
4504TYPE(txios_time),INTENT(IN) :: timestep
4505\end_layout
4506
4507\begin_layout Subsubsection*
4508Arguments :
4509\end_layout
4510
4511\begin_layout Itemize
4512\begin_inset Flex Code
4513status collapsed
4514
4515\begin_layout Plain Layout
4516timestep
4517\end_layout
4518
4519\end_inset
4520
4521 : timestep of the model using time units
4522\end_layout
4523
4524\begin_layout Subsubsection*
4525Description :
4526\end_layout
4527
4528\begin_layout Standard
4529This subroutine fix the timestep of the current context.
4530 Must be call before closing context definition.
4531\end_layout
4532
4533\end_body
4534\end_document
Note: See TracBrowser for help on using the repository browser.