PDI 1.4.3

the PDI data interface

pdif.h
1 !******************************************************************************
2 ! Copyright (C) 2015-2020 Commissariat a l'energie atomique et aux energies alternatives (CEA)
3 ! Copyright (C) 2021 Centre national de la recherche scientifique (CNRS)
4 ! All rights reserved.
5 !
6 ! Redistribution and use in source and binary forms, with or without
7 ! modification, are permitted provided that the following conditions are met:
8 ! * Redistributions of source code must retain the above copyright
9 ! notice, this list of conditions and the following disclaimer.
10 ! * Redistributions in binary form must reproduce the above copyright
11 ! notice, this list of conditions and the following disclaimer in the
12 ! documentation and/or other materials provided with the distribution.
13 ! * Neither the name of CEA nor the names of its contributors may be used to
14 ! endorse or promote products derived from this software without specific
15 ! prior written permission.
16 !
17 ! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 ! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 ! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 ! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 ! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 ! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 ! THE SOFTWARE.
24 !******************************************************************************
25 
26 
27 !> These are the values for enum PDI_inout_t
28 !! \{
29 integer, parameter :: PDI_NONE = 0
30 integer, parameter :: PDI_IN = 1
31 integer, parameter :: PDI_OUT = 2
32 integer, parameter :: PDI_INOUT = 3
33 !> \}
34 
35 
36 interface
37 
38  !=============================================================================
39  !< initializes PDI
40  !! \param[IN] treeconf the configuration
41  !! \param[OUT] err for error status (optional)
42  subroutine PDI_init(treeconf, err)
43  use paraconf
44  type(PC_tree_t), intent(IN) :: treeconf
45  integer, intent(OUT), optional :: err
46  endsubroutine PDI_init
47  !=============================================================================
48 
49 
50  !=============================================================================
51  !< finalizes PDI
52  !! \param[OUT] err for error status (optional)
53  subroutine PDI_finalize(err)
54  integer, intent(OUT), optional :: err
55  endsubroutine PDI_finalize
56  !=============================================================================
57 
58 
59  !=============================================================================
60  !< triggers a PDI "event"
61  !! \param[IN] event the event name
62  !! \param[OUT] err for error status (optional)
63  subroutine PDI_event(event, err)
64  character(len=*), intent(IN) :: event
65  integer, intent(OUT), optional :: err
66  endsubroutine PDI_event
67  !=============================================================================
68 
69 
70  !=============================================================================
71  !< wrapper for PDI_release :
72  !! releases ownership of a data shared with PDI. PDI is then responsible to
73  !! free the associated memory whenever necessary.
74  !! \param[IN] name name of the data to release
75  !! \param[OUT] err for error status (optional)
76  !! \pre ownership of the data buffer is shared between PDI and the user code
77  !! \pre PDI owns the data buffer
78  subroutine PDI_release(name, err)
79  character(len=*), intent(IN) :: name
80  integer, intent(OUT), optional :: err
81  endsubroutine PDI_release
82  !=============================================================================
83 
84 
85  !=============================================================================
86  !< wrapper for PDI_reclaim :
87  !! reclaims ownership of a data buffer shared with PDI. PDI is then
88  !! responsible to free the associated memory whenever necessary.
89  !! \param[IN] name name of the data to reclaim
90  !! \param[OUT] err for error status (optional)
91  !! \pre ownership of the data buffer is shared between PDI and the user code
92  !! \post the user code owns the data buffer
93  subroutine PDI_reclaim(name, err)
94  character(len=*), intent(IN) :: name
95  integer, intent(OUT), optional :: err
96  endsubroutine PDI_reclaim
97  !=============================================================================
98 
99 
100  !=============================================================================
101  !< Begin a transaction. All the ::PDI_expose will be exposed together.
102  !!
103  !! This requires a ::PDI_transaction_end to close the transaction.
104  !!
105  !! \param[in] name the name of the transaction (an event thus named will be
106  !! triggered when all data become available)
107  !! \param[out] err an error status
108  subroutine PDI_transaction_begin( name, err )
109  character(len=*), intent(IN) :: name
110  integer, intent(OUT), optional :: err
111  endsubroutine PDI_transaction_begin
112  !=============================================================================
113 
114 
115  !=============================================================================
116  !< Ends the previously opened transaction.
117  !! \param[out] err an error status
118  subroutine PDI_transaction_end( err )
119  integer, intent(OUT), optional :: err
120  endsubroutine PDI_transaction_end
121  !=============================================================================
122 
123 endinterface
124 
125 
126 interface PDI_share
127 
128  !=============================================================================
129  !< shares some data with PDI. the user code should not modify it before
130  !! a call to either PDI_release or PDI_reclaim.
131  !! \param[IN] name the data name
132  !! \param[IN,OUT] data the data to share
133  !! \param[IN] access whether the data can be accessed for read or write by
134  !! PDI
135  !! \param[OUT] err for error status (optional)
136  !! \pre the user code owns the data buffer
137  !! \post ownership of the data buffer is shared between PDI and the user code
138  !!
139  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
140  !! * PDI_IN means PDI can set the buffer content
141  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
142  subroutine PDI_share_CHARACTER1_0D( name, data, access, err )
143  character(len=*), intent(IN) :: name
144  CHARACTER(KIND=1), target, asynchronous :: data
145  integer, intent(IN) :: access
146  integer, intent(OUT), optional :: err
147  endsubroutine PDI_share_CHARACTER1_0D
148  !=============================================================================
149 
150 
151  !=============================================================================
152  !< shares some data with PDI. the user code should not modify it before
153  !! a call to either PDI_release or PDI_reclaim.
154  !! \param[IN] name the data name
155  !! \param[IN,OUT] data the data to share
156  !! \param[IN] access whether the data can be accessed for read or write by
157  !! PDI
158  !! \param[OUT] err for error status (optional)
159  !! \pre the user code owns the data buffer
160  !! \post ownership of the data buffer is shared between PDI and the user code
161  !!
162  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
163  !! * PDI_IN means PDI can set the buffer content
164  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
165  subroutine PDI_share_CHARACTER1_1D( name, data, access, err )
166  character(len=*), intent(IN) :: name
167  CHARACTER(KIND=1), target, asynchronous :: data(:)
168  integer, intent(IN) :: access
169  integer, intent(OUT), optional :: err
170  endsubroutine PDI_share_CHARACTER1_1D
171  !=============================================================================
172 
173 
174  !=============================================================================
175  !< shares some data with PDI. the user code should not modify it before
176  !! a call to either PDI_release or PDI_reclaim.
177  !! \param[IN] name the data name
178  !! \param[IN,OUT] data the data to share
179  !! \param[IN] access whether the data can be accessed for read or write by
180  !! PDI
181  !! \param[OUT] err for error status (optional)
182  !! \pre the user code owns the data buffer
183  !! \post ownership of the data buffer is shared between PDI and the user code
184  !!
185  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
186  !! * PDI_IN means PDI can set the buffer content
187  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
188  subroutine PDI_share_CHARACTER1_2D( name, data, access, err )
189  character(len=*), intent(IN) :: name
190  CHARACTER(KIND=1), target, asynchronous :: data(:,:)
191  integer, intent(IN) :: access
192  integer, intent(OUT), optional :: err
193  endsubroutine PDI_share_CHARACTER1_2D
194  !=============================================================================
195 
196 
197  !=============================================================================
198  !< shares some data with PDI. the user code should not modify it before
199  !! a call to either PDI_release or PDI_reclaim.
200  !! \param[IN] name the data name
201  !! \param[IN,OUT] data the data to share
202  !! \param[IN] access whether the data can be accessed for read or write by
203  !! PDI
204  !! \param[OUT] err for error status (optional)
205  !! \pre the user code owns the data buffer
206  !! \post ownership of the data buffer is shared between PDI and the user code
207  !!
208  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
209  !! * PDI_IN means PDI can set the buffer content
210  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
211  subroutine PDI_share_CHARACTER1_3D( name, data, access, err )
212  character(len=*), intent(IN) :: name
213  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:)
214  integer, intent(IN) :: access
215  integer, intent(OUT), optional :: err
216  endsubroutine PDI_share_CHARACTER1_3D
217  !=============================================================================
218 
219 
220  !=============================================================================
221  !< shares some data with PDI. the user code should not modify it before
222  !! a call to either PDI_release or PDI_reclaim.
223  !! \param[IN] name the data name
224  !! \param[IN,OUT] data the data to share
225  !! \param[IN] access whether the data can be accessed for read or write by
226  !! PDI
227  !! \param[OUT] err for error status (optional)
228  !! \pre the user code owns the data buffer
229  !! \post ownership of the data buffer is shared between PDI and the user code
230  !!
231  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
232  !! * PDI_IN means PDI can set the buffer content
233  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
234  subroutine PDI_share_CHARACTER1_4D( name, data, access, err )
235  character(len=*), intent(IN) :: name
236  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:)
237  integer, intent(IN) :: access
238  integer, intent(OUT), optional :: err
239  endsubroutine PDI_share_CHARACTER1_4D
240  !=============================================================================
241 
242 
243  !=============================================================================
244  !< shares some data with PDI. the user code should not modify it before
245  !! a call to either PDI_release or PDI_reclaim.
246  !! \param[IN] name the data name
247  !! \param[IN,OUT] data the data to share
248  !! \param[IN] access whether the data can be accessed for read or write by
249  !! PDI
250  !! \param[OUT] err for error status (optional)
251  !! \pre the user code owns the data buffer
252  !! \post ownership of the data buffer is shared between PDI and the user code
253  !!
254  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
255  !! * PDI_IN means PDI can set the buffer content
256  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
257  subroutine PDI_share_CHARACTER1_5D( name, data, access, err )
258  character(len=*), intent(IN) :: name
259  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:)
260  integer, intent(IN) :: access
261  integer, intent(OUT), optional :: err
262  endsubroutine PDI_share_CHARACTER1_5D
263  !=============================================================================
264 
265 
266  !=============================================================================
267  !< shares some data with PDI. the user code should not modify it before
268  !! a call to either PDI_release or PDI_reclaim.
269  !! \param[IN] name the data name
270  !! \param[IN,OUT] data the data to share
271  !! \param[IN] access whether the data can be accessed for read or write by
272  !! PDI
273  !! \param[OUT] err for error status (optional)
274  !! \pre the user code owns the data buffer
275  !! \post ownership of the data buffer is shared between PDI and the user code
276  !!
277  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
278  !! * PDI_IN means PDI can set the buffer content
279  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
280  subroutine PDI_share_CHARACTER1_6D( name, data, access, err )
281  character(len=*), intent(IN) :: name
282  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
283  integer, intent(IN) :: access
284  integer, intent(OUT), optional :: err
285  endsubroutine PDI_share_CHARACTER1_6D
286  !=============================================================================
287 
288 
289  !=============================================================================
290  !< shares some data with PDI. the user code should not modify it before
291  !! a call to either PDI_release or PDI_reclaim.
292  !! \param[IN] name the data name
293  !! \param[IN,OUT] data the data to share
294  !! \param[IN] access whether the data can be accessed for read or write by
295  !! PDI
296  !! \param[OUT] err for error status (optional)
297  !! \pre the user code owns the data buffer
298  !! \post ownership of the data buffer is shared between PDI and the user code
299  !!
300  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
301  !! * PDI_IN means PDI can set the buffer content
302  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
303  subroutine PDI_share_CHARACTER1_7D( name, data, access, err )
304  character(len=*), intent(IN) :: name
305  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
306  integer, intent(IN) :: access
307  integer, intent(OUT), optional :: err
308  endsubroutine PDI_share_CHARACTER1_7D
309  !=============================================================================
310 
311 
312  !=============================================================================
313  !< shares some data with PDI. the user code should not modify it before
314  !! a call to either PDI_release or PDI_reclaim.
315  !! \param[IN] name the data name
316  !! \param[IN,OUT] data the data to share
317  !! \param[IN] access whether the data can be accessed for read or write by
318  !! PDI
319  !! \param[OUT] err for error status (optional)
320  !! \pre the user code owns the data buffer
321  !! \post ownership of the data buffer is shared between PDI and the user code
322  !!
323  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
324  !! * PDI_IN means PDI can set the buffer content
325  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
326  subroutine PDI_share_CHARACTER4_0D( name, data, access, err )
327  character(len=*), intent(IN) :: name
328  CHARACTER(KIND=4), target, asynchronous :: data
329  integer, intent(IN) :: access
330  integer, intent(OUT), optional :: err
331  endsubroutine PDI_share_CHARACTER4_0D
332  !=============================================================================
333 
334 
335  !=============================================================================
336  !< shares some data with PDI. the user code should not modify it before
337  !! a call to either PDI_release or PDI_reclaim.
338  !! \param[IN] name the data name
339  !! \param[IN,OUT] data the data to share
340  !! \param[IN] access whether the data can be accessed for read or write by
341  !! PDI
342  !! \param[OUT] err for error status (optional)
343  !! \pre the user code owns the data buffer
344  !! \post ownership of the data buffer is shared between PDI and the user code
345  !!
346  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
347  !! * PDI_IN means PDI can set the buffer content
348  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
349  subroutine PDI_share_CHARACTER4_1D( name, data, access, err )
350  character(len=*), intent(IN) :: name
351  CHARACTER(KIND=4), target, asynchronous :: data(:)
352  integer, intent(IN) :: access
353  integer, intent(OUT), optional :: err
354  endsubroutine PDI_share_CHARACTER4_1D
355  !=============================================================================
356 
357 
358  !=============================================================================
359  !< shares some data with PDI. the user code should not modify it before
360  !! a call to either PDI_release or PDI_reclaim.
361  !! \param[IN] name the data name
362  !! \param[IN,OUT] data the data to share
363  !! \param[IN] access whether the data can be accessed for read or write by
364  !! PDI
365  !! \param[OUT] err for error status (optional)
366  !! \pre the user code owns the data buffer
367  !! \post ownership of the data buffer is shared between PDI and the user code
368  !!
369  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
370  !! * PDI_IN means PDI can set the buffer content
371  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
372  subroutine PDI_share_CHARACTER4_2D( name, data, access, err )
373  character(len=*), intent(IN) :: name
374  CHARACTER(KIND=4), target, asynchronous :: data(:,:)
375  integer, intent(IN) :: access
376  integer, intent(OUT), optional :: err
377  endsubroutine PDI_share_CHARACTER4_2D
378  !=============================================================================
379 
380 
381  !=============================================================================
382  !< shares some data with PDI. the user code should not modify it before
383  !! a call to either PDI_release or PDI_reclaim.
384  !! \param[IN] name the data name
385  !! \param[IN,OUT] data the data to share
386  !! \param[IN] access whether the data can be accessed for read or write by
387  !! PDI
388  !! \param[OUT] err for error status (optional)
389  !! \pre the user code owns the data buffer
390  !! \post ownership of the data buffer is shared between PDI and the user code
391  !!
392  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
393  !! * PDI_IN means PDI can set the buffer content
394  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
395  subroutine PDI_share_CHARACTER4_3D( name, data, access, err )
396  character(len=*), intent(IN) :: name
397  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:)
398  integer, intent(IN) :: access
399  integer, intent(OUT), optional :: err
400  endsubroutine PDI_share_CHARACTER4_3D
401  !=============================================================================
402 
403 
404  !=============================================================================
405  !< shares some data with PDI. the user code should not modify it before
406  !! a call to either PDI_release or PDI_reclaim.
407  !! \param[IN] name the data name
408  !! \param[IN,OUT] data the data to share
409  !! \param[IN] access whether the data can be accessed for read or write by
410  !! PDI
411  !! \param[OUT] err for error status (optional)
412  !! \pre the user code owns the data buffer
413  !! \post ownership of the data buffer is shared between PDI and the user code
414  !!
415  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
416  !! * PDI_IN means PDI can set the buffer content
417  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
418  subroutine PDI_share_CHARACTER4_4D( name, data, access, err )
419  character(len=*), intent(IN) :: name
420  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:)
421  integer, intent(IN) :: access
422  integer, intent(OUT), optional :: err
423  endsubroutine PDI_share_CHARACTER4_4D
424  !=============================================================================
425 
426 
427  !=============================================================================
428  !< shares some data with PDI. the user code should not modify it before
429  !! a call to either PDI_release or PDI_reclaim.
430  !! \param[IN] name the data name
431  !! \param[IN,OUT] data the data to share
432  !! \param[IN] access whether the data can be accessed for read or write by
433  !! PDI
434  !! \param[OUT] err for error status (optional)
435  !! \pre the user code owns the data buffer
436  !! \post ownership of the data buffer is shared between PDI and the user code
437  !!
438  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
439  !! * PDI_IN means PDI can set the buffer content
440  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
441  subroutine PDI_share_CHARACTER4_5D( name, data, access, err )
442  character(len=*), intent(IN) :: name
443  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:)
444  integer, intent(IN) :: access
445  integer, intent(OUT), optional :: err
446  endsubroutine PDI_share_CHARACTER4_5D
447  !=============================================================================
448 
449 
450  !=============================================================================
451  !< shares some data with PDI. the user code should not modify it before
452  !! a call to either PDI_release or PDI_reclaim.
453  !! \param[IN] name the data name
454  !! \param[IN,OUT] data the data to share
455  !! \param[IN] access whether the data can be accessed for read or write by
456  !! PDI
457  !! \param[OUT] err for error status (optional)
458  !! \pre the user code owns the data buffer
459  !! \post ownership of the data buffer is shared between PDI and the user code
460  !!
461  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
462  !! * PDI_IN means PDI can set the buffer content
463  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
464  subroutine PDI_share_CHARACTER4_6D( name, data, access, err )
465  character(len=*), intent(IN) :: name
466  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
467  integer, intent(IN) :: access
468  integer, intent(OUT), optional :: err
469  endsubroutine PDI_share_CHARACTER4_6D
470  !=============================================================================
471 
472 
473  !=============================================================================
474  !< shares some data with PDI. the user code should not modify it before
475  !! a call to either PDI_release or PDI_reclaim.
476  !! \param[IN] name the data name
477  !! \param[IN,OUT] data the data to share
478  !! \param[IN] access whether the data can be accessed for read or write by
479  !! PDI
480  !! \param[OUT] err for error status (optional)
481  !! \pre the user code owns the data buffer
482  !! \post ownership of the data buffer is shared between PDI and the user code
483  !!
484  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
485  !! * PDI_IN means PDI can set the buffer content
486  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
487  subroutine PDI_share_CHARACTER4_7D( name, data, access, err )
488  character(len=*), intent(IN) :: name
489  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
490  integer, intent(IN) :: access
491  integer, intent(OUT), optional :: err
492  endsubroutine PDI_share_CHARACTER4_7D
493  !=============================================================================
494 
495 
496  !=============================================================================
497  !< shares some data with PDI. the user code should not modify it before
498  !! a call to either PDI_release or PDI_reclaim.
499  !! \param[IN] name the data name
500  !! \param[IN,OUT] data the data to share
501  !! \param[IN] access whether the data can be accessed for read or write by
502  !! PDI
503  !! \param[OUT] err for error status (optional)
504  !! \pre the user code owns the data buffer
505  !! \post ownership of the data buffer is shared between PDI and the user code
506  !!
507  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
508  !! * PDI_IN means PDI can set the buffer content
509  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
510  subroutine PDI_share_COMPLEX4_0D( name, data, access, err )
511  character(len=*), intent(IN) :: name
512  COMPLEX(KIND=4), target, asynchronous :: data
513  integer, intent(IN) :: access
514  integer, intent(OUT), optional :: err
515  endsubroutine PDI_share_COMPLEX4_0D
516  !=============================================================================
517 
518 
519  !=============================================================================
520  !< shares some data with PDI. the user code should not modify it before
521  !! a call to either PDI_release or PDI_reclaim.
522  !! \param[IN] name the data name
523  !! \param[IN,OUT] data the data to share
524  !! \param[IN] access whether the data can be accessed for read or write by
525  !! PDI
526  !! \param[OUT] err for error status (optional)
527  !! \pre the user code owns the data buffer
528  !! \post ownership of the data buffer is shared between PDI and the user code
529  !!
530  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
531  !! * PDI_IN means PDI can set the buffer content
532  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
533  subroutine PDI_share_COMPLEX4_1D( name, data, access, err )
534  character(len=*), intent(IN) :: name
535  COMPLEX(KIND=4), target, asynchronous :: data(:)
536  integer, intent(IN) :: access
537  integer, intent(OUT), optional :: err
538  endsubroutine PDI_share_COMPLEX4_1D
539  !=============================================================================
540 
541 
542  !=============================================================================
543  !< shares some data with PDI. the user code should not modify it before
544  !! a call to either PDI_release or PDI_reclaim.
545  !! \param[IN] name the data name
546  !! \param[IN,OUT] data the data to share
547  !! \param[IN] access whether the data can be accessed for read or write by
548  !! PDI
549  !! \param[OUT] err for error status (optional)
550  !! \pre the user code owns the data buffer
551  !! \post ownership of the data buffer is shared between PDI and the user code
552  !!
553  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
554  !! * PDI_IN means PDI can set the buffer content
555  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
556  subroutine PDI_share_COMPLEX4_2D( name, data, access, err )
557  character(len=*), intent(IN) :: name
558  COMPLEX(KIND=4), target, asynchronous :: data(:,:)
559  integer, intent(IN) :: access
560  integer, intent(OUT), optional :: err
561  endsubroutine PDI_share_COMPLEX4_2D
562  !=============================================================================
563 
564 
565  !=============================================================================
566  !< shares some data with PDI. the user code should not modify it before
567  !! a call to either PDI_release or PDI_reclaim.
568  !! \param[IN] name the data name
569  !! \param[IN,OUT] data the data to share
570  !! \param[IN] access whether the data can be accessed for read or write by
571  !! PDI
572  !! \param[OUT] err for error status (optional)
573  !! \pre the user code owns the data buffer
574  !! \post ownership of the data buffer is shared between PDI and the user code
575  !!
576  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
577  !! * PDI_IN means PDI can set the buffer content
578  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
579  subroutine PDI_share_COMPLEX4_3D( name, data, access, err )
580  character(len=*), intent(IN) :: name
581  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:)
582  integer, intent(IN) :: access
583  integer, intent(OUT), optional :: err
584  endsubroutine PDI_share_COMPLEX4_3D
585  !=============================================================================
586 
587 
588  !=============================================================================
589  !< shares some data with PDI. the user code should not modify it before
590  !! a call to either PDI_release or PDI_reclaim.
591  !! \param[IN] name the data name
592  !! \param[IN,OUT] data the data to share
593  !! \param[IN] access whether the data can be accessed for read or write by
594  !! PDI
595  !! \param[OUT] err for error status (optional)
596  !! \pre the user code owns the data buffer
597  !! \post ownership of the data buffer is shared between PDI and the user code
598  !!
599  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
600  !! * PDI_IN means PDI can set the buffer content
601  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
602  subroutine PDI_share_COMPLEX4_4D( name, data, access, err )
603  character(len=*), intent(IN) :: name
604  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:)
605  integer, intent(IN) :: access
606  integer, intent(OUT), optional :: err
607  endsubroutine PDI_share_COMPLEX4_4D
608  !=============================================================================
609 
610 
611  !=============================================================================
612  !< shares some data with PDI. the user code should not modify it before
613  !! a call to either PDI_release or PDI_reclaim.
614  !! \param[IN] name the data name
615  !! \param[IN,OUT] data the data to share
616  !! \param[IN] access whether the data can be accessed for read or write by
617  !! PDI
618  !! \param[OUT] err for error status (optional)
619  !! \pre the user code owns the data buffer
620  !! \post ownership of the data buffer is shared between PDI and the user code
621  !!
622  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
623  !! * PDI_IN means PDI can set the buffer content
624  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
625  subroutine PDI_share_COMPLEX4_5D( name, data, access, err )
626  character(len=*), intent(IN) :: name
627  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:)
628  integer, intent(IN) :: access
629  integer, intent(OUT), optional :: err
630  endsubroutine PDI_share_COMPLEX4_5D
631  !=============================================================================
632 
633 
634  !=============================================================================
635  !< shares some data with PDI. the user code should not modify it before
636  !! a call to either PDI_release or PDI_reclaim.
637  !! \param[IN] name the data name
638  !! \param[IN,OUT] data the data to share
639  !! \param[IN] access whether the data can be accessed for read or write by
640  !! PDI
641  !! \param[OUT] err for error status (optional)
642  !! \pre the user code owns the data buffer
643  !! \post ownership of the data buffer is shared between PDI and the user code
644  !!
645  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
646  !! * PDI_IN means PDI can set the buffer content
647  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
648  subroutine PDI_share_COMPLEX4_6D( name, data, access, err )
649  character(len=*), intent(IN) :: name
650  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
651  integer, intent(IN) :: access
652  integer, intent(OUT), optional :: err
653  endsubroutine PDI_share_COMPLEX4_6D
654  !=============================================================================
655 
656 
657  !=============================================================================
658  !< shares some data with PDI. the user code should not modify it before
659  !! a call to either PDI_release or PDI_reclaim.
660  !! \param[IN] name the data name
661  !! \param[IN,OUT] data the data to share
662  !! \param[IN] access whether the data can be accessed for read or write by
663  !! PDI
664  !! \param[OUT] err for error status (optional)
665  !! \pre the user code owns the data buffer
666  !! \post ownership of the data buffer is shared between PDI and the user code
667  !!
668  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
669  !! * PDI_IN means PDI can set the buffer content
670  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
671  subroutine PDI_share_COMPLEX4_7D( name, data, access, err )
672  character(len=*), intent(IN) :: name
673  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
674  integer, intent(IN) :: access
675  integer, intent(OUT), optional :: err
676  endsubroutine PDI_share_COMPLEX4_7D
677  !=============================================================================
678 
679 
680  !=============================================================================
681  !< shares some data with PDI. the user code should not modify it before
682  !! a call to either PDI_release or PDI_reclaim.
683  !! \param[IN] name the data name
684  !! \param[IN,OUT] data the data to share
685  !! \param[IN] access whether the data can be accessed for read or write by
686  !! PDI
687  !! \param[OUT] err for error status (optional)
688  !! \pre the user code owns the data buffer
689  !! \post ownership of the data buffer is shared between PDI and the user code
690  !!
691  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
692  !! * PDI_IN means PDI can set the buffer content
693  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
694  subroutine PDI_share_COMPLEX8_0D( name, data, access, err )
695  character(len=*), intent(IN) :: name
696  COMPLEX(KIND=8), target, asynchronous :: data
697  integer, intent(IN) :: access
698  integer, intent(OUT), optional :: err
699  endsubroutine PDI_share_COMPLEX8_0D
700  !=============================================================================
701 
702 
703  !=============================================================================
704  !< shares some data with PDI. the user code should not modify it before
705  !! a call to either PDI_release or PDI_reclaim.
706  !! \param[IN] name the data name
707  !! \param[IN,OUT] data the data to share
708  !! \param[IN] access whether the data can be accessed for read or write by
709  !! PDI
710  !! \param[OUT] err for error status (optional)
711  !! \pre the user code owns the data buffer
712  !! \post ownership of the data buffer is shared between PDI and the user code
713  !!
714  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
715  !! * PDI_IN means PDI can set the buffer content
716  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
717  subroutine PDI_share_COMPLEX8_1D( name, data, access, err )
718  character(len=*), intent(IN) :: name
719  COMPLEX(KIND=8), target, asynchronous :: data(:)
720  integer, intent(IN) :: access
721  integer, intent(OUT), optional :: err
722  endsubroutine PDI_share_COMPLEX8_1D
723  !=============================================================================
724 
725 
726  !=============================================================================
727  !< shares some data with PDI. the user code should not modify it before
728  !! a call to either PDI_release or PDI_reclaim.
729  !! \param[IN] name the data name
730  !! \param[IN,OUT] data the data to share
731  !! \param[IN] access whether the data can be accessed for read or write by
732  !! PDI
733  !! \param[OUT] err for error status (optional)
734  !! \pre the user code owns the data buffer
735  !! \post ownership of the data buffer is shared between PDI and the user code
736  !!
737  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
738  !! * PDI_IN means PDI can set the buffer content
739  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
740  subroutine PDI_share_COMPLEX8_2D( name, data, access, err )
741  character(len=*), intent(IN) :: name
742  COMPLEX(KIND=8), target, asynchronous :: data(:,:)
743  integer, intent(IN) :: access
744  integer, intent(OUT), optional :: err
745  endsubroutine PDI_share_COMPLEX8_2D
746  !=============================================================================
747 
748 
749  !=============================================================================
750  !< shares some data with PDI. the user code should not modify it before
751  !! a call to either PDI_release or PDI_reclaim.
752  !! \param[IN] name the data name
753  !! \param[IN,OUT] data the data to share
754  !! \param[IN] access whether the data can be accessed for read or write by
755  !! PDI
756  !! \param[OUT] err for error status (optional)
757  !! \pre the user code owns the data buffer
758  !! \post ownership of the data buffer is shared between PDI and the user code
759  !!
760  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
761  !! * PDI_IN means PDI can set the buffer content
762  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
763  subroutine PDI_share_COMPLEX8_3D( name, data, access, err )
764  character(len=*), intent(IN) :: name
765  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:)
766  integer, intent(IN) :: access
767  integer, intent(OUT), optional :: err
768  endsubroutine PDI_share_COMPLEX8_3D
769  !=============================================================================
770 
771 
772  !=============================================================================
773  !< shares some data with PDI. the user code should not modify it before
774  !! a call to either PDI_release or PDI_reclaim.
775  !! \param[IN] name the data name
776  !! \param[IN,OUT] data the data to share
777  !! \param[IN] access whether the data can be accessed for read or write by
778  !! PDI
779  !! \param[OUT] err for error status (optional)
780  !! \pre the user code owns the data buffer
781  !! \post ownership of the data buffer is shared between PDI and the user code
782  !!
783  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
784  !! * PDI_IN means PDI can set the buffer content
785  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
786  subroutine PDI_share_COMPLEX8_4D( name, data, access, err )
787  character(len=*), intent(IN) :: name
788  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:)
789  integer, intent(IN) :: access
790  integer, intent(OUT), optional :: err
791  endsubroutine PDI_share_COMPLEX8_4D
792  !=============================================================================
793 
794 
795  !=============================================================================
796  !< shares some data with PDI. the user code should not modify it before
797  !! a call to either PDI_release or PDI_reclaim.
798  !! \param[IN] name the data name
799  !! \param[IN,OUT] data the data to share
800  !! \param[IN] access whether the data can be accessed for read or write by
801  !! PDI
802  !! \param[OUT] err for error status (optional)
803  !! \pre the user code owns the data buffer
804  !! \post ownership of the data buffer is shared between PDI and the user code
805  !!
806  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
807  !! * PDI_IN means PDI can set the buffer content
808  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
809  subroutine PDI_share_COMPLEX8_5D( name, data, access, err )
810  character(len=*), intent(IN) :: name
811  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:)
812  integer, intent(IN) :: access
813  integer, intent(OUT), optional :: err
814  endsubroutine PDI_share_COMPLEX8_5D
815  !=============================================================================
816 
817 
818  !=============================================================================
819  !< shares some data with PDI. the user code should not modify it before
820  !! a call to either PDI_release or PDI_reclaim.
821  !! \param[IN] name the data name
822  !! \param[IN,OUT] data the data to share
823  !! \param[IN] access whether the data can be accessed for read or write by
824  !! PDI
825  !! \param[OUT] err for error status (optional)
826  !! \pre the user code owns the data buffer
827  !! \post ownership of the data buffer is shared between PDI and the user code
828  !!
829  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
830  !! * PDI_IN means PDI can set the buffer content
831  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
832  subroutine PDI_share_COMPLEX8_6D( name, data, access, err )
833  character(len=*), intent(IN) :: name
834  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
835  integer, intent(IN) :: access
836  integer, intent(OUT), optional :: err
837  endsubroutine PDI_share_COMPLEX8_6D
838  !=============================================================================
839 
840 
841  !=============================================================================
842  !< shares some data with PDI. the user code should not modify it before
843  !! a call to either PDI_release or PDI_reclaim.
844  !! \param[IN] name the data name
845  !! \param[IN,OUT] data the data to share
846  !! \param[IN] access whether the data can be accessed for read or write by
847  !! PDI
848  !! \param[OUT] err for error status (optional)
849  !! \pre the user code owns the data buffer
850  !! \post ownership of the data buffer is shared between PDI and the user code
851  !!
852  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
853  !! * PDI_IN means PDI can set the buffer content
854  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
855  subroutine PDI_share_COMPLEX8_7D( name, data, access, err )
856  character(len=*), intent(IN) :: name
857  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
858  integer, intent(IN) :: access
859  integer, intent(OUT), optional :: err
860  endsubroutine PDI_share_COMPLEX8_7D
861  !=============================================================================
862 
863 
864  !=============================================================================
865  !< shares some data with PDI. the user code should not modify it before
866  !! a call to either PDI_release or PDI_reclaim.
867  !! \param[IN] name the data name
868  !! \param[IN,OUT] data the data to share
869  !! \param[IN] access whether the data can be accessed for read or write by
870  !! PDI
871  !! \param[OUT] err for error status (optional)
872  !! \pre the user code owns the data buffer
873  !! \post ownership of the data buffer is shared between PDI and the user code
874  !!
875  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
876  !! * PDI_IN means PDI can set the buffer content
877  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
878  subroutine PDI_share_COMPLEX16_0D( name, data, access, err )
879  character(len=*), intent(IN) :: name
880  COMPLEX(KIND=16), target, asynchronous :: data
881  integer, intent(IN) :: access
882  integer, intent(OUT), optional :: err
883  endsubroutine PDI_share_COMPLEX16_0D
884  !=============================================================================
885 
886 
887  !=============================================================================
888  !< shares some data with PDI. the user code should not modify it before
889  !! a call to either PDI_release or PDI_reclaim.
890  !! \param[IN] name the data name
891  !! \param[IN,OUT] data the data to share
892  !! \param[IN] access whether the data can be accessed for read or write by
893  !! PDI
894  !! \param[OUT] err for error status (optional)
895  !! \pre the user code owns the data buffer
896  !! \post ownership of the data buffer is shared between PDI and the user code
897  !!
898  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
899  !! * PDI_IN means PDI can set the buffer content
900  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
901  subroutine PDI_share_COMPLEX16_1D( name, data, access, err )
902  character(len=*), intent(IN) :: name
903  COMPLEX(KIND=16), target, asynchronous :: data(:)
904  integer, intent(IN) :: access
905  integer, intent(OUT), optional :: err
906  endsubroutine PDI_share_COMPLEX16_1D
907  !=============================================================================
908 
909 
910  !=============================================================================
911  !< shares some data with PDI. the user code should not modify it before
912  !! a call to either PDI_release or PDI_reclaim.
913  !! \param[IN] name the data name
914  !! \param[IN,OUT] data the data to share
915  !! \param[IN] access whether the data can be accessed for read or write by
916  !! PDI
917  !! \param[OUT] err for error status (optional)
918  !! \pre the user code owns the data buffer
919  !! \post ownership of the data buffer is shared between PDI and the user code
920  !!
921  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
922  !! * PDI_IN means PDI can set the buffer content
923  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
924  subroutine PDI_share_COMPLEX16_2D( name, data, access, err )
925  character(len=*), intent(IN) :: name
926  COMPLEX(KIND=16), target, asynchronous :: data(:,:)
927  integer, intent(IN) :: access
928  integer, intent(OUT), optional :: err
929  endsubroutine PDI_share_COMPLEX16_2D
930  !=============================================================================
931 
932 
933  !=============================================================================
934  !< shares some data with PDI. the user code should not modify it before
935  !! a call to either PDI_release or PDI_reclaim.
936  !! \param[IN] name the data name
937  !! \param[IN,OUT] data the data to share
938  !! \param[IN] access whether the data can be accessed for read or write by
939  !! PDI
940  !! \param[OUT] err for error status (optional)
941  !! \pre the user code owns the data buffer
942  !! \post ownership of the data buffer is shared between PDI and the user code
943  !!
944  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
945  !! * PDI_IN means PDI can set the buffer content
946  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
947  subroutine PDI_share_COMPLEX16_3D( name, data, access, err )
948  character(len=*), intent(IN) :: name
949  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:)
950  integer, intent(IN) :: access
951  integer, intent(OUT), optional :: err
952  endsubroutine PDI_share_COMPLEX16_3D
953  !=============================================================================
954 
955 
956  !=============================================================================
957  !< shares some data with PDI. the user code should not modify it before
958  !! a call to either PDI_release or PDI_reclaim.
959  !! \param[IN] name the data name
960  !! \param[IN,OUT] data the data to share
961  !! \param[IN] access whether the data can be accessed for read or write by
962  !! PDI
963  !! \param[OUT] err for error status (optional)
964  !! \pre the user code owns the data buffer
965  !! \post ownership of the data buffer is shared between PDI and the user code
966  !!
967  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
968  !! * PDI_IN means PDI can set the buffer content
969  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
970  subroutine PDI_share_COMPLEX16_4D( name, data, access, err )
971  character(len=*), intent(IN) :: name
972  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:)
973  integer, intent(IN) :: access
974  integer, intent(OUT), optional :: err
975  endsubroutine PDI_share_COMPLEX16_4D
976  !=============================================================================
977 
978 
979  !=============================================================================
980  !< shares some data with PDI. the user code should not modify it before
981  !! a call to either PDI_release or PDI_reclaim.
982  !! \param[IN] name the data name
983  !! \param[IN,OUT] data the data to share
984  !! \param[IN] access whether the data can be accessed for read or write by
985  !! PDI
986  !! \param[OUT] err for error status (optional)
987  !! \pre the user code owns the data buffer
988  !! \post ownership of the data buffer is shared between PDI and the user code
989  !!
990  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
991  !! * PDI_IN means PDI can set the buffer content
992  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
993  subroutine PDI_share_COMPLEX16_5D( name, data, access, err )
994  character(len=*), intent(IN) :: name
995  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:)
996  integer, intent(IN) :: access
997  integer, intent(OUT), optional :: err
998  endsubroutine PDI_share_COMPLEX16_5D
999  !=============================================================================
1000 
1001 
1002  !=============================================================================
1003  !< shares some data with PDI. the user code should not modify it before
1004  !! a call to either PDI_release or PDI_reclaim.
1005  !! \param[IN] name the data name
1006  !! \param[IN,OUT] data the data to share
1007  !! \param[IN] access whether the data can be accessed for read or write by
1008  !! PDI
1009  !! \param[OUT] err for error status (optional)
1010  !! \pre the user code owns the data buffer
1011  !! \post ownership of the data buffer is shared between PDI and the user code
1012  !!
1013  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1014  !! * PDI_IN means PDI can set the buffer content
1015  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1016  subroutine PDI_share_COMPLEX16_6D( name, data, access, err )
1017  character(len=*), intent(IN) :: name
1018  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
1019  integer, intent(IN) :: access
1020  integer, intent(OUT), optional :: err
1021  endsubroutine PDI_share_COMPLEX16_6D
1022  !=============================================================================
1023 
1024 
1025  !=============================================================================
1026  !< shares some data with PDI. the user code should not modify it before
1027  !! a call to either PDI_release or PDI_reclaim.
1028  !! \param[IN] name the data name
1029  !! \param[IN,OUT] data the data to share
1030  !! \param[IN] access whether the data can be accessed for read or write by
1031  !! PDI
1032  !! \param[OUT] err for error status (optional)
1033  !! \pre the user code owns the data buffer
1034  !! \post ownership of the data buffer is shared between PDI and the user code
1035  !!
1036  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1037  !! * PDI_IN means PDI can set the buffer content
1038  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1039  subroutine PDI_share_COMPLEX16_7D( name, data, access, err )
1040  character(len=*), intent(IN) :: name
1041  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
1042  integer, intent(IN) :: access
1043  integer, intent(OUT), optional :: err
1044  endsubroutine PDI_share_COMPLEX16_7D
1045  !=============================================================================
1046 
1047 
1048  !=============================================================================
1049  !< shares some data with PDI. the user code should not modify it before
1050  !! a call to either PDI_release or PDI_reclaim.
1051  !! \param[IN] name the data name
1052  !! \param[IN,OUT] data the data to share
1053  !! \param[IN] access whether the data can be accessed for read or write by
1054  !! PDI
1055  !! \param[OUT] err for error status (optional)
1056  !! \pre the user code owns the data buffer
1057  !! \post ownership of the data buffer is shared between PDI and the user code
1058  !!
1059  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1060  !! * PDI_IN means PDI can set the buffer content
1061  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1062  subroutine PDI_share_INTEGER1_0D( name, data, access, err )
1063  character(len=*), intent(IN) :: name
1064  INTEGER(KIND=1), target, asynchronous :: data
1065  integer, intent(IN) :: access
1066  integer, intent(OUT), optional :: err
1067  endsubroutine PDI_share_INTEGER1_0D
1068  !=============================================================================
1069 
1070 
1071  !=============================================================================
1072  !< shares some data with PDI. the user code should not modify it before
1073  !! a call to either PDI_release or PDI_reclaim.
1074  !! \param[IN] name the data name
1075  !! \param[IN,OUT] data the data to share
1076  !! \param[IN] access whether the data can be accessed for read or write by
1077  !! PDI
1078  !! \param[OUT] err for error status (optional)
1079  !! \pre the user code owns the data buffer
1080  !! \post ownership of the data buffer is shared between PDI and the user code
1081  !!
1082  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1083  !! * PDI_IN means PDI can set the buffer content
1084  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1085  subroutine PDI_share_INTEGER1_1D( name, data, access, err )
1086  character(len=*), intent(IN) :: name
1087  INTEGER(KIND=1), target, asynchronous :: data(:)
1088  integer, intent(IN) :: access
1089  integer, intent(OUT), optional :: err
1090  endsubroutine PDI_share_INTEGER1_1D
1091  !=============================================================================
1092 
1093 
1094  !=============================================================================
1095  !< shares some data with PDI. the user code should not modify it before
1096  !! a call to either PDI_release or PDI_reclaim.
1097  !! \param[IN] name the data name
1098  !! \param[IN,OUT] data the data to share
1099  !! \param[IN] access whether the data can be accessed for read or write by
1100  !! PDI
1101  !! \param[OUT] err for error status (optional)
1102  !! \pre the user code owns the data buffer
1103  !! \post ownership of the data buffer is shared between PDI and the user code
1104  !!
1105  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1106  !! * PDI_IN means PDI can set the buffer content
1107  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1108  subroutine PDI_share_INTEGER1_2D( name, data, access, err )
1109  character(len=*), intent(IN) :: name
1110  INTEGER(KIND=1), target, asynchronous :: data(:,:)
1111  integer, intent(IN) :: access
1112  integer, intent(OUT), optional :: err
1113  endsubroutine PDI_share_INTEGER1_2D
1114  !=============================================================================
1115 
1116 
1117  !=============================================================================
1118  !< shares some data with PDI. the user code should not modify it before
1119  !! a call to either PDI_release or PDI_reclaim.
1120  !! \param[IN] name the data name
1121  !! \param[IN,OUT] data the data to share
1122  !! \param[IN] access whether the data can be accessed for read or write by
1123  !! PDI
1124  !! \param[OUT] err for error status (optional)
1125  !! \pre the user code owns the data buffer
1126  !! \post ownership of the data buffer is shared between PDI and the user code
1127  !!
1128  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1129  !! * PDI_IN means PDI can set the buffer content
1130  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1131  subroutine PDI_share_INTEGER1_3D( name, data, access, err )
1132  character(len=*), intent(IN) :: name
1133  INTEGER(KIND=1), target, asynchronous :: data(:,:,:)
1134  integer, intent(IN) :: access
1135  integer, intent(OUT), optional :: err
1136  endsubroutine PDI_share_INTEGER1_3D
1137  !=============================================================================
1138 
1139 
1140  !=============================================================================
1141  !< shares some data with PDI. the user code should not modify it before
1142  !! a call to either PDI_release or PDI_reclaim.
1143  !! \param[IN] name the data name
1144  !! \param[IN,OUT] data the data to share
1145  !! \param[IN] access whether the data can be accessed for read or write by
1146  !! PDI
1147  !! \param[OUT] err for error status (optional)
1148  !! \pre the user code owns the data buffer
1149  !! \post ownership of the data buffer is shared between PDI and the user code
1150  !!
1151  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1152  !! * PDI_IN means PDI can set the buffer content
1153  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1154  subroutine PDI_share_INTEGER1_4D( name, data, access, err )
1155  character(len=*), intent(IN) :: name
1156  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:)
1157  integer, intent(IN) :: access
1158  integer, intent(OUT), optional :: err
1159  endsubroutine PDI_share_INTEGER1_4D
1160  !=============================================================================
1161 
1162 
1163  !=============================================================================
1164  !< shares some data with PDI. the user code should not modify it before
1165  !! a call to either PDI_release or PDI_reclaim.
1166  !! \param[IN] name the data name
1167  !! \param[IN,OUT] data the data to share
1168  !! \param[IN] access whether the data can be accessed for read or write by
1169  !! PDI
1170  !! \param[OUT] err for error status (optional)
1171  !! \pre the user code owns the data buffer
1172  !! \post ownership of the data buffer is shared between PDI and the user code
1173  !!
1174  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1175  !! * PDI_IN means PDI can set the buffer content
1176  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1177  subroutine PDI_share_INTEGER1_5D( name, data, access, err )
1178  character(len=*), intent(IN) :: name
1179  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:)
1180  integer, intent(IN) :: access
1181  integer, intent(OUT), optional :: err
1182  endsubroutine PDI_share_INTEGER1_5D
1183  !=============================================================================
1184 
1185 
1186  !=============================================================================
1187  !< shares some data with PDI. the user code should not modify it before
1188  !! a call to either PDI_release or PDI_reclaim.
1189  !! \param[IN] name the data name
1190  !! \param[IN,OUT] data the data to share
1191  !! \param[IN] access whether the data can be accessed for read or write by
1192  !! PDI
1193  !! \param[OUT] err for error status (optional)
1194  !! \pre the user code owns the data buffer
1195  !! \post ownership of the data buffer is shared between PDI and the user code
1196  !!
1197  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1198  !! * PDI_IN means PDI can set the buffer content
1199  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1200  subroutine PDI_share_INTEGER1_6D( name, data, access, err )
1201  character(len=*), intent(IN) :: name
1202  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
1203  integer, intent(IN) :: access
1204  integer, intent(OUT), optional :: err
1205  endsubroutine PDI_share_INTEGER1_6D
1206  !=============================================================================
1207 
1208 
1209  !=============================================================================
1210  !< shares some data with PDI. the user code should not modify it before
1211  !! a call to either PDI_release or PDI_reclaim.
1212  !! \param[IN] name the data name
1213  !! \param[IN,OUT] data the data to share
1214  !! \param[IN] access whether the data can be accessed for read or write by
1215  !! PDI
1216  !! \param[OUT] err for error status (optional)
1217  !! \pre the user code owns the data buffer
1218  !! \post ownership of the data buffer is shared between PDI and the user code
1219  !!
1220  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1221  !! * PDI_IN means PDI can set the buffer content
1222  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1223  subroutine PDI_share_INTEGER1_7D( name, data, access, err )
1224  character(len=*), intent(IN) :: name
1225  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
1226  integer, intent(IN) :: access
1227  integer, intent(OUT), optional :: err
1228  endsubroutine PDI_share_INTEGER1_7D
1229  !=============================================================================
1230 
1231 
1232  !=============================================================================
1233  !< shares some data with PDI. the user code should not modify it before
1234  !! a call to either PDI_release or PDI_reclaim.
1235  !! \param[IN] name the data name
1236  !! \param[IN,OUT] data the data to share
1237  !! \param[IN] access whether the data can be accessed for read or write by
1238  !! PDI
1239  !! \param[OUT] err for error status (optional)
1240  !! \pre the user code owns the data buffer
1241  !! \post ownership of the data buffer is shared between PDI and the user code
1242  !!
1243  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1244  !! * PDI_IN means PDI can set the buffer content
1245  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1246  subroutine PDI_share_INTEGER2_0D( name, data, access, err )
1247  character(len=*), intent(IN) :: name
1248  INTEGER(KIND=2), target, asynchronous :: data
1249  integer, intent(IN) :: access
1250  integer, intent(OUT), optional :: err
1251  endsubroutine PDI_share_INTEGER2_0D
1252  !=============================================================================
1253 
1254 
1255  !=============================================================================
1256  !< shares some data with PDI. the user code should not modify it before
1257  !! a call to either PDI_release or PDI_reclaim.
1258  !! \param[IN] name the data name
1259  !! \param[IN,OUT] data the data to share
1260  !! \param[IN] access whether the data can be accessed for read or write by
1261  !! PDI
1262  !! \param[OUT] err for error status (optional)
1263  !! \pre the user code owns the data buffer
1264  !! \post ownership of the data buffer is shared between PDI and the user code
1265  !!
1266  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1267  !! * PDI_IN means PDI can set the buffer content
1268  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1269  subroutine PDI_share_INTEGER2_1D( name, data, access, err )
1270  character(len=*), intent(IN) :: name
1271  INTEGER(KIND=2), target, asynchronous :: data(:)
1272  integer, intent(IN) :: access
1273  integer, intent(OUT), optional :: err
1274  endsubroutine PDI_share_INTEGER2_1D
1275  !=============================================================================
1276 
1277 
1278  !=============================================================================
1279  !< shares some data with PDI. the user code should not modify it before
1280  !! a call to either PDI_release or PDI_reclaim.
1281  !! \param[IN] name the data name
1282  !! \param[IN,OUT] data the data to share
1283  !! \param[IN] access whether the data can be accessed for read or write by
1284  !! PDI
1285  !! \param[OUT] err for error status (optional)
1286  !! \pre the user code owns the data buffer
1287  !! \post ownership of the data buffer is shared between PDI and the user code
1288  !!
1289  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1290  !! * PDI_IN means PDI can set the buffer content
1291  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1292  subroutine PDI_share_INTEGER2_2D( name, data, access, err )
1293  character(len=*), intent(IN) :: name
1294  INTEGER(KIND=2), target, asynchronous :: data(:,:)
1295  integer, intent(IN) :: access
1296  integer, intent(OUT), optional :: err
1297  endsubroutine PDI_share_INTEGER2_2D
1298  !=============================================================================
1299 
1300 
1301  !=============================================================================
1302  !< shares some data with PDI. the user code should not modify it before
1303  !! a call to either PDI_release or PDI_reclaim.
1304  !! \param[IN] name the data name
1305  !! \param[IN,OUT] data the data to share
1306  !! \param[IN] access whether the data can be accessed for read or write by
1307  !! PDI
1308  !! \param[OUT] err for error status (optional)
1309  !! \pre the user code owns the data buffer
1310  !! \post ownership of the data buffer is shared between PDI and the user code
1311  !!
1312  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1313  !! * PDI_IN means PDI can set the buffer content
1314  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1315  subroutine PDI_share_INTEGER2_3D( name, data, access, err )
1316  character(len=*), intent(IN) :: name
1317  INTEGER(KIND=2), target, asynchronous :: data(:,:,:)
1318  integer, intent(IN) :: access
1319  integer, intent(OUT), optional :: err
1320  endsubroutine PDI_share_INTEGER2_3D
1321  !=============================================================================
1322 
1323 
1324  !=============================================================================
1325  !< shares some data with PDI. the user code should not modify it before
1326  !! a call to either PDI_release or PDI_reclaim.
1327  !! \param[IN] name the data name
1328  !! \param[IN,OUT] data the data to share
1329  !! \param[IN] access whether the data can be accessed for read or write by
1330  !! PDI
1331  !! \param[OUT] err for error status (optional)
1332  !! \pre the user code owns the data buffer
1333  !! \post ownership of the data buffer is shared between PDI and the user code
1334  !!
1335  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1336  !! * PDI_IN means PDI can set the buffer content
1337  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1338  subroutine PDI_share_INTEGER2_4D( name, data, access, err )
1339  character(len=*), intent(IN) :: name
1340  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:)
1341  integer, intent(IN) :: access
1342  integer, intent(OUT), optional :: err
1343  endsubroutine PDI_share_INTEGER2_4D
1344  !=============================================================================
1345 
1346 
1347  !=============================================================================
1348  !< shares some data with PDI. the user code should not modify it before
1349  !! a call to either PDI_release or PDI_reclaim.
1350  !! \param[IN] name the data name
1351  !! \param[IN,OUT] data the data to share
1352  !! \param[IN] access whether the data can be accessed for read or write by
1353  !! PDI
1354  !! \param[OUT] err for error status (optional)
1355  !! \pre the user code owns the data buffer
1356  !! \post ownership of the data buffer is shared between PDI and the user code
1357  !!
1358  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1359  !! * PDI_IN means PDI can set the buffer content
1360  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1361  subroutine PDI_share_INTEGER2_5D( name, data, access, err )
1362  character(len=*), intent(IN) :: name
1363  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:)
1364  integer, intent(IN) :: access
1365  integer, intent(OUT), optional :: err
1366  endsubroutine PDI_share_INTEGER2_5D
1367  !=============================================================================
1368 
1369 
1370  !=============================================================================
1371  !< shares some data with PDI. the user code should not modify it before
1372  !! a call to either PDI_release or PDI_reclaim.
1373  !! \param[IN] name the data name
1374  !! \param[IN,OUT] data the data to share
1375  !! \param[IN] access whether the data can be accessed for read or write by
1376  !! PDI
1377  !! \param[OUT] err for error status (optional)
1378  !! \pre the user code owns the data buffer
1379  !! \post ownership of the data buffer is shared between PDI and the user code
1380  !!
1381  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1382  !! * PDI_IN means PDI can set the buffer content
1383  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1384  subroutine PDI_share_INTEGER2_6D( name, data, access, err )
1385  character(len=*), intent(IN) :: name
1386  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:,:)
1387  integer, intent(IN) :: access
1388  integer, intent(OUT), optional :: err
1389  endsubroutine PDI_share_INTEGER2_6D
1390  !=============================================================================
1391 
1392 
1393  !=============================================================================
1394  !< shares some data with PDI. the user code should not modify it before
1395  !! a call to either PDI_release or PDI_reclaim.
1396  !! \param[IN] name the data name
1397  !! \param[IN,OUT] data the data to share
1398  !! \param[IN] access whether the data can be accessed for read or write by
1399  !! PDI
1400  !! \param[OUT] err for error status (optional)
1401  !! \pre the user code owns the data buffer
1402  !! \post ownership of the data buffer is shared between PDI and the user code
1403  !!
1404  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1405  !! * PDI_IN means PDI can set the buffer content
1406  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1407  subroutine PDI_share_INTEGER2_7D( name, data, access, err )
1408  character(len=*), intent(IN) :: name
1409  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:,:,:)
1410  integer, intent(IN) :: access
1411  integer, intent(OUT), optional :: err
1412  endsubroutine PDI_share_INTEGER2_7D
1413  !=============================================================================
1414 
1415 
1416  !=============================================================================
1417  !< shares some data with PDI. the user code should not modify it before
1418  !! a call to either PDI_release or PDI_reclaim.
1419  !! \param[IN] name the data name
1420  !! \param[IN,OUT] data the data to share
1421  !! \param[IN] access whether the data can be accessed for read or write by
1422  !! PDI
1423  !! \param[OUT] err for error status (optional)
1424  !! \pre the user code owns the data buffer
1425  !! \post ownership of the data buffer is shared between PDI and the user code
1426  !!
1427  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1428  !! * PDI_IN means PDI can set the buffer content
1429  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1430  subroutine PDI_share_INTEGER4_0D( name, data, access, err )
1431  character(len=*), intent(IN) :: name
1432  INTEGER(KIND=4), target, asynchronous :: data
1433  integer, intent(IN) :: access
1434  integer, intent(OUT), optional :: err
1435  endsubroutine PDI_share_INTEGER4_0D
1436  !=============================================================================
1437 
1438 
1439  !=============================================================================
1440  !< shares some data with PDI. the user code should not modify it before
1441  !! a call to either PDI_release or PDI_reclaim.
1442  !! \param[IN] name the data name
1443  !! \param[IN,OUT] data the data to share
1444  !! \param[IN] access whether the data can be accessed for read or write by
1445  !! PDI
1446  !! \param[OUT] err for error status (optional)
1447  !! \pre the user code owns the data buffer
1448  !! \post ownership of the data buffer is shared between PDI and the user code
1449  !!
1450  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1451  !! * PDI_IN means PDI can set the buffer content
1452  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1453  subroutine PDI_share_INTEGER4_1D( name, data, access, err )
1454  character(len=*), intent(IN) :: name
1455  INTEGER(KIND=4), target, asynchronous :: data(:)
1456  integer, intent(IN) :: access
1457  integer, intent(OUT), optional :: err
1458  endsubroutine PDI_share_INTEGER4_1D
1459  !=============================================================================
1460 
1461 
1462  !=============================================================================
1463  !< shares some data with PDI. the user code should not modify it before
1464  !! a call to either PDI_release or PDI_reclaim.
1465  !! \param[IN] name the data name
1466  !! \param[IN,OUT] data the data to share
1467  !! \param[IN] access whether the data can be accessed for read or write by
1468  !! PDI
1469  !! \param[OUT] err for error status (optional)
1470  !! \pre the user code owns the data buffer
1471  !! \post ownership of the data buffer is shared between PDI and the user code
1472  !!
1473  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1474  !! * PDI_IN means PDI can set the buffer content
1475  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1476  subroutine PDI_share_INTEGER4_2D( name, data, access, err )
1477  character(len=*), intent(IN) :: name
1478  INTEGER(KIND=4), target, asynchronous :: data(:,:)
1479  integer, intent(IN) :: access
1480  integer, intent(OUT), optional :: err
1481  endsubroutine PDI_share_INTEGER4_2D
1482  !=============================================================================
1483 
1484 
1485  !=============================================================================
1486  !< shares some data with PDI. the user code should not modify it before
1487  !! a call to either PDI_release or PDI_reclaim.
1488  !! \param[IN] name the data name
1489  !! \param[IN,OUT] data the data to share
1490  !! \param[IN] access whether the data can be accessed for read or write by
1491  !! PDI
1492  !! \param[OUT] err for error status (optional)
1493  !! \pre the user code owns the data buffer
1494  !! \post ownership of the data buffer is shared between PDI and the user code
1495  !!
1496  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1497  !! * PDI_IN means PDI can set the buffer content
1498  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1499  subroutine PDI_share_INTEGER4_3D( name, data, access, err )
1500  character(len=*), intent(IN) :: name
1501  INTEGER(KIND=4), target, asynchronous :: data(:,:,:)
1502  integer, intent(IN) :: access
1503  integer, intent(OUT), optional :: err
1504  endsubroutine PDI_share_INTEGER4_3D
1505  !=============================================================================
1506 
1507 
1508  !=============================================================================
1509  !< shares some data with PDI. the user code should not modify it before
1510  !! a call to either PDI_release or PDI_reclaim.
1511  !! \param[IN] name the data name
1512  !! \param[IN,OUT] data the data to share
1513  !! \param[IN] access whether the data can be accessed for read or write by
1514  !! PDI
1515  !! \param[OUT] err for error status (optional)
1516  !! \pre the user code owns the data buffer
1517  !! \post ownership of the data buffer is shared between PDI and the user code
1518  !!
1519  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1520  !! * PDI_IN means PDI can set the buffer content
1521  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1522  subroutine PDI_share_INTEGER4_4D( name, data, access, err )
1523  character(len=*), intent(IN) :: name
1524  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:)
1525  integer, intent(IN) :: access
1526  integer, intent(OUT), optional :: err
1527  endsubroutine PDI_share_INTEGER4_4D
1528  !=============================================================================
1529 
1530 
1531  !=============================================================================
1532  !< shares some data with PDI. the user code should not modify it before
1533  !! a call to either PDI_release or PDI_reclaim.
1534  !! \param[IN] name the data name
1535  !! \param[IN,OUT] data the data to share
1536  !! \param[IN] access whether the data can be accessed for read or write by
1537  !! PDI
1538  !! \param[OUT] err for error status (optional)
1539  !! \pre the user code owns the data buffer
1540  !! \post ownership of the data buffer is shared between PDI and the user code
1541  !!
1542  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1543  !! * PDI_IN means PDI can set the buffer content
1544  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1545  subroutine PDI_share_INTEGER4_5D( name, data, access, err )
1546  character(len=*), intent(IN) :: name
1547  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:)
1548  integer, intent(IN) :: access
1549  integer, intent(OUT), optional :: err
1550  endsubroutine PDI_share_INTEGER4_5D
1551  !=============================================================================
1552 
1553 
1554  !=============================================================================
1555  !< shares some data with PDI. the user code should not modify it before
1556  !! a call to either PDI_release or PDI_reclaim.
1557  !! \param[IN] name the data name
1558  !! \param[IN,OUT] data the data to share
1559  !! \param[IN] access whether the data can be accessed for read or write by
1560  !! PDI
1561  !! \param[OUT] err for error status (optional)
1562  !! \pre the user code owns the data buffer
1563  !! \post ownership of the data buffer is shared between PDI and the user code
1564  !!
1565  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1566  !! * PDI_IN means PDI can set the buffer content
1567  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1568  subroutine PDI_share_INTEGER4_6D( name, data, access, err )
1569  character(len=*), intent(IN) :: name
1570  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
1571  integer, intent(IN) :: access
1572  integer, intent(OUT), optional :: err
1573  endsubroutine PDI_share_INTEGER4_6D
1574  !=============================================================================
1575 
1576 
1577  !=============================================================================
1578  !< shares some data with PDI. the user code should not modify it before
1579  !! a call to either PDI_release or PDI_reclaim.
1580  !! \param[IN] name the data name
1581  !! \param[IN,OUT] data the data to share
1582  !! \param[IN] access whether the data can be accessed for read or write by
1583  !! PDI
1584  !! \param[OUT] err for error status (optional)
1585  !! \pre the user code owns the data buffer
1586  !! \post ownership of the data buffer is shared between PDI and the user code
1587  !!
1588  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1589  !! * PDI_IN means PDI can set the buffer content
1590  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1591  subroutine PDI_share_INTEGER4_7D( name, data, access, err )
1592  character(len=*), intent(IN) :: name
1593  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
1594  integer, intent(IN) :: access
1595  integer, intent(OUT), optional :: err
1596  endsubroutine PDI_share_INTEGER4_7D
1597  !=============================================================================
1598 
1599 
1600  !=============================================================================
1601  !< shares some data with PDI. the user code should not modify it before
1602  !! a call to either PDI_release or PDI_reclaim.
1603  !! \param[IN] name the data name
1604  !! \param[IN,OUT] data the data to share
1605  !! \param[IN] access whether the data can be accessed for read or write by
1606  !! PDI
1607  !! \param[OUT] err for error status (optional)
1608  !! \pre the user code owns the data buffer
1609  !! \post ownership of the data buffer is shared between PDI and the user code
1610  !!
1611  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1612  !! * PDI_IN means PDI can set the buffer content
1613  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1614  subroutine PDI_share_INTEGER8_0D( name, data, access, err )
1615  character(len=*), intent(IN) :: name
1616  INTEGER(KIND=8), target, asynchronous :: data
1617  integer, intent(IN) :: access
1618  integer, intent(OUT), optional :: err
1619  endsubroutine PDI_share_INTEGER8_0D
1620  !=============================================================================
1621 
1622 
1623  !=============================================================================
1624  !< shares some data with PDI. the user code should not modify it before
1625  !! a call to either PDI_release or PDI_reclaim.
1626  !! \param[IN] name the data name
1627  !! \param[IN,OUT] data the data to share
1628  !! \param[IN] access whether the data can be accessed for read or write by
1629  !! PDI
1630  !! \param[OUT] err for error status (optional)
1631  !! \pre the user code owns the data buffer
1632  !! \post ownership of the data buffer is shared between PDI and the user code
1633  !!
1634  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1635  !! * PDI_IN means PDI can set the buffer content
1636  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1637  subroutine PDI_share_INTEGER8_1D( name, data, access, err )
1638  character(len=*), intent(IN) :: name
1639  INTEGER(KIND=8), target, asynchronous :: data(:)
1640  integer, intent(IN) :: access
1641  integer, intent(OUT), optional :: err
1642  endsubroutine PDI_share_INTEGER8_1D
1643  !=============================================================================
1644 
1645 
1646  !=============================================================================
1647  !< shares some data with PDI. the user code should not modify it before
1648  !! a call to either PDI_release or PDI_reclaim.
1649  !! \param[IN] name the data name
1650  !! \param[IN,OUT] data the data to share
1651  !! \param[IN] access whether the data can be accessed for read or write by
1652  !! PDI
1653  !! \param[OUT] err for error status (optional)
1654  !! \pre the user code owns the data buffer
1655  !! \post ownership of the data buffer is shared between PDI and the user code
1656  !!
1657  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1658  !! * PDI_IN means PDI can set the buffer content
1659  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1660  subroutine PDI_share_INTEGER8_2D( name, data, access, err )
1661  character(len=*), intent(IN) :: name
1662  INTEGER(KIND=8), target, asynchronous :: data(:,:)
1663  integer, intent(IN) :: access
1664  integer, intent(OUT), optional :: err
1665  endsubroutine PDI_share_INTEGER8_2D
1666  !=============================================================================
1667 
1668 
1669  !=============================================================================
1670  !< shares some data with PDI. the user code should not modify it before
1671  !! a call to either PDI_release or PDI_reclaim.
1672  !! \param[IN] name the data name
1673  !! \param[IN,OUT] data the data to share
1674  !! \param[IN] access whether the data can be accessed for read or write by
1675  !! PDI
1676  !! \param[OUT] err for error status (optional)
1677  !! \pre the user code owns the data buffer
1678  !! \post ownership of the data buffer is shared between PDI and the user code
1679  !!
1680  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1681  !! * PDI_IN means PDI can set the buffer content
1682  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1683  subroutine PDI_share_INTEGER8_3D( name, data, access, err )
1684  character(len=*), intent(IN) :: name
1685  INTEGER(KIND=8), target, asynchronous :: data(:,:,:)
1686  integer, intent(IN) :: access
1687  integer, intent(OUT), optional :: err
1688  endsubroutine PDI_share_INTEGER8_3D
1689  !=============================================================================
1690 
1691 
1692  !=============================================================================
1693  !< shares some data with PDI. the user code should not modify it before
1694  !! a call to either PDI_release or PDI_reclaim.
1695  !! \param[IN] name the data name
1696  !! \param[IN,OUT] data the data to share
1697  !! \param[IN] access whether the data can be accessed for read or write by
1698  !! PDI
1699  !! \param[OUT] err for error status (optional)
1700  !! \pre the user code owns the data buffer
1701  !! \post ownership of the data buffer is shared between PDI and the user code
1702  !!
1703  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1704  !! * PDI_IN means PDI can set the buffer content
1705  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1706  subroutine PDI_share_INTEGER8_4D( name, data, access, err )
1707  character(len=*), intent(IN) :: name
1708  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:)
1709  integer, intent(IN) :: access
1710  integer, intent(OUT), optional :: err
1711  endsubroutine PDI_share_INTEGER8_4D
1712  !=============================================================================
1713 
1714 
1715  !=============================================================================
1716  !< shares some data with PDI. the user code should not modify it before
1717  !! a call to either PDI_release or PDI_reclaim.
1718  !! \param[IN] name the data name
1719  !! \param[IN,OUT] data the data to share
1720  !! \param[IN] access whether the data can be accessed for read or write by
1721  !! PDI
1722  !! \param[OUT] err for error status (optional)
1723  !! \pre the user code owns the data buffer
1724  !! \post ownership of the data buffer is shared between PDI and the user code
1725  !!
1726  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1727  !! * PDI_IN means PDI can set the buffer content
1728  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1729  subroutine PDI_share_INTEGER8_5D( name, data, access, err )
1730  character(len=*), intent(IN) :: name
1731  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:)
1732  integer, intent(IN) :: access
1733  integer, intent(OUT), optional :: err
1734  endsubroutine PDI_share_INTEGER8_5D
1735  !=============================================================================
1736 
1737 
1738  !=============================================================================
1739  !< shares some data with PDI. the user code should not modify it before
1740  !! a call to either PDI_release or PDI_reclaim.
1741  !! \param[IN] name the data name
1742  !! \param[IN,OUT] data the data to share
1743  !! \param[IN] access whether the data can be accessed for read or write by
1744  !! PDI
1745  !! \param[OUT] err for error status (optional)
1746  !! \pre the user code owns the data buffer
1747  !! \post ownership of the data buffer is shared between PDI and the user code
1748  !!
1749  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1750  !! * PDI_IN means PDI can set the buffer content
1751  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1752  subroutine PDI_share_INTEGER8_6D( name, data, access, err )
1753  character(len=*), intent(IN) :: name
1754  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
1755  integer, intent(IN) :: access
1756  integer, intent(OUT), optional :: err
1757  endsubroutine PDI_share_INTEGER8_6D
1758  !=============================================================================
1759 
1760 
1761  !=============================================================================
1762  !< shares some data with PDI. the user code should not modify it before
1763  !! a call to either PDI_release or PDI_reclaim.
1764  !! \param[IN] name the data name
1765  !! \param[IN,OUT] data the data to share
1766  !! \param[IN] access whether the data can be accessed for read or write by
1767  !! PDI
1768  !! \param[OUT] err for error status (optional)
1769  !! \pre the user code owns the data buffer
1770  !! \post ownership of the data buffer is shared between PDI and the user code
1771  !!
1772  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1773  !! * PDI_IN means PDI can set the buffer content
1774  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1775  subroutine PDI_share_INTEGER8_7D( name, data, access, err )
1776  character(len=*), intent(IN) :: name
1777  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
1778  integer, intent(IN) :: access
1779  integer, intent(OUT), optional :: err
1780  endsubroutine PDI_share_INTEGER8_7D
1781  !=============================================================================
1782 
1783 
1784  !=============================================================================
1785  !< shares some data with PDI. the user code should not modify it before
1786  !! a call to either PDI_release or PDI_reclaim.
1787  !! \param[IN] name the data name
1788  !! \param[IN,OUT] data the data to share
1789  !! \param[IN] access whether the data can be accessed for read or write by
1790  !! PDI
1791  !! \param[OUT] err for error status (optional)
1792  !! \pre the user code owns the data buffer
1793  !! \post ownership of the data buffer is shared between PDI and the user code
1794  !!
1795  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1796  !! * PDI_IN means PDI can set the buffer content
1797  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1798  subroutine PDI_share_INTEGER16_0D( name, data, access, err )
1799  character(len=*), intent(IN) :: name
1800  INTEGER(KIND=16), target, asynchronous :: data
1801  integer, intent(IN) :: access
1802  integer, intent(OUT), optional :: err
1803  endsubroutine PDI_share_INTEGER16_0D
1804  !=============================================================================
1805 
1806 
1807  !=============================================================================
1808  !< shares some data with PDI. the user code should not modify it before
1809  !! a call to either PDI_release or PDI_reclaim.
1810  !! \param[IN] name the data name
1811  !! \param[IN,OUT] data the data to share
1812  !! \param[IN] access whether the data can be accessed for read or write by
1813  !! PDI
1814  !! \param[OUT] err for error status (optional)
1815  !! \pre the user code owns the data buffer
1816  !! \post ownership of the data buffer is shared between PDI and the user code
1817  !!
1818  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1819  !! * PDI_IN means PDI can set the buffer content
1820  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1821  subroutine PDI_share_INTEGER16_1D( name, data, access, err )
1822  character(len=*), intent(IN) :: name
1823  INTEGER(KIND=16), target, asynchronous :: data(:)
1824  integer, intent(IN) :: access
1825  integer, intent(OUT), optional :: err
1826  endsubroutine PDI_share_INTEGER16_1D
1827  !=============================================================================
1828 
1829 
1830  !=============================================================================
1831  !< shares some data with PDI. the user code should not modify it before
1832  !! a call to either PDI_release or PDI_reclaim.
1833  !! \param[IN] name the data name
1834  !! \param[IN,OUT] data the data to share
1835  !! \param[IN] access whether the data can be accessed for read or write by
1836  !! PDI
1837  !! \param[OUT] err for error status (optional)
1838  !! \pre the user code owns the data buffer
1839  !! \post ownership of the data buffer is shared between PDI and the user code
1840  !!
1841  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1842  !! * PDI_IN means PDI can set the buffer content
1843  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1844  subroutine PDI_share_INTEGER16_2D( name, data, access, err )
1845  character(len=*), intent(IN) :: name
1846  INTEGER(KIND=16), target, asynchronous :: data(:,:)
1847  integer, intent(IN) :: access
1848  integer, intent(OUT), optional :: err
1849  endsubroutine PDI_share_INTEGER16_2D
1850  !=============================================================================
1851 
1852 
1853  !=============================================================================
1854  !< shares some data with PDI. the user code should not modify it before
1855  !! a call to either PDI_release or PDI_reclaim.
1856  !! \param[IN] name the data name
1857  !! \param[IN,OUT] data the data to share
1858  !! \param[IN] access whether the data can be accessed for read or write by
1859  !! PDI
1860  !! \param[OUT] err for error status (optional)
1861  !! \pre the user code owns the data buffer
1862  !! \post ownership of the data buffer is shared between PDI and the user code
1863  !!
1864  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1865  !! * PDI_IN means PDI can set the buffer content
1866  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1867  subroutine PDI_share_INTEGER16_3D( name, data, access, err )
1868  character(len=*), intent(IN) :: name
1869  INTEGER(KIND=16), target, asynchronous :: data(:,:,:)
1870  integer, intent(IN) :: access
1871  integer, intent(OUT), optional :: err
1872  endsubroutine PDI_share_INTEGER16_3D
1873  !=============================================================================
1874 
1875 
1876  !=============================================================================
1877  !< shares some data with PDI. the user code should not modify it before
1878  !! a call to either PDI_release or PDI_reclaim.
1879  !! \param[IN] name the data name
1880  !! \param[IN,OUT] data the data to share
1881  !! \param[IN] access whether the data can be accessed for read or write by
1882  !! PDI
1883  !! \param[OUT] err for error status (optional)
1884  !! \pre the user code owns the data buffer
1885  !! \post ownership of the data buffer is shared between PDI and the user code
1886  !!
1887  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1888  !! * PDI_IN means PDI can set the buffer content
1889  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1890  subroutine PDI_share_INTEGER16_4D( name, data, access, err )
1891  character(len=*), intent(IN) :: name
1892  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:)
1893  integer, intent(IN) :: access
1894  integer, intent(OUT), optional :: err
1895  endsubroutine PDI_share_INTEGER16_4D
1896  !=============================================================================
1897 
1898 
1899  !=============================================================================
1900  !< shares some data with PDI. the user code should not modify it before
1901  !! a call to either PDI_release or PDI_reclaim.
1902  !! \param[IN] name the data name
1903  !! \param[IN,OUT] data the data to share
1904  !! \param[IN] access whether the data can be accessed for read or write by
1905  !! PDI
1906  !! \param[OUT] err for error status (optional)
1907  !! \pre the user code owns the data buffer
1908  !! \post ownership of the data buffer is shared between PDI and the user code
1909  !!
1910  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1911  !! * PDI_IN means PDI can set the buffer content
1912  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1913  subroutine PDI_share_INTEGER16_5D( name, data, access, err )
1914  character(len=*), intent(IN) :: name
1915  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:)
1916  integer, intent(IN) :: access
1917  integer, intent(OUT), optional :: err
1918  endsubroutine PDI_share_INTEGER16_5D
1919  !=============================================================================
1920 
1921 
1922  !=============================================================================
1923  !< shares some data with PDI. the user code should not modify it before
1924  !! a call to either PDI_release or PDI_reclaim.
1925  !! \param[IN] name the data name
1926  !! \param[IN,OUT] data the data to share
1927  !! \param[IN] access whether the data can be accessed for read or write by
1928  !! PDI
1929  !! \param[OUT] err for error status (optional)
1930  !! \pre the user code owns the data buffer
1931  !! \post ownership of the data buffer is shared between PDI and the user code
1932  !!
1933  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1934  !! * PDI_IN means PDI can set the buffer content
1935  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1936  subroutine PDI_share_INTEGER16_6D( name, data, access, err )
1937  character(len=*), intent(IN) :: name
1938  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
1939  integer, intent(IN) :: access
1940  integer, intent(OUT), optional :: err
1941  endsubroutine PDI_share_INTEGER16_6D
1942  !=============================================================================
1943 
1944 
1945  !=============================================================================
1946  !< shares some data with PDI. the user code should not modify it before
1947  !! a call to either PDI_release or PDI_reclaim.
1948  !! \param[IN] name the data name
1949  !! \param[IN,OUT] data the data to share
1950  !! \param[IN] access whether the data can be accessed for read or write by
1951  !! PDI
1952  !! \param[OUT] err for error status (optional)
1953  !! \pre the user code owns the data buffer
1954  !! \post ownership of the data buffer is shared between PDI and the user code
1955  !!
1956  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1957  !! * PDI_IN means PDI can set the buffer content
1958  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1959  subroutine PDI_share_INTEGER16_7D( name, data, access, err )
1960  character(len=*), intent(IN) :: name
1961  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
1962  integer, intent(IN) :: access
1963  integer, intent(OUT), optional :: err
1964  endsubroutine PDI_share_INTEGER16_7D
1965  !=============================================================================
1966 
1967 
1968  !=============================================================================
1969  !< shares some data with PDI. the user code should not modify it before
1970  !! a call to either PDI_release or PDI_reclaim.
1971  !! \param[IN] name the data name
1972  !! \param[IN,OUT] data the data to share
1973  !! \param[IN] access whether the data can be accessed for read or write by
1974  !! PDI
1975  !! \param[OUT] err for error status (optional)
1976  !! \pre the user code owns the data buffer
1977  !! \post ownership of the data buffer is shared between PDI and the user code
1978  !!
1979  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
1980  !! * PDI_IN means PDI can set the buffer content
1981  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
1982  subroutine PDI_share_LOGICAL1_0D( name, data, access, err )
1983  character(len=*), intent(IN) :: name
1984  LOGICAL(KIND=1), target, asynchronous :: data
1985  integer, intent(IN) :: access
1986  integer, intent(OUT), optional :: err
1987  endsubroutine PDI_share_LOGICAL1_0D
1988  !=============================================================================
1989 
1990 
1991  !=============================================================================
1992  !< shares some data with PDI. the user code should not modify it before
1993  !! a call to either PDI_release or PDI_reclaim.
1994  !! \param[IN] name the data name
1995  !! \param[IN,OUT] data the data to share
1996  !! \param[IN] access whether the data can be accessed for read or write by
1997  !! PDI
1998  !! \param[OUT] err for error status (optional)
1999  !! \pre the user code owns the data buffer
2000  !! \post ownership of the data buffer is shared between PDI and the user code
2001  !!
2002  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2003  !! * PDI_IN means PDI can set the buffer content
2004  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2005  subroutine PDI_share_LOGICAL1_1D( name, data, access, err )
2006  character(len=*), intent(IN) :: name
2007  LOGICAL(KIND=1), target, asynchronous :: data(:)
2008  integer, intent(IN) :: access
2009  integer, intent(OUT), optional :: err
2010  endsubroutine PDI_share_LOGICAL1_1D
2011  !=============================================================================
2012 
2013 
2014  !=============================================================================
2015  !< shares some data with PDI. the user code should not modify it before
2016  !! a call to either PDI_release or PDI_reclaim.
2017  !! \param[IN] name the data name
2018  !! \param[IN,OUT] data the data to share
2019  !! \param[IN] access whether the data can be accessed for read or write by
2020  !! PDI
2021  !! \param[OUT] err for error status (optional)
2022  !! \pre the user code owns the data buffer
2023  !! \post ownership of the data buffer is shared between PDI and the user code
2024  !!
2025  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2026  !! * PDI_IN means PDI can set the buffer content
2027  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2028  subroutine PDI_share_LOGICAL1_2D( name, data, access, err )
2029  character(len=*), intent(IN) :: name
2030  LOGICAL(KIND=1), target, asynchronous :: data(:,:)
2031  integer, intent(IN) :: access
2032  integer, intent(OUT), optional :: err
2033  endsubroutine PDI_share_LOGICAL1_2D
2034  !=============================================================================
2035 
2036 
2037  !=============================================================================
2038  !< shares some data with PDI. the user code should not modify it before
2039  !! a call to either PDI_release or PDI_reclaim.
2040  !! \param[IN] name the data name
2041  !! \param[IN,OUT] data the data to share
2042  !! \param[IN] access whether the data can be accessed for read or write by
2043  !! PDI
2044  !! \param[OUT] err for error status (optional)
2045  !! \pre the user code owns the data buffer
2046  !! \post ownership of the data buffer is shared between PDI and the user code
2047  !!
2048  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2049  !! * PDI_IN means PDI can set the buffer content
2050  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2051  subroutine PDI_share_LOGICAL1_3D( name, data, access, err )
2052  character(len=*), intent(IN) :: name
2053  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:)
2054  integer, intent(IN) :: access
2055  integer, intent(OUT), optional :: err
2056  endsubroutine PDI_share_LOGICAL1_3D
2057  !=============================================================================
2058 
2059 
2060  !=============================================================================
2061  !< shares some data with PDI. the user code should not modify it before
2062  !! a call to either PDI_release or PDI_reclaim.
2063  !! \param[IN] name the data name
2064  !! \param[IN,OUT] data the data to share
2065  !! \param[IN] access whether the data can be accessed for read or write by
2066  !! PDI
2067  !! \param[OUT] err for error status (optional)
2068  !! \pre the user code owns the data buffer
2069  !! \post ownership of the data buffer is shared between PDI and the user code
2070  !!
2071  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2072  !! * PDI_IN means PDI can set the buffer content
2073  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2074  subroutine PDI_share_LOGICAL1_4D( name, data, access, err )
2075  character(len=*), intent(IN) :: name
2076  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:)
2077  integer, intent(IN) :: access
2078  integer, intent(OUT), optional :: err
2079  endsubroutine PDI_share_LOGICAL1_4D
2080  !=============================================================================
2081 
2082 
2083  !=============================================================================
2084  !< shares some data with PDI. the user code should not modify it before
2085  !! a call to either PDI_release or PDI_reclaim.
2086  !! \param[IN] name the data name
2087  !! \param[IN,OUT] data the data to share
2088  !! \param[IN] access whether the data can be accessed for read or write by
2089  !! PDI
2090  !! \param[OUT] err for error status (optional)
2091  !! \pre the user code owns the data buffer
2092  !! \post ownership of the data buffer is shared between PDI and the user code
2093  !!
2094  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2095  !! * PDI_IN means PDI can set the buffer content
2096  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2097  subroutine PDI_share_LOGICAL1_5D( name, data, access, err )
2098  character(len=*), intent(IN) :: name
2099  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:)
2100  integer, intent(IN) :: access
2101  integer, intent(OUT), optional :: err
2102  endsubroutine PDI_share_LOGICAL1_5D
2103  !=============================================================================
2104 
2105 
2106  !=============================================================================
2107  !< shares some data with PDI. the user code should not modify it before
2108  !! a call to either PDI_release or PDI_reclaim.
2109  !! \param[IN] name the data name
2110  !! \param[IN,OUT] data the data to share
2111  !! \param[IN] access whether the data can be accessed for read or write by
2112  !! PDI
2113  !! \param[OUT] err for error status (optional)
2114  !! \pre the user code owns the data buffer
2115  !! \post ownership of the data buffer is shared between PDI and the user code
2116  !!
2117  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2118  !! * PDI_IN means PDI can set the buffer content
2119  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2120  subroutine PDI_share_LOGICAL1_6D( name, data, access, err )
2121  character(len=*), intent(IN) :: name
2122  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
2123  integer, intent(IN) :: access
2124  integer, intent(OUT), optional :: err
2125  endsubroutine PDI_share_LOGICAL1_6D
2126  !=============================================================================
2127 
2128 
2129  !=============================================================================
2130  !< shares some data with PDI. the user code should not modify it before
2131  !! a call to either PDI_release or PDI_reclaim.
2132  !! \param[IN] name the data name
2133  !! \param[IN,OUT] data the data to share
2134  !! \param[IN] access whether the data can be accessed for read or write by
2135  !! PDI
2136  !! \param[OUT] err for error status (optional)
2137  !! \pre the user code owns the data buffer
2138  !! \post ownership of the data buffer is shared between PDI and the user code
2139  !!
2140  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2141  !! * PDI_IN means PDI can set the buffer content
2142  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2143  subroutine PDI_share_LOGICAL1_7D( name, data, access, err )
2144  character(len=*), intent(IN) :: name
2145  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
2146  integer, intent(IN) :: access
2147  integer, intent(OUT), optional :: err
2148  endsubroutine PDI_share_LOGICAL1_7D
2149  !=============================================================================
2150 
2151 
2152  !=============================================================================
2153  !< shares some data with PDI. the user code should not modify it before
2154  !! a call to either PDI_release or PDI_reclaim.
2155  !! \param[IN] name the data name
2156  !! \param[IN,OUT] data the data to share
2157  !! \param[IN] access whether the data can be accessed for read or write by
2158  !! PDI
2159  !! \param[OUT] err for error status (optional)
2160  !! \pre the user code owns the data buffer
2161  !! \post ownership of the data buffer is shared between PDI and the user code
2162  !!
2163  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2164  !! * PDI_IN means PDI can set the buffer content
2165  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2166  subroutine PDI_share_LOGICAL2_0D( name, data, access, err )
2167  character(len=*), intent(IN) :: name
2168  LOGICAL(KIND=2), target, asynchronous :: data
2169  integer, intent(IN) :: access
2170  integer, intent(OUT), optional :: err
2171  endsubroutine PDI_share_LOGICAL2_0D
2172  !=============================================================================
2173 
2174 
2175  !=============================================================================
2176  !< shares some data with PDI. the user code should not modify it before
2177  !! a call to either PDI_release or PDI_reclaim.
2178  !! \param[IN] name the data name
2179  !! \param[IN,OUT] data the data to share
2180  !! \param[IN] access whether the data can be accessed for read or write by
2181  !! PDI
2182  !! \param[OUT] err for error status (optional)
2183  !! \pre the user code owns the data buffer
2184  !! \post ownership of the data buffer is shared between PDI and the user code
2185  !!
2186  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2187  !! * PDI_IN means PDI can set the buffer content
2188  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2189  subroutine PDI_share_LOGICAL2_1D( name, data, access, err )
2190  character(len=*), intent(IN) :: name
2191  LOGICAL(KIND=2), target, asynchronous :: data(:)
2192  integer, intent(IN) :: access
2193  integer, intent(OUT), optional :: err
2194  endsubroutine PDI_share_LOGICAL2_1D
2195  !=============================================================================
2196 
2197 
2198  !=============================================================================
2199  !< shares some data with PDI. the user code should not modify it before
2200  !! a call to either PDI_release or PDI_reclaim.
2201  !! \param[IN] name the data name
2202  !! \param[IN,OUT] data the data to share
2203  !! \param[IN] access whether the data can be accessed for read or write by
2204  !! PDI
2205  !! \param[OUT] err for error status (optional)
2206  !! \pre the user code owns the data buffer
2207  !! \post ownership of the data buffer is shared between PDI and the user code
2208  !!
2209  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2210  !! * PDI_IN means PDI can set the buffer content
2211  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2212  subroutine PDI_share_LOGICAL2_2D( name, data, access, err )
2213  character(len=*), intent(IN) :: name
2214  LOGICAL(KIND=2), target, asynchronous :: data(:,:)
2215  integer, intent(IN) :: access
2216  integer, intent(OUT), optional :: err
2217  endsubroutine PDI_share_LOGICAL2_2D
2218  !=============================================================================
2219 
2220 
2221  !=============================================================================
2222  !< shares some data with PDI. the user code should not modify it before
2223  !! a call to either PDI_release or PDI_reclaim.
2224  !! \param[IN] name the data name
2225  !! \param[IN,OUT] data the data to share
2226  !! \param[IN] access whether the data can be accessed for read or write by
2227  !! PDI
2228  !! \param[OUT] err for error status (optional)
2229  !! \pre the user code owns the data buffer
2230  !! \post ownership of the data buffer is shared between PDI and the user code
2231  !!
2232  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2233  !! * PDI_IN means PDI can set the buffer content
2234  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2235  subroutine PDI_share_LOGICAL2_3D( name, data, access, err )
2236  character(len=*), intent(IN) :: name
2237  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:)
2238  integer, intent(IN) :: access
2239  integer, intent(OUT), optional :: err
2240  endsubroutine PDI_share_LOGICAL2_3D
2241  !=============================================================================
2242 
2243 
2244  !=============================================================================
2245  !< shares some data with PDI. the user code should not modify it before
2246  !! a call to either PDI_release or PDI_reclaim.
2247  !! \param[IN] name the data name
2248  !! \param[IN,OUT] data the data to share
2249  !! \param[IN] access whether the data can be accessed for read or write by
2250  !! PDI
2251  !! \param[OUT] err for error status (optional)
2252  !! \pre the user code owns the data buffer
2253  !! \post ownership of the data buffer is shared between PDI and the user code
2254  !!
2255  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2256  !! * PDI_IN means PDI can set the buffer content
2257  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2258  subroutine PDI_share_LOGICAL2_4D( name, data, access, err )
2259  character(len=*), intent(IN) :: name
2260  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:)
2261  integer, intent(IN) :: access
2262  integer, intent(OUT), optional :: err
2263  endsubroutine PDI_share_LOGICAL2_4D
2264  !=============================================================================
2265 
2266 
2267  !=============================================================================
2268  !< shares some data with PDI. the user code should not modify it before
2269  !! a call to either PDI_release or PDI_reclaim.
2270  !! \param[IN] name the data name
2271  !! \param[IN,OUT] data the data to share
2272  !! \param[IN] access whether the data can be accessed for read or write by
2273  !! PDI
2274  !! \param[OUT] err for error status (optional)
2275  !! \pre the user code owns the data buffer
2276  !! \post ownership of the data buffer is shared between PDI and the user code
2277  !!
2278  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2279  !! * PDI_IN means PDI can set the buffer content
2280  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2281  subroutine PDI_share_LOGICAL2_5D( name, data, access, err )
2282  character(len=*), intent(IN) :: name
2283  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:)
2284  integer, intent(IN) :: access
2285  integer, intent(OUT), optional :: err
2286  endsubroutine PDI_share_LOGICAL2_5D
2287  !=============================================================================
2288 
2289 
2290  !=============================================================================
2291  !< shares some data with PDI. the user code should not modify it before
2292  !! a call to either PDI_release or PDI_reclaim.
2293  !! \param[IN] name the data name
2294  !! \param[IN,OUT] data the data to share
2295  !! \param[IN] access whether the data can be accessed for read or write by
2296  !! PDI
2297  !! \param[OUT] err for error status (optional)
2298  !! \pre the user code owns the data buffer
2299  !! \post ownership of the data buffer is shared between PDI and the user code
2300  !!
2301  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2302  !! * PDI_IN means PDI can set the buffer content
2303  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2304  subroutine PDI_share_LOGICAL2_6D( name, data, access, err )
2305  character(len=*), intent(IN) :: name
2306  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:,:)
2307  integer, intent(IN) :: access
2308  integer, intent(OUT), optional :: err
2309  endsubroutine PDI_share_LOGICAL2_6D
2310  !=============================================================================
2311 
2312 
2313  !=============================================================================
2314  !< shares some data with PDI. the user code should not modify it before
2315  !! a call to either PDI_release or PDI_reclaim.
2316  !! \param[IN] name the data name
2317  !! \param[IN,OUT] data the data to share
2318  !! \param[IN] access whether the data can be accessed for read or write by
2319  !! PDI
2320  !! \param[OUT] err for error status (optional)
2321  !! \pre the user code owns the data buffer
2322  !! \post ownership of the data buffer is shared between PDI and the user code
2323  !!
2324  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2325  !! * PDI_IN means PDI can set the buffer content
2326  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2327  subroutine PDI_share_LOGICAL2_7D( name, data, access, err )
2328  character(len=*), intent(IN) :: name
2329  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:,:,:)
2330  integer, intent(IN) :: access
2331  integer, intent(OUT), optional :: err
2332  endsubroutine PDI_share_LOGICAL2_7D
2333  !=============================================================================
2334 
2335 
2336  !=============================================================================
2337  !< shares some data with PDI. the user code should not modify it before
2338  !! a call to either PDI_release or PDI_reclaim.
2339  !! \param[IN] name the data name
2340  !! \param[IN,OUT] data the data to share
2341  !! \param[IN] access whether the data can be accessed for read or write by
2342  !! PDI
2343  !! \param[OUT] err for error status (optional)
2344  !! \pre the user code owns the data buffer
2345  !! \post ownership of the data buffer is shared between PDI and the user code
2346  !!
2347  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2348  !! * PDI_IN means PDI can set the buffer content
2349  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2350  subroutine PDI_share_LOGICAL4_0D( name, data, access, err )
2351  character(len=*), intent(IN) :: name
2352  LOGICAL(KIND=4), target, asynchronous :: data
2353  integer, intent(IN) :: access
2354  integer, intent(OUT), optional :: err
2355  endsubroutine PDI_share_LOGICAL4_0D
2356  !=============================================================================
2357 
2358 
2359  !=============================================================================
2360  !< shares some data with PDI. the user code should not modify it before
2361  !! a call to either PDI_release or PDI_reclaim.
2362  !! \param[IN] name the data name
2363  !! \param[IN,OUT] data the data to share
2364  !! \param[IN] access whether the data can be accessed for read or write by
2365  !! PDI
2366  !! \param[OUT] err for error status (optional)
2367  !! \pre the user code owns the data buffer
2368  !! \post ownership of the data buffer is shared between PDI and the user code
2369  !!
2370  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2371  !! * PDI_IN means PDI can set the buffer content
2372  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2373  subroutine PDI_share_LOGICAL4_1D( name, data, access, err )
2374  character(len=*), intent(IN) :: name
2375  LOGICAL(KIND=4), target, asynchronous :: data(:)
2376  integer, intent(IN) :: access
2377  integer, intent(OUT), optional :: err
2378  endsubroutine PDI_share_LOGICAL4_1D
2379  !=============================================================================
2380 
2381 
2382  !=============================================================================
2383  !< shares some data with PDI. the user code should not modify it before
2384  !! a call to either PDI_release or PDI_reclaim.
2385  !! \param[IN] name the data name
2386  !! \param[IN,OUT] data the data to share
2387  !! \param[IN] access whether the data can be accessed for read or write by
2388  !! PDI
2389  !! \param[OUT] err for error status (optional)
2390  !! \pre the user code owns the data buffer
2391  !! \post ownership of the data buffer is shared between PDI and the user code
2392  !!
2393  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2394  !! * PDI_IN means PDI can set the buffer content
2395  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2396  subroutine PDI_share_LOGICAL4_2D( name, data, access, err )
2397  character(len=*), intent(IN) :: name
2398  LOGICAL(KIND=4), target, asynchronous :: data(:,:)
2399  integer, intent(IN) :: access
2400  integer, intent(OUT), optional :: err
2401  endsubroutine PDI_share_LOGICAL4_2D
2402  !=============================================================================
2403 
2404 
2405  !=============================================================================
2406  !< shares some data with PDI. the user code should not modify it before
2407  !! a call to either PDI_release or PDI_reclaim.
2408  !! \param[IN] name the data name
2409  !! \param[IN,OUT] data the data to share
2410  !! \param[IN] access whether the data can be accessed for read or write by
2411  !! PDI
2412  !! \param[OUT] err for error status (optional)
2413  !! \pre the user code owns the data buffer
2414  !! \post ownership of the data buffer is shared between PDI and the user code
2415  !!
2416  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2417  !! * PDI_IN means PDI can set the buffer content
2418  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2419  subroutine PDI_share_LOGICAL4_3D( name, data, access, err )
2420  character(len=*), intent(IN) :: name
2421  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:)
2422  integer, intent(IN) :: access
2423  integer, intent(OUT), optional :: err
2424  endsubroutine PDI_share_LOGICAL4_3D
2425  !=============================================================================
2426 
2427 
2428  !=============================================================================
2429  !< shares some data with PDI. the user code should not modify it before
2430  !! a call to either PDI_release or PDI_reclaim.
2431  !! \param[IN] name the data name
2432  !! \param[IN,OUT] data the data to share
2433  !! \param[IN] access whether the data can be accessed for read or write by
2434  !! PDI
2435  !! \param[OUT] err for error status (optional)
2436  !! \pre the user code owns the data buffer
2437  !! \post ownership of the data buffer is shared between PDI and the user code
2438  !!
2439  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2440  !! * PDI_IN means PDI can set the buffer content
2441  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2442  subroutine PDI_share_LOGICAL4_4D( name, data, access, err )
2443  character(len=*), intent(IN) :: name
2444  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:)
2445  integer, intent(IN) :: access
2446  integer, intent(OUT), optional :: err
2447  endsubroutine PDI_share_LOGICAL4_4D
2448  !=============================================================================
2449 
2450 
2451  !=============================================================================
2452  !< shares some data with PDI. the user code should not modify it before
2453  !! a call to either PDI_release or PDI_reclaim.
2454  !! \param[IN] name the data name
2455  !! \param[IN,OUT] data the data to share
2456  !! \param[IN] access whether the data can be accessed for read or write by
2457  !! PDI
2458  !! \param[OUT] err for error status (optional)
2459  !! \pre the user code owns the data buffer
2460  !! \post ownership of the data buffer is shared between PDI and the user code
2461  !!
2462  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2463  !! * PDI_IN means PDI can set the buffer content
2464  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2465  subroutine PDI_share_LOGICAL4_5D( name, data, access, err )
2466  character(len=*), intent(IN) :: name
2467  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:)
2468  integer, intent(IN) :: access
2469  integer, intent(OUT), optional :: err
2470  endsubroutine PDI_share_LOGICAL4_5D
2471  !=============================================================================
2472 
2473 
2474  !=============================================================================
2475  !< shares some data with PDI. the user code should not modify it before
2476  !! a call to either PDI_release or PDI_reclaim.
2477  !! \param[IN] name the data name
2478  !! \param[IN,OUT] data the data to share
2479  !! \param[IN] access whether the data can be accessed for read or write by
2480  !! PDI
2481  !! \param[OUT] err for error status (optional)
2482  !! \pre the user code owns the data buffer
2483  !! \post ownership of the data buffer is shared between PDI and the user code
2484  !!
2485  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2486  !! * PDI_IN means PDI can set the buffer content
2487  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2488  subroutine PDI_share_LOGICAL4_6D( name, data, access, err )
2489  character(len=*), intent(IN) :: name
2490  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
2491  integer, intent(IN) :: access
2492  integer, intent(OUT), optional :: err
2493  endsubroutine PDI_share_LOGICAL4_6D
2494  !=============================================================================
2495 
2496 
2497  !=============================================================================
2498  !< shares some data with PDI. the user code should not modify it before
2499  !! a call to either PDI_release or PDI_reclaim.
2500  !! \param[IN] name the data name
2501  !! \param[IN,OUT] data the data to share
2502  !! \param[IN] access whether the data can be accessed for read or write by
2503  !! PDI
2504  !! \param[OUT] err for error status (optional)
2505  !! \pre the user code owns the data buffer
2506  !! \post ownership of the data buffer is shared between PDI and the user code
2507  !!
2508  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2509  !! * PDI_IN means PDI can set the buffer content
2510  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2511  subroutine PDI_share_LOGICAL4_7D( name, data, access, err )
2512  character(len=*), intent(IN) :: name
2513  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
2514  integer, intent(IN) :: access
2515  integer, intent(OUT), optional :: err
2516  endsubroutine PDI_share_LOGICAL4_7D
2517  !=============================================================================
2518 
2519 
2520  !=============================================================================
2521  !< shares some data with PDI. the user code should not modify it before
2522  !! a call to either PDI_release or PDI_reclaim.
2523  !! \param[IN] name the data name
2524  !! \param[IN,OUT] data the data to share
2525  !! \param[IN] access whether the data can be accessed for read or write by
2526  !! PDI
2527  !! \param[OUT] err for error status (optional)
2528  !! \pre the user code owns the data buffer
2529  !! \post ownership of the data buffer is shared between PDI and the user code
2530  !!
2531  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2532  !! * PDI_IN means PDI can set the buffer content
2533  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2534  subroutine PDI_share_LOGICAL8_0D( name, data, access, err )
2535  character(len=*), intent(IN) :: name
2536  LOGICAL(KIND=8), target, asynchronous :: data
2537  integer, intent(IN) :: access
2538  integer, intent(OUT), optional :: err
2539  endsubroutine PDI_share_LOGICAL8_0D
2540  !=============================================================================
2541 
2542 
2543  !=============================================================================
2544  !< shares some data with PDI. the user code should not modify it before
2545  !! a call to either PDI_release or PDI_reclaim.
2546  !! \param[IN] name the data name
2547  !! \param[IN,OUT] data the data to share
2548  !! \param[IN] access whether the data can be accessed for read or write by
2549  !! PDI
2550  !! \param[OUT] err for error status (optional)
2551  !! \pre the user code owns the data buffer
2552  !! \post ownership of the data buffer is shared between PDI and the user code
2553  !!
2554  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2555  !! * PDI_IN means PDI can set the buffer content
2556  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2557  subroutine PDI_share_LOGICAL8_1D( name, data, access, err )
2558  character(len=*), intent(IN) :: name
2559  LOGICAL(KIND=8), target, asynchronous :: data(:)
2560  integer, intent(IN) :: access
2561  integer, intent(OUT), optional :: err
2562  endsubroutine PDI_share_LOGICAL8_1D
2563  !=============================================================================
2564 
2565 
2566  !=============================================================================
2567  !< shares some data with PDI. the user code should not modify it before
2568  !! a call to either PDI_release or PDI_reclaim.
2569  !! \param[IN] name the data name
2570  !! \param[IN,OUT] data the data to share
2571  !! \param[IN] access whether the data can be accessed for read or write by
2572  !! PDI
2573  !! \param[OUT] err for error status (optional)
2574  !! \pre the user code owns the data buffer
2575  !! \post ownership of the data buffer is shared between PDI and the user code
2576  !!
2577  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2578  !! * PDI_IN means PDI can set the buffer content
2579  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2580  subroutine PDI_share_LOGICAL8_2D( name, data, access, err )
2581  character(len=*), intent(IN) :: name
2582  LOGICAL(KIND=8), target, asynchronous :: data(:,:)
2583  integer, intent(IN) :: access
2584  integer, intent(OUT), optional :: err
2585  endsubroutine PDI_share_LOGICAL8_2D
2586  !=============================================================================
2587 
2588 
2589  !=============================================================================
2590  !< shares some data with PDI. the user code should not modify it before
2591  !! a call to either PDI_release or PDI_reclaim.
2592  !! \param[IN] name the data name
2593  !! \param[IN,OUT] data the data to share
2594  !! \param[IN] access whether the data can be accessed for read or write by
2595  !! PDI
2596  !! \param[OUT] err for error status (optional)
2597  !! \pre the user code owns the data buffer
2598  !! \post ownership of the data buffer is shared between PDI and the user code
2599  !!
2600  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2601  !! * PDI_IN means PDI can set the buffer content
2602  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2603  subroutine PDI_share_LOGICAL8_3D( name, data, access, err )
2604  character(len=*), intent(IN) :: name
2605  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:)
2606  integer, intent(IN) :: access
2607  integer, intent(OUT), optional :: err
2608  endsubroutine PDI_share_LOGICAL8_3D
2609  !=============================================================================
2610 
2611 
2612  !=============================================================================
2613  !< shares some data with PDI. the user code should not modify it before
2614  !! a call to either PDI_release or PDI_reclaim.
2615  !! \param[IN] name the data name
2616  !! \param[IN,OUT] data the data to share
2617  !! \param[IN] access whether the data can be accessed for read or write by
2618  !! PDI
2619  !! \param[OUT] err for error status (optional)
2620  !! \pre the user code owns the data buffer
2621  !! \post ownership of the data buffer is shared between PDI and the user code
2622  !!
2623  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2624  !! * PDI_IN means PDI can set the buffer content
2625  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2626  subroutine PDI_share_LOGICAL8_4D( name, data, access, err )
2627  character(len=*), intent(IN) :: name
2628  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:)
2629  integer, intent(IN) :: access
2630  integer, intent(OUT), optional :: err
2631  endsubroutine PDI_share_LOGICAL8_4D
2632  !=============================================================================
2633 
2634 
2635  !=============================================================================
2636  !< shares some data with PDI. the user code should not modify it before
2637  !! a call to either PDI_release or PDI_reclaim.
2638  !! \param[IN] name the data name
2639  !! \param[IN,OUT] data the data to share
2640  !! \param[IN] access whether the data can be accessed for read or write by
2641  !! PDI
2642  !! \param[OUT] err for error status (optional)
2643  !! \pre the user code owns the data buffer
2644  !! \post ownership of the data buffer is shared between PDI and the user code
2645  !!
2646  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2647  !! * PDI_IN means PDI can set the buffer content
2648  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2649  subroutine PDI_share_LOGICAL8_5D( name, data, access, err )
2650  character(len=*), intent(IN) :: name
2651  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:)
2652  integer, intent(IN) :: access
2653  integer, intent(OUT), optional :: err
2654  endsubroutine PDI_share_LOGICAL8_5D
2655  !=============================================================================
2656 
2657 
2658  !=============================================================================
2659  !< shares some data with PDI. the user code should not modify it before
2660  !! a call to either PDI_release or PDI_reclaim.
2661  !! \param[IN] name the data name
2662  !! \param[IN,OUT] data the data to share
2663  !! \param[IN] access whether the data can be accessed for read or write by
2664  !! PDI
2665  !! \param[OUT] err for error status (optional)
2666  !! \pre the user code owns the data buffer
2667  !! \post ownership of the data buffer is shared between PDI and the user code
2668  !!
2669  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2670  !! * PDI_IN means PDI can set the buffer content
2671  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2672  subroutine PDI_share_LOGICAL8_6D( name, data, access, err )
2673  character(len=*), intent(IN) :: name
2674  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
2675  integer, intent(IN) :: access
2676  integer, intent(OUT), optional :: err
2677  endsubroutine PDI_share_LOGICAL8_6D
2678  !=============================================================================
2679 
2680 
2681  !=============================================================================
2682  !< shares some data with PDI. the user code should not modify it before
2683  !! a call to either PDI_release or PDI_reclaim.
2684  !! \param[IN] name the data name
2685  !! \param[IN,OUT] data the data to share
2686  !! \param[IN] access whether the data can be accessed for read or write by
2687  !! PDI
2688  !! \param[OUT] err for error status (optional)
2689  !! \pre the user code owns the data buffer
2690  !! \post ownership of the data buffer is shared between PDI and the user code
2691  !!
2692  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2693  !! * PDI_IN means PDI can set the buffer content
2694  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2695  subroutine PDI_share_LOGICAL8_7D( name, data, access, err )
2696  character(len=*), intent(IN) :: name
2697  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
2698  integer, intent(IN) :: access
2699  integer, intent(OUT), optional :: err
2700  endsubroutine PDI_share_LOGICAL8_7D
2701  !=============================================================================
2702 
2703 
2704  !=============================================================================
2705  !< shares some data with PDI. the user code should not modify it before
2706  !! a call to either PDI_release or PDI_reclaim.
2707  !! \param[IN] name the data name
2708  !! \param[IN,OUT] data the data to share
2709  !! \param[IN] access whether the data can be accessed for read or write by
2710  !! PDI
2711  !! \param[OUT] err for error status (optional)
2712  !! \pre the user code owns the data buffer
2713  !! \post ownership of the data buffer is shared between PDI and the user code
2714  !!
2715  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2716  !! * PDI_IN means PDI can set the buffer content
2717  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2718  subroutine PDI_share_LOGICAL16_0D( name, data, access, err )
2719  character(len=*), intent(IN) :: name
2720  LOGICAL(KIND=16), target, asynchronous :: data
2721  integer, intent(IN) :: access
2722  integer, intent(OUT), optional :: err
2723  endsubroutine PDI_share_LOGICAL16_0D
2724  !=============================================================================
2725 
2726 
2727  !=============================================================================
2728  !< shares some data with PDI. the user code should not modify it before
2729  !! a call to either PDI_release or PDI_reclaim.
2730  !! \param[IN] name the data name
2731  !! \param[IN,OUT] data the data to share
2732  !! \param[IN] access whether the data can be accessed for read or write by
2733  !! PDI
2734  !! \param[OUT] err for error status (optional)
2735  !! \pre the user code owns the data buffer
2736  !! \post ownership of the data buffer is shared between PDI and the user code
2737  !!
2738  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2739  !! * PDI_IN means PDI can set the buffer content
2740  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2741  subroutine PDI_share_LOGICAL16_1D( name, data, access, err )
2742  character(len=*), intent(IN) :: name
2743  LOGICAL(KIND=16), target, asynchronous :: data(:)
2744  integer, intent(IN) :: access
2745  integer, intent(OUT), optional :: err
2746  endsubroutine PDI_share_LOGICAL16_1D
2747  !=============================================================================
2748 
2749 
2750  !=============================================================================
2751  !< shares some data with PDI. the user code should not modify it before
2752  !! a call to either PDI_release or PDI_reclaim.
2753  !! \param[IN] name the data name
2754  !! \param[IN,OUT] data the data to share
2755  !! \param[IN] access whether the data can be accessed for read or write by
2756  !! PDI
2757  !! \param[OUT] err for error status (optional)
2758  !! \pre the user code owns the data buffer
2759  !! \post ownership of the data buffer is shared between PDI and the user code
2760  !!
2761  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2762  !! * PDI_IN means PDI can set the buffer content
2763  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2764  subroutine PDI_share_LOGICAL16_2D( name, data, access, err )
2765  character(len=*), intent(IN) :: name
2766  LOGICAL(KIND=16), target, asynchronous :: data(:,:)
2767  integer, intent(IN) :: access
2768  integer, intent(OUT), optional :: err
2769  endsubroutine PDI_share_LOGICAL16_2D
2770  !=============================================================================
2771 
2772 
2773  !=============================================================================
2774  !< shares some data with PDI. the user code should not modify it before
2775  !! a call to either PDI_release or PDI_reclaim.
2776  !! \param[IN] name the data name
2777  !! \param[IN,OUT] data the data to share
2778  !! \param[IN] access whether the data can be accessed for read or write by
2779  !! PDI
2780  !! \param[OUT] err for error status (optional)
2781  !! \pre the user code owns the data buffer
2782  !! \post ownership of the data buffer is shared between PDI and the user code
2783  !!
2784  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2785  !! * PDI_IN means PDI can set the buffer content
2786  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2787  subroutine PDI_share_LOGICAL16_3D( name, data, access, err )
2788  character(len=*), intent(IN) :: name
2789  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:)
2790  integer, intent(IN) :: access
2791  integer, intent(OUT), optional :: err
2792  endsubroutine PDI_share_LOGICAL16_3D
2793  !=============================================================================
2794 
2795 
2796  !=============================================================================
2797  !< shares some data with PDI. the user code should not modify it before
2798  !! a call to either PDI_release or PDI_reclaim.
2799  !! \param[IN] name the data name
2800  !! \param[IN,OUT] data the data to share
2801  !! \param[IN] access whether the data can be accessed for read or write by
2802  !! PDI
2803  !! \param[OUT] err for error status (optional)
2804  !! \pre the user code owns the data buffer
2805  !! \post ownership of the data buffer is shared between PDI and the user code
2806  !!
2807  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2808  !! * PDI_IN means PDI can set the buffer content
2809  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2810  subroutine PDI_share_LOGICAL16_4D( name, data, access, err )
2811  character(len=*), intent(IN) :: name
2812  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:)
2813  integer, intent(IN) :: access
2814  integer, intent(OUT), optional :: err
2815  endsubroutine PDI_share_LOGICAL16_4D
2816  !=============================================================================
2817 
2818 
2819  !=============================================================================
2820  !< shares some data with PDI. the user code should not modify it before
2821  !! a call to either PDI_release or PDI_reclaim.
2822  !! \param[IN] name the data name
2823  !! \param[IN,OUT] data the data to share
2824  !! \param[IN] access whether the data can be accessed for read or write by
2825  !! PDI
2826  !! \param[OUT] err for error status (optional)
2827  !! \pre the user code owns the data buffer
2828  !! \post ownership of the data buffer is shared between PDI and the user code
2829  !!
2830  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2831  !! * PDI_IN means PDI can set the buffer content
2832  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2833  subroutine PDI_share_LOGICAL16_5D( name, data, access, err )
2834  character(len=*), intent(IN) :: name
2835  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:)
2836  integer, intent(IN) :: access
2837  integer, intent(OUT), optional :: err
2838  endsubroutine PDI_share_LOGICAL16_5D
2839  !=============================================================================
2840 
2841 
2842  !=============================================================================
2843  !< shares some data with PDI. the user code should not modify it before
2844  !! a call to either PDI_release or PDI_reclaim.
2845  !! \param[IN] name the data name
2846  !! \param[IN,OUT] data the data to share
2847  !! \param[IN] access whether the data can be accessed for read or write by
2848  !! PDI
2849  !! \param[OUT] err for error status (optional)
2850  !! \pre the user code owns the data buffer
2851  !! \post ownership of the data buffer is shared between PDI and the user code
2852  !!
2853  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2854  !! * PDI_IN means PDI can set the buffer content
2855  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2856  subroutine PDI_share_LOGICAL16_6D( name, data, access, err )
2857  character(len=*), intent(IN) :: name
2858  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
2859  integer, intent(IN) :: access
2860  integer, intent(OUT), optional :: err
2861  endsubroutine PDI_share_LOGICAL16_6D
2862  !=============================================================================
2863 
2864 
2865  !=============================================================================
2866  !< shares some data with PDI. the user code should not modify it before
2867  !! a call to either PDI_release or PDI_reclaim.
2868  !! \param[IN] name the data name
2869  !! \param[IN,OUT] data the data to share
2870  !! \param[IN] access whether the data can be accessed for read or write by
2871  !! PDI
2872  !! \param[OUT] err for error status (optional)
2873  !! \pre the user code owns the data buffer
2874  !! \post ownership of the data buffer is shared between PDI and the user code
2875  !!
2876  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2877  !! * PDI_IN means PDI can set the buffer content
2878  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2879  subroutine PDI_share_LOGICAL16_7D( name, data, access, err )
2880  character(len=*), intent(IN) :: name
2881  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
2882  integer, intent(IN) :: access
2883  integer, intent(OUT), optional :: err
2884  endsubroutine PDI_share_LOGICAL16_7D
2885  !=============================================================================
2886 
2887 
2888  !=============================================================================
2889  !< shares some data with PDI. the user code should not modify it before
2890  !! a call to either PDI_release or PDI_reclaim.
2891  !! \param[IN] name the data name
2892  !! \param[IN,OUT] data the data to share
2893  !! \param[IN] access whether the data can be accessed for read or write by
2894  !! PDI
2895  !! \param[OUT] err for error status (optional)
2896  !! \pre the user code owns the data buffer
2897  !! \post ownership of the data buffer is shared between PDI and the user code
2898  !!
2899  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2900  !! * PDI_IN means PDI can set the buffer content
2901  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2902  subroutine PDI_share_REAL4_0D( name, data, access, err )
2903  character(len=*), intent(IN) :: name
2904  REAL(KIND=4), target, asynchronous :: data
2905  integer, intent(IN) :: access
2906  integer, intent(OUT), optional :: err
2907  endsubroutine PDI_share_REAL4_0D
2908  !=============================================================================
2909 
2910 
2911  !=============================================================================
2912  !< shares some data with PDI. the user code should not modify it before
2913  !! a call to either PDI_release or PDI_reclaim.
2914  !! \param[IN] name the data name
2915  !! \param[IN,OUT] data the data to share
2916  !! \param[IN] access whether the data can be accessed for read or write by
2917  !! PDI
2918  !! \param[OUT] err for error status (optional)
2919  !! \pre the user code owns the data buffer
2920  !! \post ownership of the data buffer is shared between PDI and the user code
2921  !!
2922  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2923  !! * PDI_IN means PDI can set the buffer content
2924  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2925  subroutine PDI_share_REAL4_1D( name, data, access, err )
2926  character(len=*), intent(IN) :: name
2927  REAL(KIND=4), target, asynchronous :: data(:)
2928  integer, intent(IN) :: access
2929  integer, intent(OUT), optional :: err
2930  endsubroutine PDI_share_REAL4_1D
2931  !=============================================================================
2932 
2933 
2934  !=============================================================================
2935  !< shares some data with PDI. the user code should not modify it before
2936  !! a call to either PDI_release or PDI_reclaim.
2937  !! \param[IN] name the data name
2938  !! \param[IN,OUT] data the data to share
2939  !! \param[IN] access whether the data can be accessed for read or write by
2940  !! PDI
2941  !! \param[OUT] err for error status (optional)
2942  !! \pre the user code owns the data buffer
2943  !! \post ownership of the data buffer is shared between PDI and the user code
2944  !!
2945  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2946  !! * PDI_IN means PDI can set the buffer content
2947  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2948  subroutine PDI_share_REAL4_2D( name, data, access, err )
2949  character(len=*), intent(IN) :: name
2950  REAL(KIND=4), target, asynchronous :: data(:,:)
2951  integer, intent(IN) :: access
2952  integer, intent(OUT), optional :: err
2953  endsubroutine PDI_share_REAL4_2D
2954  !=============================================================================
2955 
2956 
2957  !=============================================================================
2958  !< shares some data with PDI. the user code should not modify it before
2959  !! a call to either PDI_release or PDI_reclaim.
2960  !! \param[IN] name the data name
2961  !! \param[IN,OUT] data the data to share
2962  !! \param[IN] access whether the data can be accessed for read or write by
2963  !! PDI
2964  !! \param[OUT] err for error status (optional)
2965  !! \pre the user code owns the data buffer
2966  !! \post ownership of the data buffer is shared between PDI and the user code
2967  !!
2968  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2969  !! * PDI_IN means PDI can set the buffer content
2970  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2971  subroutine PDI_share_REAL4_3D( name, data, access, err )
2972  character(len=*), intent(IN) :: name
2973  REAL(KIND=4), target, asynchronous :: data(:,:,:)
2974  integer, intent(IN) :: access
2975  integer, intent(OUT), optional :: err
2976  endsubroutine PDI_share_REAL4_3D
2977  !=============================================================================
2978 
2979 
2980  !=============================================================================
2981  !< shares some data with PDI. the user code should not modify it before
2982  !! a call to either PDI_release or PDI_reclaim.
2983  !! \param[IN] name the data name
2984  !! \param[IN,OUT] data the data to share
2985  !! \param[IN] access whether the data can be accessed for read or write by
2986  !! PDI
2987  !! \param[OUT] err for error status (optional)
2988  !! \pre the user code owns the data buffer
2989  !! \post ownership of the data buffer is shared between PDI and the user code
2990  !!
2991  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
2992  !! * PDI_IN means PDI can set the buffer content
2993  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
2994  subroutine PDI_share_REAL4_4D( name, data, access, err )
2995  character(len=*), intent(IN) :: name
2996  REAL(KIND=4), target, asynchronous :: data(:,:,:,:)
2997  integer, intent(IN) :: access
2998  integer, intent(OUT), optional :: err
2999  endsubroutine PDI_share_REAL4_4D
3000  !=============================================================================
3001 
3002 
3003  !=============================================================================
3004  !< shares some data with PDI. the user code should not modify it before
3005  !! a call to either PDI_release or PDI_reclaim.
3006  !! \param[IN] name the data name
3007  !! \param[IN,OUT] data the data to share
3008  !! \param[IN] access whether the data can be accessed for read or write by
3009  !! PDI
3010  !! \param[OUT] err for error status (optional)
3011  !! \pre the user code owns the data buffer
3012  !! \post ownership of the data buffer is shared between PDI and the user code
3013  !!
3014  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3015  !! * PDI_IN means PDI can set the buffer content
3016  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3017  subroutine PDI_share_REAL4_5D( name, data, access, err )
3018  character(len=*), intent(IN) :: name
3019  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:)
3020  integer, intent(IN) :: access
3021  integer, intent(OUT), optional :: err
3022  endsubroutine PDI_share_REAL4_5D
3023  !=============================================================================
3024 
3025 
3026  !=============================================================================
3027  !< shares some data with PDI. the user code should not modify it before
3028  !! a call to either PDI_release or PDI_reclaim.
3029  !! \param[IN] name the data name
3030  !! \param[IN,OUT] data the data to share
3031  !! \param[IN] access whether the data can be accessed for read or write by
3032  !! PDI
3033  !! \param[OUT] err for error status (optional)
3034  !! \pre the user code owns the data buffer
3035  !! \post ownership of the data buffer is shared between PDI and the user code
3036  !!
3037  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3038  !! * PDI_IN means PDI can set the buffer content
3039  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3040  subroutine PDI_share_REAL4_6D( name, data, access, err )
3041  character(len=*), intent(IN) :: name
3042  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
3043  integer, intent(IN) :: access
3044  integer, intent(OUT), optional :: err
3045  endsubroutine PDI_share_REAL4_6D
3046  !=============================================================================
3047 
3048 
3049  !=============================================================================
3050  !< shares some data with PDI. the user code should not modify it before
3051  !! a call to either PDI_release or PDI_reclaim.
3052  !! \param[IN] name the data name
3053  !! \param[IN,OUT] data the data to share
3054  !! \param[IN] access whether the data can be accessed for read or write by
3055  !! PDI
3056  !! \param[OUT] err for error status (optional)
3057  !! \pre the user code owns the data buffer
3058  !! \post ownership of the data buffer is shared between PDI and the user code
3059  !!
3060  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3061  !! * PDI_IN means PDI can set the buffer content
3062  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3063  subroutine PDI_share_REAL4_7D( name, data, access, err )
3064  character(len=*), intent(IN) :: name
3065  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
3066  integer, intent(IN) :: access
3067  integer, intent(OUT), optional :: err
3068  endsubroutine PDI_share_REAL4_7D
3069  !=============================================================================
3070 
3071 
3072  !=============================================================================
3073  !< shares some data with PDI. the user code should not modify it before
3074  !! a call to either PDI_release or PDI_reclaim.
3075  !! \param[IN] name the data name
3076  !! \param[IN,OUT] data the data to share
3077  !! \param[IN] access whether the data can be accessed for read or write by
3078  !! PDI
3079  !! \param[OUT] err for error status (optional)
3080  !! \pre the user code owns the data buffer
3081  !! \post ownership of the data buffer is shared between PDI and the user code
3082  !!
3083  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3084  !! * PDI_IN means PDI can set the buffer content
3085  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3086  subroutine PDI_share_REAL8_0D( name, data, access, err )
3087  character(len=*), intent(IN) :: name
3088  REAL(KIND=8), target, asynchronous :: data
3089  integer, intent(IN) :: access
3090  integer, intent(OUT), optional :: err
3091  endsubroutine PDI_share_REAL8_0D
3092  !=============================================================================
3093 
3094 
3095  !=============================================================================
3096  !< shares some data with PDI. the user code should not modify it before
3097  !! a call to either PDI_release or PDI_reclaim.
3098  !! \param[IN] name the data name
3099  !! \param[IN,OUT] data the data to share
3100  !! \param[IN] access whether the data can be accessed for read or write by
3101  !! PDI
3102  !! \param[OUT] err for error status (optional)
3103  !! \pre the user code owns the data buffer
3104  !! \post ownership of the data buffer is shared between PDI and the user code
3105  !!
3106  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3107  !! * PDI_IN means PDI can set the buffer content
3108  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3109  subroutine PDI_share_REAL8_1D( name, data, access, err )
3110  character(len=*), intent(IN) :: name
3111  REAL(KIND=8), target, asynchronous :: data(:)
3112  integer, intent(IN) :: access
3113  integer, intent(OUT), optional :: err
3114  endsubroutine PDI_share_REAL8_1D
3115  !=============================================================================
3116 
3117 
3118  !=============================================================================
3119  !< shares some data with PDI. the user code should not modify it before
3120  !! a call to either PDI_release or PDI_reclaim.
3121  !! \param[IN] name the data name
3122  !! \param[IN,OUT] data the data to share
3123  !! \param[IN] access whether the data can be accessed for read or write by
3124  !! PDI
3125  !! \param[OUT] err for error status (optional)
3126  !! \pre the user code owns the data buffer
3127  !! \post ownership of the data buffer is shared between PDI and the user code
3128  !!
3129  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3130  !! * PDI_IN means PDI can set the buffer content
3131  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3132  subroutine PDI_share_REAL8_2D( name, data, access, err )
3133  character(len=*), intent(IN) :: name
3134  REAL(KIND=8), target, asynchronous :: data(:,:)
3135  integer, intent(IN) :: access
3136  integer, intent(OUT), optional :: err
3137  endsubroutine PDI_share_REAL8_2D
3138  !=============================================================================
3139 
3140 
3141  !=============================================================================
3142  !< shares some data with PDI. the user code should not modify it before
3143  !! a call to either PDI_release or PDI_reclaim.
3144  !! \param[IN] name the data name
3145  !! \param[IN,OUT] data the data to share
3146  !! \param[IN] access whether the data can be accessed for read or write by
3147  !! PDI
3148  !! \param[OUT] err for error status (optional)
3149  !! \pre the user code owns the data buffer
3150  !! \post ownership of the data buffer is shared between PDI and the user code
3151  !!
3152  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3153  !! * PDI_IN means PDI can set the buffer content
3154  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3155  subroutine PDI_share_REAL8_3D( name, data, access, err )
3156  character(len=*), intent(IN) :: name
3157  REAL(KIND=8), target, asynchronous :: data(:,:,:)
3158  integer, intent(IN) :: access
3159  integer, intent(OUT), optional :: err
3160  endsubroutine PDI_share_REAL8_3D
3161  !=============================================================================
3162 
3163 
3164  !=============================================================================
3165  !< shares some data with PDI. the user code should not modify it before
3166  !! a call to either PDI_release or PDI_reclaim.
3167  !! \param[IN] name the data name
3168  !! \param[IN,OUT] data the data to share
3169  !! \param[IN] access whether the data can be accessed for read or write by
3170  !! PDI
3171  !! \param[OUT] err for error status (optional)
3172  !! \pre the user code owns the data buffer
3173  !! \post ownership of the data buffer is shared between PDI and the user code
3174  !!
3175  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3176  !! * PDI_IN means PDI can set the buffer content
3177  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3178  subroutine PDI_share_REAL8_4D( name, data, access, err )
3179  character(len=*), intent(IN) :: name
3180  REAL(KIND=8), target, asynchronous :: data(:,:,:,:)
3181  integer, intent(IN) :: access
3182  integer, intent(OUT), optional :: err
3183  endsubroutine PDI_share_REAL8_4D
3184  !=============================================================================
3185 
3186 
3187  !=============================================================================
3188  !< shares some data with PDI. the user code should not modify it before
3189  !! a call to either PDI_release or PDI_reclaim.
3190  !! \param[IN] name the data name
3191  !! \param[IN,OUT] data the data to share
3192  !! \param[IN] access whether the data can be accessed for read or write by
3193  !! PDI
3194  !! \param[OUT] err for error status (optional)
3195  !! \pre the user code owns the data buffer
3196  !! \post ownership of the data buffer is shared between PDI and the user code
3197  !!
3198  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3199  !! * PDI_IN means PDI can set the buffer content
3200  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3201  subroutine PDI_share_REAL8_5D( name, data, access, err )
3202  character(len=*), intent(IN) :: name
3203  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:)
3204  integer, intent(IN) :: access
3205  integer, intent(OUT), optional :: err
3206  endsubroutine PDI_share_REAL8_5D
3207  !=============================================================================
3208 
3209 
3210  !=============================================================================
3211  !< shares some data with PDI. the user code should not modify it before
3212  !! a call to either PDI_release or PDI_reclaim.
3213  !! \param[IN] name the data name
3214  !! \param[IN,OUT] data the data to share
3215  !! \param[IN] access whether the data can be accessed for read or write by
3216  !! PDI
3217  !! \param[OUT] err for error status (optional)
3218  !! \pre the user code owns the data buffer
3219  !! \post ownership of the data buffer is shared between PDI and the user code
3220  !!
3221  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3222  !! * PDI_IN means PDI can set the buffer content
3223  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3224  subroutine PDI_share_REAL8_6D( name, data, access, err )
3225  character(len=*), intent(IN) :: name
3226  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
3227  integer, intent(IN) :: access
3228  integer, intent(OUT), optional :: err
3229  endsubroutine PDI_share_REAL8_6D
3230  !=============================================================================
3231 
3232 
3233  !=============================================================================
3234  !< shares some data with PDI. the user code should not modify it before
3235  !! a call to either PDI_release or PDI_reclaim.
3236  !! \param[IN] name the data name
3237  !! \param[IN,OUT] data the data to share
3238  !! \param[IN] access whether the data can be accessed for read or write by
3239  !! PDI
3240  !! \param[OUT] err for error status (optional)
3241  !! \pre the user code owns the data buffer
3242  !! \post ownership of the data buffer is shared between PDI and the user code
3243  !!
3244  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3245  !! * PDI_IN means PDI can set the buffer content
3246  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3247  subroutine PDI_share_REAL8_7D( name, data, access, err )
3248  character(len=*), intent(IN) :: name
3249  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
3250  integer, intent(IN) :: access
3251  integer, intent(OUT), optional :: err
3252  endsubroutine PDI_share_REAL8_7D
3253  !=============================================================================
3254 
3255 
3256  !=============================================================================
3257  !< shares some data with PDI. the user code should not modify it before
3258  !! a call to either PDI_release or PDI_reclaim.
3259  !! \param[IN] name the data name
3260  !! \param[IN,OUT] data the data to share
3261  !! \param[IN] access whether the data can be accessed for read or write by
3262  !! PDI
3263  !! \param[OUT] err for error status (optional)
3264  !! \pre the user code owns the data buffer
3265  !! \post ownership of the data buffer is shared between PDI and the user code
3266  !!
3267  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3268  !! * PDI_IN means PDI can set the buffer content
3269  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3270  subroutine PDI_share_REAL16_0D( name, data, access, err )
3271  character(len=*), intent(IN) :: name
3272  REAL(KIND=16), target, asynchronous :: data
3273  integer, intent(IN) :: access
3274  integer, intent(OUT), optional :: err
3275  endsubroutine PDI_share_REAL16_0D
3276  !=============================================================================
3277 
3278 
3279  !=============================================================================
3280  !< shares some data with PDI. the user code should not modify it before
3281  !! a call to either PDI_release or PDI_reclaim.
3282  !! \param[IN] name the data name
3283  !! \param[IN,OUT] data the data to share
3284  !! \param[IN] access whether the data can be accessed for read or write by
3285  !! PDI
3286  !! \param[OUT] err for error status (optional)
3287  !! \pre the user code owns the data buffer
3288  !! \post ownership of the data buffer is shared between PDI and the user code
3289  !!
3290  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3291  !! * PDI_IN means PDI can set the buffer content
3292  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3293  subroutine PDI_share_REAL16_1D( name, data, access, err )
3294  character(len=*), intent(IN) :: name
3295  REAL(KIND=16), target, asynchronous :: data(:)
3296  integer, intent(IN) :: access
3297  integer, intent(OUT), optional :: err
3298  endsubroutine PDI_share_REAL16_1D
3299  !=============================================================================
3300 
3301 
3302  !=============================================================================
3303  !< shares some data with PDI. the user code should not modify it before
3304  !! a call to either PDI_release or PDI_reclaim.
3305  !! \param[IN] name the data name
3306  !! \param[IN,OUT] data the data to share
3307  !! \param[IN] access whether the data can be accessed for read or write by
3308  !! PDI
3309  !! \param[OUT] err for error status (optional)
3310  !! \pre the user code owns the data buffer
3311  !! \post ownership of the data buffer is shared between PDI and the user code
3312  !!
3313  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3314  !! * PDI_IN means PDI can set the buffer content
3315  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3316  subroutine PDI_share_REAL16_2D( name, data, access, err )
3317  character(len=*), intent(IN) :: name
3318  REAL(KIND=16), target, asynchronous :: data(:,:)
3319  integer, intent(IN) :: access
3320  integer, intent(OUT), optional :: err
3321  endsubroutine PDI_share_REAL16_2D
3322  !=============================================================================
3323 
3324 
3325  !=============================================================================
3326  !< shares some data with PDI. the user code should not modify it before
3327  !! a call to either PDI_release or PDI_reclaim.
3328  !! \param[IN] name the data name
3329  !! \param[IN,OUT] data the data to share
3330  !! \param[IN] access whether the data can be accessed for read or write by
3331  !! PDI
3332  !! \param[OUT] err for error status (optional)
3333  !! \pre the user code owns the data buffer
3334  !! \post ownership of the data buffer is shared between PDI and the user code
3335  !!
3336  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3337  !! * PDI_IN means PDI can set the buffer content
3338  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3339  subroutine PDI_share_REAL16_3D( name, data, access, err )
3340  character(len=*), intent(IN) :: name
3341  REAL(KIND=16), target, asynchronous :: data(:,:,:)
3342  integer, intent(IN) :: access
3343  integer, intent(OUT), optional :: err
3344  endsubroutine PDI_share_REAL16_3D
3345  !=============================================================================
3346 
3347 
3348  !=============================================================================
3349  !< shares some data with PDI. the user code should not modify it before
3350  !! a call to either PDI_release or PDI_reclaim.
3351  !! \param[IN] name the data name
3352  !! \param[IN,OUT] data the data to share
3353  !! \param[IN] access whether the data can be accessed for read or write by
3354  !! PDI
3355  !! \param[OUT] err for error status (optional)
3356  !! \pre the user code owns the data buffer
3357  !! \post ownership of the data buffer is shared between PDI and the user code
3358  !!
3359  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3360  !! * PDI_IN means PDI can set the buffer content
3361  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3362  subroutine PDI_share_REAL16_4D( name, data, access, err )
3363  character(len=*), intent(IN) :: name
3364  REAL(KIND=16), target, asynchronous :: data(:,:,:,:)
3365  integer, intent(IN) :: access
3366  integer, intent(OUT), optional :: err
3367  endsubroutine PDI_share_REAL16_4D
3368  !=============================================================================
3369 
3370 
3371  !=============================================================================
3372  !< shares some data with PDI. the user code should not modify it before
3373  !! a call to either PDI_release or PDI_reclaim.
3374  !! \param[IN] name the data name
3375  !! \param[IN,OUT] data the data to share
3376  !! \param[IN] access whether the data can be accessed for read or write by
3377  !! PDI
3378  !! \param[OUT] err for error status (optional)
3379  !! \pre the user code owns the data buffer
3380  !! \post ownership of the data buffer is shared between PDI and the user code
3381  !!
3382  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3383  !! * PDI_IN means PDI can set the buffer content
3384  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3385  subroutine PDI_share_REAL16_5D( name, data, access, err )
3386  character(len=*), intent(IN) :: name
3387  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:)
3388  integer, intent(IN) :: access
3389  integer, intent(OUT), optional :: err
3390  endsubroutine PDI_share_REAL16_5D
3391  !=============================================================================
3392 
3393 
3394  !=============================================================================
3395  !< shares some data with PDI. the user code should not modify it before
3396  !! a call to either PDI_release or PDI_reclaim.
3397  !! \param[IN] name the data name
3398  !! \param[IN,OUT] data the data to share
3399  !! \param[IN] access whether the data can be accessed for read or write by
3400  !! PDI
3401  !! \param[OUT] err for error status (optional)
3402  !! \pre the user code owns the data buffer
3403  !! \post ownership of the data buffer is shared between PDI and the user code
3404  !!
3405  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3406  !! * PDI_IN means PDI can set the buffer content
3407  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3408  subroutine PDI_share_REAL16_6D( name, data, access, err )
3409  character(len=*), intent(IN) :: name
3410  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
3411  integer, intent(IN) :: access
3412  integer, intent(OUT), optional :: err
3413  endsubroutine PDI_share_REAL16_6D
3414  !=============================================================================
3415 
3416 
3417  !=============================================================================
3418  !< shares some data with PDI. the user code should not modify it before
3419  !! a call to either PDI_release or PDI_reclaim.
3420  !! \param[IN] name the data name
3421  !! \param[IN,OUT] data the data to share
3422  !! \param[IN] access whether the data can be accessed for read or write by
3423  !! PDI
3424  !! \param[OUT] err for error status (optional)
3425  !! \pre the user code owns the data buffer
3426  !! \post ownership of the data buffer is shared between PDI and the user code
3427  !!
3428  !! the access parameter is a binary or of PDI_IN & PDI_OUT.
3429  !! * PDI_IN means PDI can set the buffer content
3430  !! * PDI_OUT means the buffer contains data that can be accessed by PDI
3431  subroutine PDI_share_REAL16_7D( name, data, access, err )
3432  character(len=*), intent(IN) :: name
3433  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
3434  integer, intent(IN) :: access
3435  integer, intent(OUT), optional :: err
3436  endsubroutine PDI_share_REAL16_7D
3437  !=============================================================================
3438 
3439 endinterface PDI_share
3440 
3441 
3442 interface PDI_expose
3443 
3444  !=============================================================================
3445  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3446  !! \param[IN] name the data name
3447  !! \param[IN] data the exposed data
3448  !! \param[IN] access whether the data can be accessed for read or write by
3449  !! PDI
3450  !! \param[OUT] err for error status (optional)
3451  subroutine PDI_expose_CHARACTER1_0D(name, data, access, err)
3452  character(len=*), intent(IN) :: name
3453  CHARACTER(KIND=1), target, asynchronous :: data
3454  integer, intent(IN) :: access
3455  integer, intent(OUT), optional :: err
3456  endsubroutine PDI_expose_CHARACTER1_0D
3457  !=============================================================================
3458 
3459 
3460  !=============================================================================
3461  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3462  !! \param[IN] name the data name
3463  !! \param[IN] data the exposed data
3464  !! \param[IN] access whether the data can be accessed for read or write by
3465  !! PDI
3466  !! \param[OUT] err for error status (optional)
3467  subroutine PDI_expose_CHARACTER1_1D(name, data, access, err)
3468  character(len=*), intent(IN) :: name
3469  CHARACTER(KIND=1), target, asynchronous :: data(:)
3470  integer, intent(IN) :: access
3471  integer, intent(OUT), optional :: err
3472  endsubroutine PDI_expose_CHARACTER1_1D
3473  !=============================================================================
3474 
3475 
3476  !=============================================================================
3477  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3478  !! \param[IN] name the data name
3479  !! \param[IN] data the exposed data
3480  !! \param[IN] access whether the data can be accessed for read or write by
3481  !! PDI
3482  !! \param[OUT] err for error status (optional)
3483  subroutine PDI_expose_CHARACTER1_2D(name, data, access, err)
3484  character(len=*), intent(IN) :: name
3485  CHARACTER(KIND=1), target, asynchronous :: data(:,:)
3486  integer, intent(IN) :: access
3487  integer, intent(OUT), optional :: err
3488  endsubroutine PDI_expose_CHARACTER1_2D
3489  !=============================================================================
3490 
3491 
3492  !=============================================================================
3493  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3494  !! \param[IN] name the data name
3495  !! \param[IN] data the exposed data
3496  !! \param[IN] access whether the data can be accessed for read or write by
3497  !! PDI
3498  !! \param[OUT] err for error status (optional)
3499  subroutine PDI_expose_CHARACTER1_3D(name, data, access, err)
3500  character(len=*), intent(IN) :: name
3501  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:)
3502  integer, intent(IN) :: access
3503  integer, intent(OUT), optional :: err
3504  endsubroutine PDI_expose_CHARACTER1_3D
3505  !=============================================================================
3506 
3507 
3508  !=============================================================================
3509  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3510  !! \param[IN] name the data name
3511  !! \param[IN] data the exposed data
3512  !! \param[IN] access whether the data can be accessed for read or write by
3513  !! PDI
3514  !! \param[OUT] err for error status (optional)
3515  subroutine PDI_expose_CHARACTER1_4D(name, data, access, err)
3516  character(len=*), intent(IN) :: name
3517  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:)
3518  integer, intent(IN) :: access
3519  integer, intent(OUT), optional :: err
3520  endsubroutine PDI_expose_CHARACTER1_4D
3521  !=============================================================================
3522 
3523 
3524  !=============================================================================
3525  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3526  !! \param[IN] name the data name
3527  !! \param[IN] data the exposed data
3528  !! \param[IN] access whether the data can be accessed for read or write by
3529  !! PDI
3530  !! \param[OUT] err for error status (optional)
3531  subroutine PDI_expose_CHARACTER1_5D(name, data, access, err)
3532  character(len=*), intent(IN) :: name
3533  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:)
3534  integer, intent(IN) :: access
3535  integer, intent(OUT), optional :: err
3536  endsubroutine PDI_expose_CHARACTER1_5D
3537  !=============================================================================
3538 
3539 
3540  !=============================================================================
3541  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3542  !! \param[IN] name the data name
3543  !! \param[IN] data the exposed data
3544  !! \param[IN] access whether the data can be accessed for read or write by
3545  !! PDI
3546  !! \param[OUT] err for error status (optional)
3547  subroutine PDI_expose_CHARACTER1_6D(name, data, access, err)
3548  character(len=*), intent(IN) :: name
3549  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
3550  integer, intent(IN) :: access
3551  integer, intent(OUT), optional :: err
3552  endsubroutine PDI_expose_CHARACTER1_6D
3553  !=============================================================================
3554 
3555 
3556  !=============================================================================
3557  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3558  !! \param[IN] name the data name
3559  !! \param[IN] data the exposed data
3560  !! \param[IN] access whether the data can be accessed for read or write by
3561  !! PDI
3562  !! \param[OUT] err for error status (optional)
3563  subroutine PDI_expose_CHARACTER1_7D(name, data, access, err)
3564  character(len=*), intent(IN) :: name
3565  CHARACTER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
3566  integer, intent(IN) :: access
3567  integer, intent(OUT), optional :: err
3568  endsubroutine PDI_expose_CHARACTER1_7D
3569  !=============================================================================
3570 
3571 
3572  !=============================================================================
3573  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3574  !! \param[IN] name the data name
3575  !! \param[IN] data the exposed data
3576  !! \param[IN] access whether the data can be accessed for read or write by
3577  !! PDI
3578  !! \param[OUT] err for error status (optional)
3579  subroutine PDI_expose_CHARACTER4_0D(name, data, access, err)
3580  character(len=*), intent(IN) :: name
3581  CHARACTER(KIND=4), target, asynchronous :: data
3582  integer, intent(IN) :: access
3583  integer, intent(OUT), optional :: err
3584  endsubroutine PDI_expose_CHARACTER4_0D
3585  !=============================================================================
3586 
3587 
3588  !=============================================================================
3589  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3590  !! \param[IN] name the data name
3591  !! \param[IN] data the exposed data
3592  !! \param[IN] access whether the data can be accessed for read or write by
3593  !! PDI
3594  !! \param[OUT] err for error status (optional)
3595  subroutine PDI_expose_CHARACTER4_1D(name, data, access, err)
3596  character(len=*), intent(IN) :: name
3597  CHARACTER(KIND=4), target, asynchronous :: data(:)
3598  integer, intent(IN) :: access
3599  integer, intent(OUT), optional :: err
3600  endsubroutine PDI_expose_CHARACTER4_1D
3601  !=============================================================================
3602 
3603 
3604  !=============================================================================
3605  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3606  !! \param[IN] name the data name
3607  !! \param[IN] data the exposed data
3608  !! \param[IN] access whether the data can be accessed for read or write by
3609  !! PDI
3610  !! \param[OUT] err for error status (optional)
3611  subroutine PDI_expose_CHARACTER4_2D(name, data, access, err)
3612  character(len=*), intent(IN) :: name
3613  CHARACTER(KIND=4), target, asynchronous :: data(:,:)
3614  integer, intent(IN) :: access
3615  integer, intent(OUT), optional :: err
3616  endsubroutine PDI_expose_CHARACTER4_2D
3617  !=============================================================================
3618 
3619 
3620  !=============================================================================
3621  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3622  !! \param[IN] name the data name
3623  !! \param[IN] data the exposed data
3624  !! \param[IN] access whether the data can be accessed for read or write by
3625  !! PDI
3626  !! \param[OUT] err for error status (optional)
3627  subroutine PDI_expose_CHARACTER4_3D(name, data, access, err)
3628  character(len=*), intent(IN) :: name
3629  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:)
3630  integer, intent(IN) :: access
3631  integer, intent(OUT), optional :: err
3632  endsubroutine PDI_expose_CHARACTER4_3D
3633  !=============================================================================
3634 
3635 
3636  !=============================================================================
3637  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3638  !! \param[IN] name the data name
3639  !! \param[IN] data the exposed data
3640  !! \param[IN] access whether the data can be accessed for read or write by
3641  !! PDI
3642  !! \param[OUT] err for error status (optional)
3643  subroutine PDI_expose_CHARACTER4_4D(name, data, access, err)
3644  character(len=*), intent(IN) :: name
3645  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:)
3646  integer, intent(IN) :: access
3647  integer, intent(OUT), optional :: err
3648  endsubroutine PDI_expose_CHARACTER4_4D
3649  !=============================================================================
3650 
3651 
3652  !=============================================================================
3653  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3654  !! \param[IN] name the data name
3655  !! \param[IN] data the exposed data
3656  !! \param[IN] access whether the data can be accessed for read or write by
3657  !! PDI
3658  !! \param[OUT] err for error status (optional)
3659  subroutine PDI_expose_CHARACTER4_5D(name, data, access, err)
3660  character(len=*), intent(IN) :: name
3661  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:)
3662  integer, intent(IN) :: access
3663  integer, intent(OUT), optional :: err
3664  endsubroutine PDI_expose_CHARACTER4_5D
3665  !=============================================================================
3666 
3667 
3668  !=============================================================================
3669  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3670  !! \param[IN] name the data name
3671  !! \param[IN] data the exposed data
3672  !! \param[IN] access whether the data can be accessed for read or write by
3673  !! PDI
3674  !! \param[OUT] err for error status (optional)
3675  subroutine PDI_expose_CHARACTER4_6D(name, data, access, err)
3676  character(len=*), intent(IN) :: name
3677  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
3678  integer, intent(IN) :: access
3679  integer, intent(OUT), optional :: err
3680  endsubroutine PDI_expose_CHARACTER4_6D
3681  !=============================================================================
3682 
3683 
3684  !=============================================================================
3685  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3686  !! \param[IN] name the data name
3687  !! \param[IN] data the exposed data
3688  !! \param[IN] access whether the data can be accessed for read or write by
3689  !! PDI
3690  !! \param[OUT] err for error status (optional)
3691  subroutine PDI_expose_CHARACTER4_7D(name, data, access, err)
3692  character(len=*), intent(IN) :: name
3693  CHARACTER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
3694  integer, intent(IN) :: access
3695  integer, intent(OUT), optional :: err
3696  endsubroutine PDI_expose_CHARACTER4_7D
3697  !=============================================================================
3698 
3699 
3700  !=============================================================================
3701  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3702  !! \param[IN] name the data name
3703  !! \param[IN] data the exposed data
3704  !! \param[IN] access whether the data can be accessed for read or write by
3705  !! PDI
3706  !! \param[OUT] err for error status (optional)
3707  subroutine PDI_expose_COMPLEX4_0D(name, data, access, err)
3708  character(len=*), intent(IN) :: name
3709  COMPLEX(KIND=4), target, asynchronous :: data
3710  integer, intent(IN) :: access
3711  integer, intent(OUT), optional :: err
3712  endsubroutine PDI_expose_COMPLEX4_0D
3713  !=============================================================================
3714 
3715 
3716  !=============================================================================
3717  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3718  !! \param[IN] name the data name
3719  !! \param[IN] data the exposed data
3720  !! \param[IN] access whether the data can be accessed for read or write by
3721  !! PDI
3722  !! \param[OUT] err for error status (optional)
3723  subroutine PDI_expose_COMPLEX4_1D(name, data, access, err)
3724  character(len=*), intent(IN) :: name
3725  COMPLEX(KIND=4), target, asynchronous :: data(:)
3726  integer, intent(IN) :: access
3727  integer, intent(OUT), optional :: err
3728  endsubroutine PDI_expose_COMPLEX4_1D
3729  !=============================================================================
3730 
3731 
3732  !=============================================================================
3733  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3734  !! \param[IN] name the data name
3735  !! \param[IN] data the exposed data
3736  !! \param[IN] access whether the data can be accessed for read or write by
3737  !! PDI
3738  !! \param[OUT] err for error status (optional)
3739  subroutine PDI_expose_COMPLEX4_2D(name, data, access, err)
3740  character(len=*), intent(IN) :: name
3741  COMPLEX(KIND=4), target, asynchronous :: data(:,:)
3742  integer, intent(IN) :: access
3743  integer, intent(OUT), optional :: err
3744  endsubroutine PDI_expose_COMPLEX4_2D
3745  !=============================================================================
3746 
3747 
3748  !=============================================================================
3749  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3750  !! \param[IN] name the data name
3751  !! \param[IN] data the exposed data
3752  !! \param[IN] access whether the data can be accessed for read or write by
3753  !! PDI
3754  !! \param[OUT] err for error status (optional)
3755  subroutine PDI_expose_COMPLEX4_3D(name, data, access, err)
3756  character(len=*), intent(IN) :: name
3757  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:)
3758  integer, intent(IN) :: access
3759  integer, intent(OUT), optional :: err
3760  endsubroutine PDI_expose_COMPLEX4_3D
3761  !=============================================================================
3762 
3763 
3764  !=============================================================================
3765  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3766  !! \param[IN] name the data name
3767  !! \param[IN] data the exposed data
3768  !! \param[IN] access whether the data can be accessed for read or write by
3769  !! PDI
3770  !! \param[OUT] err for error status (optional)
3771  subroutine PDI_expose_COMPLEX4_4D(name, data, access, err)
3772  character(len=*), intent(IN) :: name
3773  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:)
3774  integer, intent(IN) :: access
3775  integer, intent(OUT), optional :: err
3776  endsubroutine PDI_expose_COMPLEX4_4D
3777  !=============================================================================
3778 
3779 
3780  !=============================================================================
3781  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3782  !! \param[IN] name the data name
3783  !! \param[IN] data the exposed data
3784  !! \param[IN] access whether the data can be accessed for read or write by
3785  !! PDI
3786  !! \param[OUT] err for error status (optional)
3787  subroutine PDI_expose_COMPLEX4_5D(name, data, access, err)
3788  character(len=*), intent(IN) :: name
3789  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:)
3790  integer, intent(IN) :: access
3791  integer, intent(OUT), optional :: err
3792  endsubroutine PDI_expose_COMPLEX4_5D
3793  !=============================================================================
3794 
3795 
3796  !=============================================================================
3797  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3798  !! \param[IN] name the data name
3799  !! \param[IN] data the exposed data
3800  !! \param[IN] access whether the data can be accessed for read or write by
3801  !! PDI
3802  !! \param[OUT] err for error status (optional)
3803  subroutine PDI_expose_COMPLEX4_6D(name, data, access, err)
3804  character(len=*), intent(IN) :: name
3805  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
3806  integer, intent(IN) :: access
3807  integer, intent(OUT), optional :: err
3808  endsubroutine PDI_expose_COMPLEX4_6D
3809  !=============================================================================
3810 
3811 
3812  !=============================================================================
3813  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3814  !! \param[IN] name the data name
3815  !! \param[IN] data the exposed data
3816  !! \param[IN] access whether the data can be accessed for read or write by
3817  !! PDI
3818  !! \param[OUT] err for error status (optional)
3819  subroutine PDI_expose_COMPLEX4_7D(name, data, access, err)
3820  character(len=*), intent(IN) :: name
3821  COMPLEX(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
3822  integer, intent(IN) :: access
3823  integer, intent(OUT), optional :: err
3824  endsubroutine PDI_expose_COMPLEX4_7D
3825  !=============================================================================
3826 
3827 
3828  !=============================================================================
3829  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3830  !! \param[IN] name the data name
3831  !! \param[IN] data the exposed data
3832  !! \param[IN] access whether the data can be accessed for read or write by
3833  !! PDI
3834  !! \param[OUT] err for error status (optional)
3835  subroutine PDI_expose_COMPLEX8_0D(name, data, access, err)
3836  character(len=*), intent(IN) :: name
3837  COMPLEX(KIND=8), target, asynchronous :: data
3838  integer, intent(IN) :: access
3839  integer, intent(OUT), optional :: err
3840  endsubroutine PDI_expose_COMPLEX8_0D
3841  !=============================================================================
3842 
3843 
3844  !=============================================================================
3845  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3846  !! \param[IN] name the data name
3847  !! \param[IN] data the exposed data
3848  !! \param[IN] access whether the data can be accessed for read or write by
3849  !! PDI
3850  !! \param[OUT] err for error status (optional)
3851  subroutine PDI_expose_COMPLEX8_1D(name, data, access, err)
3852  character(len=*), intent(IN) :: name
3853  COMPLEX(KIND=8), target, asynchronous :: data(:)
3854  integer, intent(IN) :: access
3855  integer, intent(OUT), optional :: err
3856  endsubroutine PDI_expose_COMPLEX8_1D
3857  !=============================================================================
3858 
3859 
3860  !=============================================================================
3861  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3862  !! \param[IN] name the data name
3863  !! \param[IN] data the exposed data
3864  !! \param[IN] access whether the data can be accessed for read or write by
3865  !! PDI
3866  !! \param[OUT] err for error status (optional)
3867  subroutine PDI_expose_COMPLEX8_2D(name, data, access, err)
3868  character(len=*), intent(IN) :: name
3869  COMPLEX(KIND=8), target, asynchronous :: data(:,:)
3870  integer, intent(IN) :: access
3871  integer, intent(OUT), optional :: err
3872  endsubroutine PDI_expose_COMPLEX8_2D
3873  !=============================================================================
3874 
3875 
3876  !=============================================================================
3877  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3878  !! \param[IN] name the data name
3879  !! \param[IN] data the exposed data
3880  !! \param[IN] access whether the data can be accessed for read or write by
3881  !! PDI
3882  !! \param[OUT] err for error status (optional)
3883  subroutine PDI_expose_COMPLEX8_3D(name, data, access, err)
3884  character(len=*), intent(IN) :: name
3885  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:)
3886  integer, intent(IN) :: access
3887  integer, intent(OUT), optional :: err
3888  endsubroutine PDI_expose_COMPLEX8_3D
3889  !=============================================================================
3890 
3891 
3892  !=============================================================================
3893  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3894  !! \param[IN] name the data name
3895  !! \param[IN] data the exposed data
3896  !! \param[IN] access whether the data can be accessed for read or write by
3897  !! PDI
3898  !! \param[OUT] err for error status (optional)
3899  subroutine PDI_expose_COMPLEX8_4D(name, data, access, err)
3900  character(len=*), intent(IN) :: name
3901  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:)
3902  integer, intent(IN) :: access
3903  integer, intent(OUT), optional :: err
3904  endsubroutine PDI_expose_COMPLEX8_4D
3905  !=============================================================================
3906 
3907 
3908  !=============================================================================
3909  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3910  !! \param[IN] name the data name
3911  !! \param[IN] data the exposed data
3912  !! \param[IN] access whether the data can be accessed for read or write by
3913  !! PDI
3914  !! \param[OUT] err for error status (optional)
3915  subroutine PDI_expose_COMPLEX8_5D(name, data, access, err)
3916  character(len=*), intent(IN) :: name
3917  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:)
3918  integer, intent(IN) :: access
3919  integer, intent(OUT), optional :: err
3920  endsubroutine PDI_expose_COMPLEX8_5D
3921  !=============================================================================
3922 
3923 
3924  !=============================================================================
3925  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3926  !! \param[IN] name the data name
3927  !! \param[IN] data the exposed data
3928  !! \param[IN] access whether the data can be accessed for read or write by
3929  !! PDI
3930  !! \param[OUT] err for error status (optional)
3931  subroutine PDI_expose_COMPLEX8_6D(name, data, access, err)
3932  character(len=*), intent(IN) :: name
3933  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
3934  integer, intent(IN) :: access
3935  integer, intent(OUT), optional :: err
3936  endsubroutine PDI_expose_COMPLEX8_6D
3937  !=============================================================================
3938 
3939 
3940  !=============================================================================
3941  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3942  !! \param[IN] name the data name
3943  !! \param[IN] data the exposed data
3944  !! \param[IN] access whether the data can be accessed for read or write by
3945  !! PDI
3946  !! \param[OUT] err for error status (optional)
3947  subroutine PDI_expose_COMPLEX8_7D(name, data, access, err)
3948  character(len=*), intent(IN) :: name
3949  COMPLEX(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
3950  integer, intent(IN) :: access
3951  integer, intent(OUT), optional :: err
3952  endsubroutine PDI_expose_COMPLEX8_7D
3953  !=============================================================================
3954 
3955 
3956  !=============================================================================
3957  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3958  !! \param[IN] name the data name
3959  !! \param[IN] data the exposed data
3960  !! \param[IN] access whether the data can be accessed for read or write by
3961  !! PDI
3962  !! \param[OUT] err for error status (optional)
3963  subroutine PDI_expose_COMPLEX16_0D(name, data, access, err)
3964  character(len=*), intent(IN) :: name
3965  COMPLEX(KIND=16), target, asynchronous :: data
3966  integer, intent(IN) :: access
3967  integer, intent(OUT), optional :: err
3968  endsubroutine PDI_expose_COMPLEX16_0D
3969  !=============================================================================
3970 
3971 
3972  !=============================================================================
3973  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3974  !! \param[IN] name the data name
3975  !! \param[IN] data the exposed data
3976  !! \param[IN] access whether the data can be accessed for read or write by
3977  !! PDI
3978  !! \param[OUT] err for error status (optional)
3979  subroutine PDI_expose_COMPLEX16_1D(name, data, access, err)
3980  character(len=*), intent(IN) :: name
3981  COMPLEX(KIND=16), target, asynchronous :: data(:)
3982  integer, intent(IN) :: access
3983  integer, intent(OUT), optional :: err
3984  endsubroutine PDI_expose_COMPLEX16_1D
3985  !=============================================================================
3986 
3987 
3988  !=============================================================================
3989  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
3990  !! \param[IN] name the data name
3991  !! \param[IN] data the exposed data
3992  !! \param[IN] access whether the data can be accessed for read or write by
3993  !! PDI
3994  !! \param[OUT] err for error status (optional)
3995  subroutine PDI_expose_COMPLEX16_2D(name, data, access, err)
3996  character(len=*), intent(IN) :: name
3997  COMPLEX(KIND=16), target, asynchronous :: data(:,:)
3998  integer, intent(IN) :: access
3999  integer, intent(OUT), optional :: err
4000  endsubroutine PDI_expose_COMPLEX16_2D
4001  !=============================================================================
4002 
4003 
4004  !=============================================================================
4005  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4006  !! \param[IN] name the data name
4007  !! \param[IN] data the exposed data
4008  !! \param[IN] access whether the data can be accessed for read or write by
4009  !! PDI
4010  !! \param[OUT] err for error status (optional)
4011  subroutine PDI_expose_COMPLEX16_3D(name, data, access, err)
4012  character(len=*), intent(IN) :: name
4013  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:)
4014  integer, intent(IN) :: access
4015  integer, intent(OUT), optional :: err
4016  endsubroutine PDI_expose_COMPLEX16_3D
4017  !=============================================================================
4018 
4019 
4020  !=============================================================================
4021  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4022  !! \param[IN] name the data name
4023  !! \param[IN] data the exposed data
4024  !! \param[IN] access whether the data can be accessed for read or write by
4025  !! PDI
4026  !! \param[OUT] err for error status (optional)
4027  subroutine PDI_expose_COMPLEX16_4D(name, data, access, err)
4028  character(len=*), intent(IN) :: name
4029  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:)
4030  integer, intent(IN) :: access
4031  integer, intent(OUT), optional :: err
4032  endsubroutine PDI_expose_COMPLEX16_4D
4033  !=============================================================================
4034 
4035 
4036  !=============================================================================
4037  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4038  !! \param[IN] name the data name
4039  !! \param[IN] data the exposed data
4040  !! \param[IN] access whether the data can be accessed for read or write by
4041  !! PDI
4042  !! \param[OUT] err for error status (optional)
4043  subroutine PDI_expose_COMPLEX16_5D(name, data, access, err)
4044  character(len=*), intent(IN) :: name
4045  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:)
4046  integer, intent(IN) :: access
4047  integer, intent(OUT), optional :: err
4048  endsubroutine PDI_expose_COMPLEX16_5D
4049  !=============================================================================
4050 
4051 
4052  !=============================================================================
4053  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4054  !! \param[IN] name the data name
4055  !! \param[IN] data the exposed data
4056  !! \param[IN] access whether the data can be accessed for read or write by
4057  !! PDI
4058  !! \param[OUT] err for error status (optional)
4059  subroutine PDI_expose_COMPLEX16_6D(name, data, access, err)
4060  character(len=*), intent(IN) :: name
4061  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
4062  integer, intent(IN) :: access
4063  integer, intent(OUT), optional :: err
4064  endsubroutine PDI_expose_COMPLEX16_6D
4065  !=============================================================================
4066 
4067 
4068  !=============================================================================
4069  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4070  !! \param[IN] name the data name
4071  !! \param[IN] data the exposed data
4072  !! \param[IN] access whether the data can be accessed for read or write by
4073  !! PDI
4074  !! \param[OUT] err for error status (optional)
4075  subroutine PDI_expose_COMPLEX16_7D(name, data, access, err)
4076  character(len=*), intent(IN) :: name
4077  COMPLEX(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
4078  integer, intent(IN) :: access
4079  integer, intent(OUT), optional :: err
4080  endsubroutine PDI_expose_COMPLEX16_7D
4081  !=============================================================================
4082 
4083 
4084  !=============================================================================
4085  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4086  !! \param[IN] name the data name
4087  !! \param[IN] data the exposed data
4088  !! \param[IN] access whether the data can be accessed for read or write by
4089  !! PDI
4090  !! \param[OUT] err for error status (optional)
4091  subroutine PDI_expose_INTEGER1_0D(name, data, access, err)
4092  character(len=*), intent(IN) :: name
4093  INTEGER(KIND=1), target, asynchronous :: data
4094  integer, intent(IN) :: access
4095  integer, intent(OUT), optional :: err
4096  endsubroutine PDI_expose_INTEGER1_0D
4097  !=============================================================================
4098 
4099 
4100  !=============================================================================
4101  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4102  !! \param[IN] name the data name
4103  !! \param[IN] data the exposed data
4104  !! \param[IN] access whether the data can be accessed for read or write by
4105  !! PDI
4106  !! \param[OUT] err for error status (optional)
4107  subroutine PDI_expose_INTEGER1_1D(name, data, access, err)
4108  character(len=*), intent(IN) :: name
4109  INTEGER(KIND=1), target, asynchronous :: data(:)
4110  integer, intent(IN) :: access
4111  integer, intent(OUT), optional :: err
4112  endsubroutine PDI_expose_INTEGER1_1D
4113  !=============================================================================
4114 
4115 
4116  !=============================================================================
4117  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4118  !! \param[IN] name the data name
4119  !! \param[IN] data the exposed data
4120  !! \param[IN] access whether the data can be accessed for read or write by
4121  !! PDI
4122  !! \param[OUT] err for error status (optional)
4123  subroutine PDI_expose_INTEGER1_2D(name, data, access, err)
4124  character(len=*), intent(IN) :: name
4125  INTEGER(KIND=1), target, asynchronous :: data(:,:)
4126  integer, intent(IN) :: access
4127  integer, intent(OUT), optional :: err
4128  endsubroutine PDI_expose_INTEGER1_2D
4129  !=============================================================================
4130 
4131 
4132  !=============================================================================
4133  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4134  !! \param[IN] name the data name
4135  !! \param[IN] data the exposed data
4136  !! \param[IN] access whether the data can be accessed for read or write by
4137  !! PDI
4138  !! \param[OUT] err for error status (optional)
4139  subroutine PDI_expose_INTEGER1_3D(name, data, access, err)
4140  character(len=*), intent(IN) :: name
4141  INTEGER(KIND=1), target, asynchronous :: data(:,:,:)
4142  integer, intent(IN) :: access
4143  integer, intent(OUT), optional :: err
4144  endsubroutine PDI_expose_INTEGER1_3D
4145  !=============================================================================
4146 
4147 
4148  !=============================================================================
4149  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4150  !! \param[IN] name the data name
4151  !! \param[IN] data the exposed data
4152  !! \param[IN] access whether the data can be accessed for read or write by
4153  !! PDI
4154  !! \param[OUT] err for error status (optional)
4155  subroutine PDI_expose_INTEGER1_4D(name, data, access, err)
4156  character(len=*), intent(IN) :: name
4157  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:)
4158  integer, intent(IN) :: access
4159  integer, intent(OUT), optional :: err
4160  endsubroutine PDI_expose_INTEGER1_4D
4161  !=============================================================================
4162 
4163 
4164  !=============================================================================
4165  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4166  !! \param[IN] name the data name
4167  !! \param[IN] data the exposed data
4168  !! \param[IN] access whether the data can be accessed for read or write by
4169  !! PDI
4170  !! \param[OUT] err for error status (optional)
4171  subroutine PDI_expose_INTEGER1_5D(name, data, access, err)
4172  character(len=*), intent(IN) :: name
4173  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:)
4174  integer, intent(IN) :: access
4175  integer, intent(OUT), optional :: err
4176  endsubroutine PDI_expose_INTEGER1_5D
4177  !=============================================================================
4178 
4179 
4180  !=============================================================================
4181  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4182  !! \param[IN] name the data name
4183  !! \param[IN] data the exposed data
4184  !! \param[IN] access whether the data can be accessed for read or write by
4185  !! PDI
4186  !! \param[OUT] err for error status (optional)
4187  subroutine PDI_expose_INTEGER1_6D(name, data, access, err)
4188  character(len=*), intent(IN) :: name
4189  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
4190  integer, intent(IN) :: access
4191  integer, intent(OUT), optional :: err
4192  endsubroutine PDI_expose_INTEGER1_6D
4193  !=============================================================================
4194 
4195 
4196  !=============================================================================
4197  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4198  !! \param[IN] name the data name
4199  !! \param[IN] data the exposed data
4200  !! \param[IN] access whether the data can be accessed for read or write by
4201  !! PDI
4202  !! \param[OUT] err for error status (optional)
4203  subroutine PDI_expose_INTEGER1_7D(name, data, access, err)
4204  character(len=*), intent(IN) :: name
4205  INTEGER(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
4206  integer, intent(IN) :: access
4207  integer, intent(OUT), optional :: err
4208  endsubroutine PDI_expose_INTEGER1_7D
4209  !=============================================================================
4210 
4211 
4212  !=============================================================================
4213  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4214  !! \param[IN] name the data name
4215  !! \param[IN] data the exposed data
4216  !! \param[IN] access whether the data can be accessed for read or write by
4217  !! PDI
4218  !! \param[OUT] err for error status (optional)
4219  subroutine PDI_expose_INTEGER2_0D(name, data, access, err)
4220  character(len=*), intent(IN) :: name
4221  INTEGER(KIND=2), target, asynchronous :: data
4222  integer, intent(IN) :: access
4223  integer, intent(OUT), optional :: err
4224  endsubroutine PDI_expose_INTEGER2_0D
4225  !=============================================================================
4226 
4227 
4228  !=============================================================================
4229  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4230  !! \param[IN] name the data name
4231  !! \param[IN] data the exposed data
4232  !! \param[IN] access whether the data can be accessed for read or write by
4233  !! PDI
4234  !! \param[OUT] err for error status (optional)
4235  subroutine PDI_expose_INTEGER2_1D(name, data, access, err)
4236  character(len=*), intent(IN) :: name
4237  INTEGER(KIND=2), target, asynchronous :: data(:)
4238  integer, intent(IN) :: access
4239  integer, intent(OUT), optional :: err
4240  endsubroutine PDI_expose_INTEGER2_1D
4241  !=============================================================================
4242 
4243 
4244  !=============================================================================
4245  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4246  !! \param[IN] name the data name
4247  !! \param[IN] data the exposed data
4248  !! \param[IN] access whether the data can be accessed for read or write by
4249  !! PDI
4250  !! \param[OUT] err for error status (optional)
4251  subroutine PDI_expose_INTEGER2_2D(name, data, access, err)
4252  character(len=*), intent(IN) :: name
4253  INTEGER(KIND=2), target, asynchronous :: data(:,:)
4254  integer, intent(IN) :: access
4255  integer, intent(OUT), optional :: err
4256  endsubroutine PDI_expose_INTEGER2_2D
4257  !=============================================================================
4258 
4259 
4260  !=============================================================================
4261  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4262  !! \param[IN] name the data name
4263  !! \param[IN] data the exposed data
4264  !! \param[IN] access whether the data can be accessed for read or write by
4265  !! PDI
4266  !! \param[OUT] err for error status (optional)
4267  subroutine PDI_expose_INTEGER2_3D(name, data, access, err)
4268  character(len=*), intent(IN) :: name
4269  INTEGER(KIND=2), target, asynchronous :: data(:,:,:)
4270  integer, intent(IN) :: access
4271  integer, intent(OUT), optional :: err
4272  endsubroutine PDI_expose_INTEGER2_3D
4273  !=============================================================================
4274 
4275 
4276  !=============================================================================
4277  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4278  !! \param[IN] name the data name
4279  !! \param[IN] data the exposed data
4280  !! \param[IN] access whether the data can be accessed for read or write by
4281  !! PDI
4282  !! \param[OUT] err for error status (optional)
4283  subroutine PDI_expose_INTEGER2_4D(name, data, access, err)
4284  character(len=*), intent(IN) :: name
4285  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:)
4286  integer, intent(IN) :: access
4287  integer, intent(OUT), optional :: err
4288  endsubroutine PDI_expose_INTEGER2_4D
4289  !=============================================================================
4290 
4291 
4292  !=============================================================================
4293  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4294  !! \param[IN] name the data name
4295  !! \param[IN] data the exposed data
4296  !! \param[IN] access whether the data can be accessed for read or write by
4297  !! PDI
4298  !! \param[OUT] err for error status (optional)
4299  subroutine PDI_expose_INTEGER2_5D(name, data, access, err)
4300  character(len=*), intent(IN) :: name
4301  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:)
4302  integer, intent(IN) :: access
4303  integer, intent(OUT), optional :: err
4304  endsubroutine PDI_expose_INTEGER2_5D
4305  !=============================================================================
4306 
4307 
4308  !=============================================================================
4309  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4310  !! \param[IN] name the data name
4311  !! \param[IN] data the exposed data
4312  !! \param[IN] access whether the data can be accessed for read or write by
4313  !! PDI
4314  !! \param[OUT] err for error status (optional)
4315  subroutine PDI_expose_INTEGER2_6D(name, data, access, err)
4316  character(len=*), intent(IN) :: name
4317  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:,:)
4318  integer, intent(IN) :: access
4319  integer, intent(OUT), optional :: err
4320  endsubroutine PDI_expose_INTEGER2_6D
4321  !=============================================================================
4322 
4323 
4324  !=============================================================================
4325  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4326  !! \param[IN] name the data name
4327  !! \param[IN] data the exposed data
4328  !! \param[IN] access whether the data can be accessed for read or write by
4329  !! PDI
4330  !! \param[OUT] err for error status (optional)
4331  subroutine PDI_expose_INTEGER2_7D(name, data, access, err)
4332  character(len=*), intent(IN) :: name
4333  INTEGER(KIND=2), target, asynchronous :: data(:,:,:,:,:,:,:)
4334  integer, intent(IN) :: access
4335  integer, intent(OUT), optional :: err
4336  endsubroutine PDI_expose_INTEGER2_7D
4337  !=============================================================================
4338 
4339 
4340  !=============================================================================
4341  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4342  !! \param[IN] name the data name
4343  !! \param[IN] data the exposed data
4344  !! \param[IN] access whether the data can be accessed for read or write by
4345  !! PDI
4346  !! \param[OUT] err for error status (optional)
4347  subroutine PDI_expose_INTEGER4_0D(name, data, access, err)
4348  character(len=*), intent(IN) :: name
4349  INTEGER(KIND=4), target, asynchronous :: data
4350  integer, intent(IN) :: access
4351  integer, intent(OUT), optional :: err
4352  endsubroutine PDI_expose_INTEGER4_0D
4353  !=============================================================================
4354 
4355 
4356  !=============================================================================
4357  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4358  !! \param[IN] name the data name
4359  !! \param[IN] data the exposed data
4360  !! \param[IN] access whether the data can be accessed for read or write by
4361  !! PDI
4362  !! \param[OUT] err for error status (optional)
4363  subroutine PDI_expose_INTEGER4_1D(name, data, access, err)
4364  character(len=*), intent(IN) :: name
4365  INTEGER(KIND=4), target, asynchronous :: data(:)
4366  integer, intent(IN) :: access
4367  integer, intent(OUT), optional :: err
4368  endsubroutine PDI_expose_INTEGER4_1D
4369  !=============================================================================
4370 
4371 
4372  !=============================================================================
4373  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4374  !! \param[IN] name the data name
4375  !! \param[IN] data the exposed data
4376  !! \param[IN] access whether the data can be accessed for read or write by
4377  !! PDI
4378  !! \param[OUT] err for error status (optional)
4379  subroutine PDI_expose_INTEGER4_2D(name, data, access, err)
4380  character(len=*), intent(IN) :: name
4381  INTEGER(KIND=4), target, asynchronous :: data(:,:)
4382  integer, intent(IN) :: access
4383  integer, intent(OUT), optional :: err
4384  endsubroutine PDI_expose_INTEGER4_2D
4385  !=============================================================================
4386 
4387 
4388  !=============================================================================
4389  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4390  !! \param[IN] name the data name
4391  !! \param[IN] data the exposed data
4392  !! \param[IN] access whether the data can be accessed for read or write by
4393  !! PDI
4394  !! \param[OUT] err for error status (optional)
4395  subroutine PDI_expose_INTEGER4_3D(name, data, access, err)
4396  character(len=*), intent(IN) :: name
4397  INTEGER(KIND=4), target, asynchronous :: data(:,:,:)
4398  integer, intent(IN) :: access
4399  integer, intent(OUT), optional :: err
4400  endsubroutine PDI_expose_INTEGER4_3D
4401  !=============================================================================
4402 
4403 
4404  !=============================================================================
4405  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4406  !! \param[IN] name the data name
4407  !! \param[IN] data the exposed data
4408  !! \param[IN] access whether the data can be accessed for read or write by
4409  !! PDI
4410  !! \param[OUT] err for error status (optional)
4411  subroutine PDI_expose_INTEGER4_4D(name, data, access, err)
4412  character(len=*), intent(IN) :: name
4413  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:)
4414  integer, intent(IN) :: access
4415  integer, intent(OUT), optional :: err
4416  endsubroutine PDI_expose_INTEGER4_4D
4417  !=============================================================================
4418 
4419 
4420  !=============================================================================
4421  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4422  !! \param[IN] name the data name
4423  !! \param[IN] data the exposed data
4424  !! \param[IN] access whether the data can be accessed for read or write by
4425  !! PDI
4426  !! \param[OUT] err for error status (optional)
4427  subroutine PDI_expose_INTEGER4_5D(name, data, access, err)
4428  character(len=*), intent(IN) :: name
4429  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:)
4430  integer, intent(IN) :: access
4431  integer, intent(OUT), optional :: err
4432  endsubroutine PDI_expose_INTEGER4_5D
4433  !=============================================================================
4434 
4435 
4436  !=============================================================================
4437  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4438  !! \param[IN] name the data name
4439  !! \param[IN] data the exposed data
4440  !! \param[IN] access whether the data can be accessed for read or write by
4441  !! PDI
4442  !! \param[OUT] err for error status (optional)
4443  subroutine PDI_expose_INTEGER4_6D(name, data, access, err)
4444  character(len=*), intent(IN) :: name
4445  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
4446  integer, intent(IN) :: access
4447  integer, intent(OUT), optional :: err
4448  endsubroutine PDI_expose_INTEGER4_6D
4449  !=============================================================================
4450 
4451 
4452  !=============================================================================
4453  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4454  !! \param[IN] name the data name
4455  !! \param[IN] data the exposed data
4456  !! \param[IN] access whether the data can be accessed for read or write by
4457  !! PDI
4458  !! \param[OUT] err for error status (optional)
4459  subroutine PDI_expose_INTEGER4_7D(name, data, access, err)
4460  character(len=*), intent(IN) :: name
4461  INTEGER(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
4462  integer, intent(IN) :: access
4463  integer, intent(OUT), optional :: err
4464  endsubroutine PDI_expose_INTEGER4_7D
4465  !=============================================================================
4466 
4467 
4468  !=============================================================================
4469  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4470  !! \param[IN] name the data name
4471  !! \param[IN] data the exposed data
4472  !! \param[IN] access whether the data can be accessed for read or write by
4473  !! PDI
4474  !! \param[OUT] err for error status (optional)
4475  subroutine PDI_expose_INTEGER8_0D(name, data, access, err)
4476  character(len=*), intent(IN) :: name
4477  INTEGER(KIND=8), target, asynchronous :: data
4478  integer, intent(IN) :: access
4479  integer, intent(OUT), optional :: err
4480  endsubroutine PDI_expose_INTEGER8_0D
4481  !=============================================================================
4482 
4483 
4484  !=============================================================================
4485  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4486  !! \param[IN] name the data name
4487  !! \param[IN] data the exposed data
4488  !! \param[IN] access whether the data can be accessed for read or write by
4489  !! PDI
4490  !! \param[OUT] err for error status (optional)
4491  subroutine PDI_expose_INTEGER8_1D(name, data, access, err)
4492  character(len=*), intent(IN) :: name
4493  INTEGER(KIND=8), target, asynchronous :: data(:)
4494  integer, intent(IN) :: access
4495  integer, intent(OUT), optional :: err
4496  endsubroutine PDI_expose_INTEGER8_1D
4497  !=============================================================================
4498 
4499 
4500  !=============================================================================
4501  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4502  !! \param[IN] name the data name
4503  !! \param[IN] data the exposed data
4504  !! \param[IN] access whether the data can be accessed for read or write by
4505  !! PDI
4506  !! \param[OUT] err for error status (optional)
4507  subroutine PDI_expose_INTEGER8_2D(name, data, access, err)
4508  character(len=*), intent(IN) :: name
4509  INTEGER(KIND=8), target, asynchronous :: data(:,:)
4510  integer, intent(IN) :: access
4511  integer, intent(OUT), optional :: err
4512  endsubroutine PDI_expose_INTEGER8_2D
4513  !=============================================================================
4514 
4515 
4516  !=============================================================================
4517  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4518  !! \param[IN] name the data name
4519  !! \param[IN] data the exposed data
4520  !! \param[IN] access whether the data can be accessed for read or write by
4521  !! PDI
4522  !! \param[OUT] err for error status (optional)
4523  subroutine PDI_expose_INTEGER8_3D(name, data, access, err)
4524  character(len=*), intent(IN) :: name
4525  INTEGER(KIND=8), target, asynchronous :: data(:,:,:)
4526  integer, intent(IN) :: access
4527  integer, intent(OUT), optional :: err
4528  endsubroutine PDI_expose_INTEGER8_3D
4529  !=============================================================================
4530 
4531 
4532  !=============================================================================
4533  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4534  !! \param[IN] name the data name
4535  !! \param[IN] data the exposed data
4536  !! \param[IN] access whether the data can be accessed for read or write by
4537  !! PDI
4538  !! \param[OUT] err for error status (optional)
4539  subroutine PDI_expose_INTEGER8_4D(name, data, access, err)
4540  character(len=*), intent(IN) :: name
4541  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:)
4542  integer, intent(IN) :: access
4543  integer, intent(OUT), optional :: err
4544  endsubroutine PDI_expose_INTEGER8_4D
4545  !=============================================================================
4546 
4547 
4548  !=============================================================================
4549  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4550  !! \param[IN] name the data name
4551  !! \param[IN] data the exposed data
4552  !! \param[IN] access whether the data can be accessed for read or write by
4553  !! PDI
4554  !! \param[OUT] err for error status (optional)
4555  subroutine PDI_expose_INTEGER8_5D(name, data, access, err)
4556  character(len=*), intent(IN) :: name
4557  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:)
4558  integer, intent(IN) :: access
4559  integer, intent(OUT), optional :: err
4560  endsubroutine PDI_expose_INTEGER8_5D
4561  !=============================================================================
4562 
4563 
4564  !=============================================================================
4565  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4566  !! \param[IN] name the data name
4567  !! \param[IN] data the exposed data
4568  !! \param[IN] access whether the data can be accessed for read or write by
4569  !! PDI
4570  !! \param[OUT] err for error status (optional)
4571  subroutine PDI_expose_INTEGER8_6D(name, data, access, err)
4572  character(len=*), intent(IN) :: name
4573  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
4574  integer, intent(IN) :: access
4575  integer, intent(OUT), optional :: err
4576  endsubroutine PDI_expose_INTEGER8_6D
4577  !=============================================================================
4578 
4579 
4580  !=============================================================================
4581  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4582  !! \param[IN] name the data name
4583  !! \param[IN] data the exposed data
4584  !! \param[IN] access whether the data can be accessed for read or write by
4585  !! PDI
4586  !! \param[OUT] err for error status (optional)
4587  subroutine PDI_expose_INTEGER8_7D(name, data, access, err)
4588  character(len=*), intent(IN) :: name
4589  INTEGER(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
4590  integer, intent(IN) :: access
4591  integer, intent(OUT), optional :: err
4592  endsubroutine PDI_expose_INTEGER8_7D
4593  !=============================================================================
4594 
4595 
4596  !=============================================================================
4597  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4598  !! \param[IN] name the data name
4599  !! \param[IN] data the exposed data
4600  !! \param[IN] access whether the data can be accessed for read or write by
4601  !! PDI
4602  !! \param[OUT] err for error status (optional)
4603  subroutine PDI_expose_INTEGER16_0D(name, data, access, err)
4604  character(len=*), intent(IN) :: name
4605  INTEGER(KIND=16), target, asynchronous :: data
4606  integer, intent(IN) :: access
4607  integer, intent(OUT), optional :: err
4608  endsubroutine PDI_expose_INTEGER16_0D
4609  !=============================================================================
4610 
4611 
4612  !=============================================================================
4613  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4614  !! \param[IN] name the data name
4615  !! \param[IN] data the exposed data
4616  !! \param[IN] access whether the data can be accessed for read or write by
4617  !! PDI
4618  !! \param[OUT] err for error status (optional)
4619  subroutine PDI_expose_INTEGER16_1D(name, data, access, err)
4620  character(len=*), intent(IN) :: name
4621  INTEGER(KIND=16), target, asynchronous :: data(:)
4622  integer, intent(IN) :: access
4623  integer, intent(OUT), optional :: err
4624  endsubroutine PDI_expose_INTEGER16_1D
4625  !=============================================================================
4626 
4627 
4628  !=============================================================================
4629  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4630  !! \param[IN] name the data name
4631  !! \param[IN] data the exposed data
4632  !! \param[IN] access whether the data can be accessed for read or write by
4633  !! PDI
4634  !! \param[OUT] err for error status (optional)
4635  subroutine PDI_expose_INTEGER16_2D(name, data, access, err)
4636  character(len=*), intent(IN) :: name
4637  INTEGER(KIND=16), target, asynchronous :: data(:,:)
4638  integer, intent(IN) :: access
4639  integer, intent(OUT), optional :: err
4640  endsubroutine PDI_expose_INTEGER16_2D
4641  !=============================================================================
4642 
4643 
4644  !=============================================================================
4645  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4646  !! \param[IN] name the data name
4647  !! \param[IN] data the exposed data
4648  !! \param[IN] access whether the data can be accessed for read or write by
4649  !! PDI
4650  !! \param[OUT] err for error status (optional)
4651  subroutine PDI_expose_INTEGER16_3D(name, data, access, err)
4652  character(len=*), intent(IN) :: name
4653  INTEGER(KIND=16), target, asynchronous :: data(:,:,:)
4654  integer, intent(IN) :: access
4655  integer, intent(OUT), optional :: err
4656  endsubroutine PDI_expose_INTEGER16_3D
4657  !=============================================================================
4658 
4659 
4660  !=============================================================================
4661  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4662  !! \param[IN] name the data name
4663  !! \param[IN] data the exposed data
4664  !! \param[IN] access whether the data can be accessed for read or write by
4665  !! PDI
4666  !! \param[OUT] err for error status (optional)
4667  subroutine PDI_expose_INTEGER16_4D(name, data, access, err)
4668  character(len=*), intent(IN) :: name
4669  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:)
4670  integer, intent(IN) :: access
4671  integer, intent(OUT), optional :: err
4672  endsubroutine PDI_expose_INTEGER16_4D
4673  !=============================================================================
4674 
4675 
4676  !=============================================================================
4677  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4678  !! \param[IN] name the data name
4679  !! \param[IN] data the exposed data
4680  !! \param[IN] access whether the data can be accessed for read or write by
4681  !! PDI
4682  !! \param[OUT] err for error status (optional)
4683  subroutine PDI_expose_INTEGER16_5D(name, data, access, err)
4684  character(len=*), intent(IN) :: name
4685  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:)
4686  integer, intent(IN) :: access
4687  integer, intent(OUT), optional :: err
4688  endsubroutine PDI_expose_INTEGER16_5D
4689  !=============================================================================
4690 
4691 
4692  !=============================================================================
4693  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4694  !! \param[IN] name the data name
4695  !! \param[IN] data the exposed data
4696  !! \param[IN] access whether the data can be accessed for read or write by
4697  !! PDI
4698  !! \param[OUT] err for error status (optional)
4699  subroutine PDI_expose_INTEGER16_6D(name, data, access, err)
4700  character(len=*), intent(IN) :: name
4701  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
4702  integer, intent(IN) :: access
4703  integer, intent(OUT), optional :: err
4704  endsubroutine PDI_expose_INTEGER16_6D
4705  !=============================================================================
4706 
4707 
4708  !=============================================================================
4709  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4710  !! \param[IN] name the data name
4711  !! \param[IN] data the exposed data
4712  !! \param[IN] access whether the data can be accessed for read or write by
4713  !! PDI
4714  !! \param[OUT] err for error status (optional)
4715  subroutine PDI_expose_INTEGER16_7D(name, data, access, err)
4716  character(len=*), intent(IN) :: name
4717  INTEGER(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
4718  integer, intent(IN) :: access
4719  integer, intent(OUT), optional :: err
4720  endsubroutine PDI_expose_INTEGER16_7D
4721  !=============================================================================
4722 
4723 
4724  !=============================================================================
4725  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4726  !! \param[IN] name the data name
4727  !! \param[IN] data the exposed data
4728  !! \param[IN] access whether the data can be accessed for read or write by
4729  !! PDI
4730  !! \param[OUT] err for error status (optional)
4731  subroutine PDI_expose_LOGICAL1_0D(name, data, access, err)
4732  character(len=*), intent(IN) :: name
4733  LOGICAL(KIND=1), target, asynchronous :: data
4734  integer, intent(IN) :: access
4735  integer, intent(OUT), optional :: err
4736  endsubroutine PDI_expose_LOGICAL1_0D
4737  !=============================================================================
4738 
4739 
4740  !=============================================================================
4741  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4742  !! \param[IN] name the data name
4743  !! \param[IN] data the exposed data
4744  !! \param[IN] access whether the data can be accessed for read or write by
4745  !! PDI
4746  !! \param[OUT] err for error status (optional)
4747  subroutine PDI_expose_LOGICAL1_1D(name, data, access, err)
4748  character(len=*), intent(IN) :: name
4749  LOGICAL(KIND=1), target, asynchronous :: data(:)
4750  integer, intent(IN) :: access
4751  integer, intent(OUT), optional :: err
4752  endsubroutine PDI_expose_LOGICAL1_1D
4753  !=============================================================================
4754 
4755 
4756  !=============================================================================
4757  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4758  !! \param[IN] name the data name
4759  !! \param[IN] data the exposed data
4760  !! \param[IN] access whether the data can be accessed for read or write by
4761  !! PDI
4762  !! \param[OUT] err for error status (optional)
4763  subroutine PDI_expose_LOGICAL1_2D(name, data, access, err)
4764  character(len=*), intent(IN) :: name
4765  LOGICAL(KIND=1), target, asynchronous :: data(:,:)
4766  integer, intent(IN) :: access
4767  integer, intent(OUT), optional :: err
4768  endsubroutine PDI_expose_LOGICAL1_2D
4769  !=============================================================================
4770 
4771 
4772  !=============================================================================
4773  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4774  !! \param[IN] name the data name
4775  !! \param[IN] data the exposed data
4776  !! \param[IN] access whether the data can be accessed for read or write by
4777  !! PDI
4778  !! \param[OUT] err for error status (optional)
4779  subroutine PDI_expose_LOGICAL1_3D(name, data, access, err)
4780  character(len=*), intent(IN) :: name
4781  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:)
4782  integer, intent(IN) :: access
4783  integer, intent(OUT), optional :: err
4784  endsubroutine PDI_expose_LOGICAL1_3D
4785  !=============================================================================
4786 
4787 
4788  !=============================================================================
4789  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4790  !! \param[IN] name the data name
4791  !! \param[IN] data the exposed data
4792  !! \param[IN] access whether the data can be accessed for read or write by
4793  !! PDI
4794  !! \param[OUT] err for error status (optional)
4795  subroutine PDI_expose_LOGICAL1_4D(name, data, access, err)
4796  character(len=*), intent(IN) :: name
4797  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:)
4798  integer, intent(IN) :: access
4799  integer, intent(OUT), optional :: err
4800  endsubroutine PDI_expose_LOGICAL1_4D
4801  !=============================================================================
4802 
4803 
4804  !=============================================================================
4805  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4806  !! \param[IN] name the data name
4807  !! \param[IN] data the exposed data
4808  !! \param[IN] access whether the data can be accessed for read or write by
4809  !! PDI
4810  !! \param[OUT] err for error status (optional)
4811  subroutine PDI_expose_LOGICAL1_5D(name, data, access, err)
4812  character(len=*), intent(IN) :: name
4813  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:)
4814  integer, intent(IN) :: access
4815  integer, intent(OUT), optional :: err
4816  endsubroutine PDI_expose_LOGICAL1_5D
4817  !=============================================================================
4818 
4819 
4820  !=============================================================================
4821  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4822  !! \param[IN] name the data name
4823  !! \param[IN] data the exposed data
4824  !! \param[IN] access whether the data can be accessed for read or write by
4825  !! PDI
4826  !! \param[OUT] err for error status (optional)
4827  subroutine PDI_expose_LOGICAL1_6D(name, data, access, err)
4828  character(len=*), intent(IN) :: name
4829  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:,:)
4830  integer, intent(IN) :: access
4831  integer, intent(OUT), optional :: err
4832  endsubroutine PDI_expose_LOGICAL1_6D
4833  !=============================================================================
4834 
4835 
4836  !=============================================================================
4837  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4838  !! \param[IN] name the data name
4839  !! \param[IN] data the exposed data
4840  !! \param[IN] access whether the data can be accessed for read or write by
4841  !! PDI
4842  !! \param[OUT] err for error status (optional)
4843  subroutine PDI_expose_LOGICAL1_7D(name, data, access, err)
4844  character(len=*), intent(IN) :: name
4845  LOGICAL(KIND=1), target, asynchronous :: data(:,:,:,:,:,:,:)
4846  integer, intent(IN) :: access
4847  integer, intent(OUT), optional :: err
4848  endsubroutine PDI_expose_LOGICAL1_7D
4849  !=============================================================================
4850 
4851 
4852  !=============================================================================
4853  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4854  !! \param[IN] name the data name
4855  !! \param[IN] data the exposed data
4856  !! \param[IN] access whether the data can be accessed for read or write by
4857  !! PDI
4858  !! \param[OUT] err for error status (optional)
4859  subroutine PDI_expose_LOGICAL2_0D(name, data, access, err)
4860  character(len=*), intent(IN) :: name
4861  LOGICAL(KIND=2), target, asynchronous :: data
4862  integer, intent(IN) :: access
4863  integer, intent(OUT), optional :: err
4864  endsubroutine PDI_expose_LOGICAL2_0D
4865  !=============================================================================
4866 
4867 
4868  !=============================================================================
4869  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4870  !! \param[IN] name the data name
4871  !! \param[IN] data the exposed data
4872  !! \param[IN] access whether the data can be accessed for read or write by
4873  !! PDI
4874  !! \param[OUT] err for error status (optional)
4875  subroutine PDI_expose_LOGICAL2_1D(name, data, access, err)
4876  character(len=*), intent(IN) :: name
4877  LOGICAL(KIND=2), target, asynchronous :: data(:)
4878  integer, intent(IN) :: access
4879  integer, intent(OUT), optional :: err
4880  endsubroutine PDI_expose_LOGICAL2_1D
4881  !=============================================================================
4882 
4883 
4884  !=============================================================================
4885  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4886  !! \param[IN] name the data name
4887  !! \param[IN] data the exposed data
4888  !! \param[IN] access whether the data can be accessed for read or write by
4889  !! PDI
4890  !! \param[OUT] err for error status (optional)
4891  subroutine PDI_expose_LOGICAL2_2D(name, data, access, err)
4892  character(len=*), intent(IN) :: name
4893  LOGICAL(KIND=2), target, asynchronous :: data(:,:)
4894  integer, intent(IN) :: access
4895  integer, intent(OUT), optional :: err
4896  endsubroutine PDI_expose_LOGICAL2_2D
4897  !=============================================================================
4898 
4899 
4900  !=============================================================================
4901  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4902  !! \param[IN] name the data name
4903  !! \param[IN] data the exposed data
4904  !! \param[IN] access whether the data can be accessed for read or write by
4905  !! PDI
4906  !! \param[OUT] err for error status (optional)
4907  subroutine PDI_expose_LOGICAL2_3D(name, data, access, err)
4908  character(len=*), intent(IN) :: name
4909  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:)
4910  integer, intent(IN) :: access
4911  integer, intent(OUT), optional :: err
4912  endsubroutine PDI_expose_LOGICAL2_3D
4913  !=============================================================================
4914 
4915 
4916  !=============================================================================
4917  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4918  !! \param[IN] name the data name
4919  !! \param[IN] data the exposed data
4920  !! \param[IN] access whether the data can be accessed for read or write by
4921  !! PDI
4922  !! \param[OUT] err for error status (optional)
4923  subroutine PDI_expose_LOGICAL2_4D(name, data, access, err)
4924  character(len=*), intent(IN) :: name
4925  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:)
4926  integer, intent(IN) :: access
4927  integer, intent(OUT), optional :: err
4928  endsubroutine PDI_expose_LOGICAL2_4D
4929  !=============================================================================
4930 
4931 
4932  !=============================================================================
4933  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4934  !! \param[IN] name the data name
4935  !! \param[IN] data the exposed data
4936  !! \param[IN] access whether the data can be accessed for read or write by
4937  !! PDI
4938  !! \param[OUT] err for error status (optional)
4939  subroutine PDI_expose_LOGICAL2_5D(name, data, access, err)
4940  character(len=*), intent(IN) :: name
4941  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:)
4942  integer, intent(IN) :: access
4943  integer, intent(OUT), optional :: err
4944  endsubroutine PDI_expose_LOGICAL2_5D
4945  !=============================================================================
4946 
4947 
4948  !=============================================================================
4949  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4950  !! \param[IN] name the data name
4951  !! \param[IN] data the exposed data
4952  !! \param[IN] access whether the data can be accessed for read or write by
4953  !! PDI
4954  !! \param[OUT] err for error status (optional)
4955  subroutine PDI_expose_LOGICAL2_6D(name, data, access, err)
4956  character(len=*), intent(IN) :: name
4957  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:,:)
4958  integer, intent(IN) :: access
4959  integer, intent(OUT), optional :: err
4960  endsubroutine PDI_expose_LOGICAL2_6D
4961  !=============================================================================
4962 
4963 
4964  !=============================================================================
4965  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4966  !! \param[IN] name the data name
4967  !! \param[IN] data the exposed data
4968  !! \param[IN] access whether the data can be accessed for read or write by
4969  !! PDI
4970  !! \param[OUT] err for error status (optional)
4971  subroutine PDI_expose_LOGICAL2_7D(name, data, access, err)
4972  character(len=*), intent(IN) :: name
4973  LOGICAL(KIND=2), target, asynchronous :: data(:,:,:,:,:,:,:)
4974  integer, intent(IN) :: access
4975  integer, intent(OUT), optional :: err
4976  endsubroutine PDI_expose_LOGICAL2_7D
4977  !=============================================================================
4978 
4979 
4980  !=============================================================================
4981  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4982  !! \param[IN] name the data name
4983  !! \param[IN] data the exposed data
4984  !! \param[IN] access whether the data can be accessed for read or write by
4985  !! PDI
4986  !! \param[OUT] err for error status (optional)
4987  subroutine PDI_expose_LOGICAL4_0D(name, data, access, err)
4988  character(len=*), intent(IN) :: name
4989  LOGICAL(KIND=4), target, asynchronous :: data
4990  integer, intent(IN) :: access
4991  integer, intent(OUT), optional :: err
4992  endsubroutine PDI_expose_LOGICAL4_0D
4993  !=============================================================================
4994 
4995 
4996  !=============================================================================
4997  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
4998  !! \param[IN] name the data name
4999  !! \param[IN] data the exposed data
5000  !! \param[IN] access whether the data can be accessed for read or write by
5001  !! PDI
5002  !! \param[OUT] err for error status (optional)
5003  subroutine PDI_expose_LOGICAL4_1D(name, data, access, err)
5004  character(len=*), intent(IN) :: name
5005  LOGICAL(KIND=4), target, asynchronous :: data(:)
5006  integer, intent(IN) :: access
5007  integer, intent(OUT), optional :: err
5008  endsubroutine PDI_expose_LOGICAL4_1D
5009  !=============================================================================
5010 
5011 
5012  !=============================================================================
5013  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5014  !! \param[IN] name the data name
5015  !! \param[IN] data the exposed data
5016  !! \param[IN] access whether the data can be accessed for read or write by
5017  !! PDI
5018  !! \param[OUT] err for error status (optional)
5019  subroutine PDI_expose_LOGICAL4_2D(name, data, access, err)
5020  character(len=*), intent(IN) :: name
5021  LOGICAL(KIND=4), target, asynchronous :: data(:,:)
5022  integer, intent(IN) :: access
5023  integer, intent(OUT), optional :: err
5024  endsubroutine PDI_expose_LOGICAL4_2D
5025  !=============================================================================
5026 
5027 
5028  !=============================================================================
5029  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5030  !! \param[IN] name the data name
5031  !! \param[IN] data the exposed data
5032  !! \param[IN] access whether the data can be accessed for read or write by
5033  !! PDI
5034  !! \param[OUT] err for error status (optional)
5035  subroutine PDI_expose_LOGICAL4_3D(name, data, access, err)
5036  character(len=*), intent(IN) :: name
5037  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:)
5038  integer, intent(IN) :: access
5039  integer, intent(OUT), optional :: err
5040  endsubroutine PDI_expose_LOGICAL4_3D
5041  !=============================================================================
5042 
5043 
5044  !=============================================================================
5045  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5046  !! \param[IN] name the data name
5047  !! \param[IN] data the exposed data
5048  !! \param[IN] access whether the data can be accessed for read or write by
5049  !! PDI
5050  !! \param[OUT] err for error status (optional)
5051  subroutine PDI_expose_LOGICAL4_4D(name, data, access, err)
5052  character(len=*), intent(IN) :: name
5053  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:)
5054  integer, intent(IN) :: access
5055  integer, intent(OUT), optional :: err
5056  endsubroutine PDI_expose_LOGICAL4_4D
5057  !=============================================================================
5058 
5059 
5060  !=============================================================================
5061  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5062  !! \param[IN] name the data name
5063  !! \param[IN] data the exposed data
5064  !! \param[IN] access whether the data can be accessed for read or write by
5065  !! PDI
5066  !! \param[OUT] err for error status (optional)
5067  subroutine PDI_expose_LOGICAL4_5D(name, data, access, err)
5068  character(len=*), intent(IN) :: name
5069  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:)
5070  integer, intent(IN) :: access
5071  integer, intent(OUT), optional :: err
5072  endsubroutine PDI_expose_LOGICAL4_5D
5073  !=============================================================================
5074 
5075 
5076  !=============================================================================
5077  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5078  !! \param[IN] name the data name
5079  !! \param[IN] data the exposed data
5080  !! \param[IN] access whether the data can be accessed for read or write by
5081  !! PDI
5082  !! \param[OUT] err for error status (optional)
5083  subroutine PDI_expose_LOGICAL4_6D(name, data, access, err)
5084  character(len=*), intent(IN) :: name
5085  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
5086  integer, intent(IN) :: access
5087  integer, intent(OUT), optional :: err
5088  endsubroutine PDI_expose_LOGICAL4_6D
5089  !=============================================================================
5090 
5091 
5092  !=============================================================================
5093  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5094  !! \param[IN] name the data name
5095  !! \param[IN] data the exposed data
5096  !! \param[IN] access whether the data can be accessed for read or write by
5097  !! PDI
5098  !! \param[OUT] err for error status (optional)
5099  subroutine PDI_expose_LOGICAL4_7D(name, data, access, err)
5100  character(len=*), intent(IN) :: name
5101  LOGICAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
5102  integer, intent(IN) :: access
5103  integer, intent(OUT), optional :: err
5104  endsubroutine PDI_expose_LOGICAL4_7D
5105  !=============================================================================
5106 
5107 
5108  !=============================================================================
5109  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5110  !! \param[IN] name the data name
5111  !! \param[IN] data the exposed data
5112  !! \param[IN] access whether the data can be accessed for read or write by
5113  !! PDI
5114  !! \param[OUT] err for error status (optional)
5115  subroutine PDI_expose_LOGICAL8_0D(name, data, access, err)
5116  character(len=*), intent(IN) :: name
5117  LOGICAL(KIND=8), target, asynchronous :: data
5118  integer, intent(IN) :: access
5119  integer, intent(OUT), optional :: err
5120  endsubroutine PDI_expose_LOGICAL8_0D
5121  !=============================================================================
5122 
5123 
5124  !=============================================================================
5125  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5126  !! \param[IN] name the data name
5127  !! \param[IN] data the exposed data
5128  !! \param[IN] access whether the data can be accessed for read or write by
5129  !! PDI
5130  !! \param[OUT] err for error status (optional)
5131  subroutine PDI_expose_LOGICAL8_1D(name, data, access, err)
5132  character(len=*), intent(IN) :: name
5133  LOGICAL(KIND=8), target, asynchronous :: data(:)
5134  integer, intent(IN) :: access
5135  integer, intent(OUT), optional :: err
5136  endsubroutine PDI_expose_LOGICAL8_1D
5137  !=============================================================================
5138 
5139 
5140  !=============================================================================
5141  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5142  !! \param[IN] name the data name
5143  !! \param[IN] data the exposed data
5144  !! \param[IN] access whether the data can be accessed for read or write by
5145  !! PDI
5146  !! \param[OUT] err for error status (optional)
5147  subroutine PDI_expose_LOGICAL8_2D(name, data, access, err)
5148  character(len=*), intent(IN) :: name
5149  LOGICAL(KIND=8), target, asynchronous :: data(:,:)
5150  integer, intent(IN) :: access
5151  integer, intent(OUT), optional :: err
5152  endsubroutine PDI_expose_LOGICAL8_2D
5153  !=============================================================================
5154 
5155 
5156  !=============================================================================
5157  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5158  !! \param[IN] name the data name
5159  !! \param[IN] data the exposed data
5160  !! \param[IN] access whether the data can be accessed for read or write by
5161  !! PDI
5162  !! \param[OUT] err for error status (optional)
5163  subroutine PDI_expose_LOGICAL8_3D(name, data, access, err)
5164  character(len=*), intent(IN) :: name
5165  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:)
5166  integer, intent(IN) :: access
5167  integer, intent(OUT), optional :: err
5168  endsubroutine PDI_expose_LOGICAL8_3D
5169  !=============================================================================
5170 
5171 
5172  !=============================================================================
5173  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5174  !! \param[IN] name the data name
5175  !! \param[IN] data the exposed data
5176  !! \param[IN] access whether the data can be accessed for read or write by
5177  !! PDI
5178  !! \param[OUT] err for error status (optional)
5179  subroutine PDI_expose_LOGICAL8_4D(name, data, access, err)
5180  character(len=*), intent(IN) :: name
5181  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:)
5182  integer, intent(IN) :: access
5183  integer, intent(OUT), optional :: err
5184  endsubroutine PDI_expose_LOGICAL8_4D
5185  !=============================================================================
5186 
5187 
5188  !=============================================================================
5189  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5190  !! \param[IN] name the data name
5191  !! \param[IN] data the exposed data
5192  !! \param[IN] access whether the data can be accessed for read or write by
5193  !! PDI
5194  !! \param[OUT] err for error status (optional)
5195  subroutine PDI_expose_LOGICAL8_5D(name, data, access, err)
5196  character(len=*), intent(IN) :: name
5197  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:)
5198  integer, intent(IN) :: access
5199  integer, intent(OUT), optional :: err
5200  endsubroutine PDI_expose_LOGICAL8_5D
5201  !=============================================================================
5202 
5203 
5204  !=============================================================================
5205  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5206  !! \param[IN] name the data name
5207  !! \param[IN] data the exposed data
5208  !! \param[IN] access whether the data can be accessed for read or write by
5209  !! PDI
5210  !! \param[OUT] err for error status (optional)
5211  subroutine PDI_expose_LOGICAL8_6D(name, data, access, err)
5212  character(len=*), intent(IN) :: name
5213  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
5214  integer, intent(IN) :: access
5215  integer, intent(OUT), optional :: err
5216  endsubroutine PDI_expose_LOGICAL8_6D
5217  !=============================================================================
5218 
5219 
5220  !=============================================================================
5221  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5222  !! \param[IN] name the data name
5223  !! \param[IN] data the exposed data
5224  !! \param[IN] access whether the data can be accessed for read or write by
5225  !! PDI
5226  !! \param[OUT] err for error status (optional)
5227  subroutine PDI_expose_LOGICAL8_7D(name, data, access, err)
5228  character(len=*), intent(IN) :: name
5229  LOGICAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
5230  integer, intent(IN) :: access
5231  integer, intent(OUT), optional :: err
5232  endsubroutine PDI_expose_LOGICAL8_7D
5233  !=============================================================================
5234 
5235 
5236  !=============================================================================
5237  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5238  !! \param[IN] name the data name
5239  !! \param[IN] data the exposed data
5240  !! \param[IN] access whether the data can be accessed for read or write by
5241  !! PDI
5242  !! \param[OUT] err for error status (optional)
5243  subroutine PDI_expose_LOGICAL16_0D(name, data, access, err)
5244  character(len=*), intent(IN) :: name
5245  LOGICAL(KIND=16), target, asynchronous :: data
5246  integer, intent(IN) :: access
5247  integer, intent(OUT), optional :: err
5248  endsubroutine PDI_expose_LOGICAL16_0D
5249  !=============================================================================
5250 
5251 
5252  !=============================================================================
5253  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5254  !! \param[IN] name the data name
5255  !! \param[IN] data the exposed data
5256  !! \param[IN] access whether the data can be accessed for read or write by
5257  !! PDI
5258  !! \param[OUT] err for error status (optional)
5259  subroutine PDI_expose_LOGICAL16_1D(name, data, access, err)
5260  character(len=*), intent(IN) :: name
5261  LOGICAL(KIND=16), target, asynchronous :: data(:)
5262  integer, intent(IN) :: access
5263  integer, intent(OUT), optional :: err
5264  endsubroutine PDI_expose_LOGICAL16_1D
5265  !=============================================================================
5266 
5267 
5268  !=============================================================================
5269  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5270  !! \param[IN] name the data name
5271  !! \param[IN] data the exposed data
5272  !! \param[IN] access whether the data can be accessed for read or write by
5273  !! PDI
5274  !! \param[OUT] err for error status (optional)
5275  subroutine PDI_expose_LOGICAL16_2D(name, data, access, err)
5276  character(len=*), intent(IN) :: name
5277  LOGICAL(KIND=16), target, asynchronous :: data(:,:)
5278  integer, intent(IN) :: access
5279  integer, intent(OUT), optional :: err
5280  endsubroutine PDI_expose_LOGICAL16_2D
5281  !=============================================================================
5282 
5283 
5284  !=============================================================================
5285  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5286  !! \param[IN] name the data name
5287  !! \param[IN] data the exposed data
5288  !! \param[IN] access whether the data can be accessed for read or write by
5289  !! PDI
5290  !! \param[OUT] err for error status (optional)
5291  subroutine PDI_expose_LOGICAL16_3D(name, data, access, err)
5292  character(len=*), intent(IN) :: name
5293  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:)
5294  integer, intent(IN) :: access
5295  integer, intent(OUT), optional :: err
5296  endsubroutine PDI_expose_LOGICAL16_3D
5297  !=============================================================================
5298 
5299 
5300  !=============================================================================
5301  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5302  !! \param[IN] name the data name
5303  !! \param[IN] data the exposed data
5304  !! \param[IN] access whether the data can be accessed for read or write by
5305  !! PDI
5306  !! \param[OUT] err for error status (optional)
5307  subroutine PDI_expose_LOGICAL16_4D(name, data, access, err)
5308  character(len=*), intent(IN) :: name
5309  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:)
5310  integer, intent(IN) :: access
5311  integer, intent(OUT), optional :: err
5312  endsubroutine PDI_expose_LOGICAL16_4D
5313  !=============================================================================
5314 
5315 
5316  !=============================================================================
5317  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5318  !! \param[IN] name the data name
5319  !! \param[IN] data the exposed data
5320  !! \param[IN] access whether the data can be accessed for read or write by
5321  !! PDI
5322  !! \param[OUT] err for error status (optional)
5323  subroutine PDI_expose_LOGICAL16_5D(name, data, access, err)
5324  character(len=*), intent(IN) :: name
5325  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:)
5326  integer, intent(IN) :: access
5327  integer, intent(OUT), optional :: err
5328  endsubroutine PDI_expose_LOGICAL16_5D
5329  !=============================================================================
5330 
5331 
5332  !=============================================================================
5333  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5334  !! \param[IN] name the data name
5335  !! \param[IN] data the exposed data
5336  !! \param[IN] access whether the data can be accessed for read or write by
5337  !! PDI
5338  !! \param[OUT] err for error status (optional)
5339  subroutine PDI_expose_LOGICAL16_6D(name, data, access, err)
5340  character(len=*), intent(IN) :: name
5341  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
5342  integer, intent(IN) :: access
5343  integer, intent(OUT), optional :: err
5344  endsubroutine PDI_expose_LOGICAL16_6D
5345  !=============================================================================
5346 
5347 
5348  !=============================================================================
5349  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5350  !! \param[IN] name the data name
5351  !! \param[IN] data the exposed data
5352  !! \param[IN] access whether the data can be accessed for read or write by
5353  !! PDI
5354  !! \param[OUT] err for error status (optional)
5355  subroutine PDI_expose_LOGICAL16_7D(name, data, access, err)
5356  character(len=*), intent(IN) :: name
5357  LOGICAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
5358  integer, intent(IN) :: access
5359  integer, intent(OUT), optional :: err
5360  endsubroutine PDI_expose_LOGICAL16_7D
5361  !=============================================================================
5362 
5363 
5364  !=============================================================================
5365  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5366  !! \param[IN] name the data name
5367  !! \param[IN] data the exposed data
5368  !! \param[IN] access whether the data can be accessed for read or write by
5369  !! PDI
5370  !! \param[OUT] err for error status (optional)
5371  subroutine PDI_expose_REAL4_0D(name, data, access, err)
5372  character(len=*), intent(IN) :: name
5373  REAL(KIND=4), target, asynchronous :: data
5374  integer, intent(IN) :: access
5375  integer, intent(OUT), optional :: err
5376  endsubroutine PDI_expose_REAL4_0D
5377  !=============================================================================
5378 
5379 
5380  !=============================================================================
5381  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5382  !! \param[IN] name the data name
5383  !! \param[IN] data the exposed data
5384  !! \param[IN] access whether the data can be accessed for read or write by
5385  !! PDI
5386  !! \param[OUT] err for error status (optional)
5387  subroutine PDI_expose_REAL4_1D(name, data, access, err)
5388  character(len=*), intent(IN) :: name
5389  REAL(KIND=4), target, asynchronous :: data(:)
5390  integer, intent(IN) :: access
5391  integer, intent(OUT), optional :: err
5392  endsubroutine PDI_expose_REAL4_1D
5393  !=============================================================================
5394 
5395 
5396  !=============================================================================
5397  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5398  !! \param[IN] name the data name
5399  !! \param[IN] data the exposed data
5400  !! \param[IN] access whether the data can be accessed for read or write by
5401  !! PDI
5402  !! \param[OUT] err for error status (optional)
5403  subroutine PDI_expose_REAL4_2D(name, data, access, err)
5404  character(len=*), intent(IN) :: name
5405  REAL(KIND=4), target, asynchronous :: data(:,:)
5406  integer, intent(IN) :: access
5407  integer, intent(OUT), optional :: err
5408  endsubroutine PDI_expose_REAL4_2D
5409  !=============================================================================
5410 
5411 
5412  !=============================================================================
5413  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5414  !! \param[IN] name the data name
5415  !! \param[IN] data the exposed data
5416  !! \param[IN] access whether the data can be accessed for read or write by
5417  !! PDI
5418  !! \param[OUT] err for error status (optional)
5419  subroutine PDI_expose_REAL4_3D(name, data, access, err)
5420  character(len=*), intent(IN) :: name
5421  REAL(KIND=4), target, asynchronous :: data(:,:,:)
5422  integer, intent(IN) :: access
5423  integer, intent(OUT), optional :: err
5424  endsubroutine PDI_expose_REAL4_3D
5425  !=============================================================================
5426 
5427 
5428  !=============================================================================
5429  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5430  !! \param[IN] name the data name
5431  !! \param[IN] data the exposed data
5432  !! \param[IN] access whether the data can be accessed for read or write by
5433  !! PDI
5434  !! \param[OUT] err for error status (optional)
5435  subroutine PDI_expose_REAL4_4D(name, data, access, err)
5436  character(len=*), intent(IN) :: name
5437  REAL(KIND=4), target, asynchronous :: data(:,:,:,:)
5438  integer, intent(IN) :: access
5439  integer, intent(OUT), optional :: err
5440  endsubroutine PDI_expose_REAL4_4D
5441  !=============================================================================
5442 
5443 
5444  !=============================================================================
5445  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5446  !! \param[IN] name the data name
5447  !! \param[IN] data the exposed data
5448  !! \param[IN] access whether the data can be accessed for read or write by
5449  !! PDI
5450  !! \param[OUT] err for error status (optional)
5451  subroutine PDI_expose_REAL4_5D(name, data, access, err)
5452  character(len=*), intent(IN) :: name
5453  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:)
5454  integer, intent(IN) :: access
5455  integer, intent(OUT), optional :: err
5456  endsubroutine PDI_expose_REAL4_5D
5457  !=============================================================================
5458 
5459 
5460  !=============================================================================
5461  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5462  !! \param[IN] name the data name
5463  !! \param[IN] data the exposed data
5464  !! \param[IN] access whether the data can be accessed for read or write by
5465  !! PDI
5466  !! \param[OUT] err for error status (optional)
5467  subroutine PDI_expose_REAL4_6D(name, data, access, err)
5468  character(len=*), intent(IN) :: name
5469  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:)
5470  integer, intent(IN) :: access
5471  integer, intent(OUT), optional :: err
5472  endsubroutine PDI_expose_REAL4_6D
5473  !=============================================================================
5474 
5475 
5476  !=============================================================================
5477  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5478  !! \param[IN] name the data name
5479  !! \param[IN] data the exposed data
5480  !! \param[IN] access whether the data can be accessed for read or write by
5481  !! PDI
5482  !! \param[OUT] err for error status (optional)
5483  subroutine PDI_expose_REAL4_7D(name, data, access, err)
5484  character(len=*), intent(IN) :: name
5485  REAL(KIND=4), target, asynchronous :: data(:,:,:,:,:,:,:)
5486  integer, intent(IN) :: access
5487  integer, intent(OUT), optional :: err
5488  endsubroutine PDI_expose_REAL4_7D
5489  !=============================================================================
5490 
5491 
5492  !=============================================================================
5493  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5494  !! \param[IN] name the data name
5495  !! \param[IN] data the exposed data
5496  !! \param[IN] access whether the data can be accessed for read or write by
5497  !! PDI
5498  !! \param[OUT] err for error status (optional)
5499  subroutine PDI_expose_REAL8_0D(name, data, access, err)
5500  character(len=*), intent(IN) :: name
5501  REAL(KIND=8), target, asynchronous :: data
5502  integer, intent(IN) :: access
5503  integer, intent(OUT), optional :: err
5504  endsubroutine PDI_expose_REAL8_0D
5505  !=============================================================================
5506 
5507 
5508  !=============================================================================
5509  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5510  !! \param[IN] name the data name
5511  !! \param[IN] data the exposed data
5512  !! \param[IN] access whether the data can be accessed for read or write by
5513  !! PDI
5514  !! \param[OUT] err for error status (optional)
5515  subroutine PDI_expose_REAL8_1D(name, data, access, err)
5516  character(len=*), intent(IN) :: name
5517  REAL(KIND=8), target, asynchronous :: data(:)
5518  integer, intent(IN) :: access
5519  integer, intent(OUT), optional :: err
5520  endsubroutine PDI_expose_REAL8_1D
5521  !=============================================================================
5522 
5523 
5524  !=============================================================================
5525  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5526  !! \param[IN] name the data name
5527  !! \param[IN] data the exposed data
5528  !! \param[IN] access whether the data can be accessed for read or write by
5529  !! PDI
5530  !! \param[OUT] err for error status (optional)
5531  subroutine PDI_expose_REAL8_2D(name, data, access, err)
5532  character(len=*), intent(IN) :: name
5533  REAL(KIND=8), target, asynchronous :: data(:,:)
5534  integer, intent(IN) :: access
5535  integer, intent(OUT), optional :: err
5536  endsubroutine PDI_expose_REAL8_2D
5537  !=============================================================================
5538 
5539 
5540  !=============================================================================
5541  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5542  !! \param[IN] name the data name
5543  !! \param[IN] data the exposed data
5544  !! \param[IN] access whether the data can be accessed for read or write by
5545  !! PDI
5546  !! \param[OUT] err for error status (optional)
5547  subroutine PDI_expose_REAL8_3D(name, data, access, err)
5548  character(len=*), intent(IN) :: name
5549  REAL(KIND=8), target, asynchronous :: data(:,:,:)
5550  integer, intent(IN) :: access
5551  integer, intent(OUT), optional :: err
5552  endsubroutine PDI_expose_REAL8_3D
5553  !=============================================================================
5554 
5555 
5556  !=============================================================================
5557  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5558  !! \param[IN] name the data name
5559  !! \param[IN] data the exposed data
5560  !! \param[IN] access whether the data can be accessed for read or write by
5561  !! PDI
5562  !! \param[OUT] err for error status (optional)
5563  subroutine PDI_expose_REAL8_4D(name, data, access, err)
5564  character(len=*), intent(IN) :: name
5565  REAL(KIND=8), target, asynchronous :: data(:,:,:,:)
5566  integer, intent(IN) :: access
5567  integer, intent(OUT), optional :: err
5568  endsubroutine PDI_expose_REAL8_4D
5569  !=============================================================================
5570 
5571 
5572  !=============================================================================
5573  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5574  !! \param[IN] name the data name
5575  !! \param[IN] data the exposed data
5576  !! \param[IN] access whether the data can be accessed for read or write by
5577  !! PDI
5578  !! \param[OUT] err for error status (optional)
5579  subroutine PDI_expose_REAL8_5D(name, data, access, err)
5580  character(len=*), intent(IN) :: name
5581  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:)
5582  integer, intent(IN) :: access
5583  integer, intent(OUT), optional :: err
5584  endsubroutine PDI_expose_REAL8_5D
5585  !=============================================================================
5586 
5587 
5588  !=============================================================================
5589  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5590  !! \param[IN] name the data name
5591  !! \param[IN] data the exposed data
5592  !! \param[IN] access whether the data can be accessed for read or write by
5593  !! PDI
5594  !! \param[OUT] err for error status (optional)
5595  subroutine PDI_expose_REAL8_6D(name, data, access, err)
5596  character(len=*), intent(IN) :: name
5597  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:)
5598  integer, intent(IN) :: access
5599  integer, intent(OUT), optional :: err
5600  endsubroutine PDI_expose_REAL8_6D
5601  !=============================================================================
5602 
5603 
5604  !=============================================================================
5605  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5606  !! \param[IN] name the data name
5607  !! \param[IN] data the exposed data
5608  !! \param[IN] access whether the data can be accessed for read or write by
5609  !! PDI
5610  !! \param[OUT] err for error status (optional)
5611  subroutine PDI_expose_REAL8_7D(name, data, access, err)
5612  character(len=*), intent(IN) :: name
5613  REAL(KIND=8), target, asynchronous :: data(:,:,:,:,:,:,:)
5614  integer, intent(IN) :: access
5615  integer, intent(OUT), optional :: err
5616  endsubroutine PDI_expose_REAL8_7D
5617  !=============================================================================
5618 
5619 
5620  !=============================================================================
5621  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5622  !! \param[IN] name the data name
5623  !! \param[IN] data the exposed data
5624  !! \param[IN] access whether the data can be accessed for read or write by
5625  !! PDI
5626  !! \param[OUT] err for error status (optional)
5627  subroutine PDI_expose_REAL16_0D(name, data, access, err)
5628  character(len=*), intent(IN) :: name
5629  REAL(KIND=16), target, asynchronous :: data
5630  integer, intent(IN) :: access
5631  integer, intent(OUT), optional :: err
5632  endsubroutine PDI_expose_REAL16_0D
5633  !=============================================================================
5634 
5635 
5636  !=============================================================================
5637  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5638  !! \param[IN] name the data name
5639  !! \param[IN] data the exposed data
5640  !! \param[IN] access whether the data can be accessed for read or write by
5641  !! PDI
5642  !! \param[OUT] err for error status (optional)
5643  subroutine PDI_expose_REAL16_1D(name, data, access, err)
5644  character(len=*), intent(IN) :: name
5645  REAL(KIND=16), target, asynchronous :: data(:)
5646  integer, intent(IN) :: access
5647  integer, intent(OUT), optional :: err
5648  endsubroutine PDI_expose_REAL16_1D
5649  !=============================================================================
5650 
5651 
5652  !=============================================================================
5653  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5654  !! \param[IN] name the data name
5655  !! \param[IN] data the exposed data
5656  !! \param[IN] access whether the data can be accessed for read or write by
5657  !! PDI
5658  !! \param[OUT] err for error status (optional)
5659  subroutine PDI_expose_REAL16_2D(name, data, access, err)
5660  character(len=*), intent(IN) :: name
5661  REAL(KIND=16), target, asynchronous :: data(:,:)
5662  integer, intent(IN) :: access
5663  integer, intent(OUT), optional :: err
5664  endsubroutine PDI_expose_REAL16_2D
5665  !=============================================================================
5666 
5667 
5668  !=============================================================================
5669  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5670  !! \param[IN] name the data name
5671  !! \param[IN] data the exposed data
5672  !! \param[IN] access whether the data can be accessed for read or write by
5673  !! PDI
5674  !! \param[OUT] err for error status (optional)
5675  subroutine PDI_expose_REAL16_3D(name, data, access, err)
5676  character(len=*), intent(IN) :: name
5677  REAL(KIND=16), target, asynchronous :: data(:,:,:)
5678  integer, intent(IN) :: access
5679  integer, intent(OUT), optional :: err
5680  endsubroutine PDI_expose_REAL16_3D
5681  !=============================================================================
5682 
5683 
5684  !=============================================================================
5685  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5686  !! \param[IN] name the data name
5687  !! \param[IN] data the exposed data
5688  !! \param[IN] access whether the data can be accessed for read or write by
5689  !! PDI
5690  !! \param[OUT] err for error status (optional)
5691  subroutine PDI_expose_REAL16_4D(name, data, access, err)
5692  character(len=*), intent(IN) :: name
5693  REAL(KIND=16), target, asynchronous :: data(:,:,:,:)
5694  integer, intent(IN) :: access
5695  integer, intent(OUT), optional :: err
5696  endsubroutine PDI_expose_REAL16_4D
5697  !=============================================================================
5698 
5699 
5700  !=============================================================================
5701  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5702  !! \param[IN] name the data name
5703  !! \param[IN] data the exposed data
5704  !! \param[IN] access whether the data can be accessed for read or write by
5705  !! PDI
5706  !! \param[OUT] err for error status (optional)
5707  subroutine PDI_expose_REAL16_5D(name, data, access, err)
5708  character(len=*), intent(IN) :: name
5709  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:)
5710  integer, intent(IN) :: access
5711  integer, intent(OUT), optional :: err
5712  endsubroutine PDI_expose_REAL16_5D
5713  !=============================================================================
5714 
5715 
5716  !=============================================================================
5717  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5718  !! \param[IN] name the data name
5719  !! \param[IN] data the exposed data
5720  !! \param[IN] access whether the data can be accessed for read or write by
5721  !! PDI
5722  !! \param[OUT] err for error status (optional)
5723  subroutine PDI_expose_REAL16_6D(name, data, access, err)
5724  character(len=*), intent(IN) :: name
5725  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:)
5726  integer, intent(IN) :: access
5727  integer, intent(OUT), optional :: err
5728  endsubroutine PDI_expose_REAL16_6D
5729  !=============================================================================
5730 
5731 
5732  !=============================================================================
5733  !< shortly exposes some data to PDI. equivalent to PDI_share + PDI_reclaim.
5734  !! \param[IN] name the data name
5735  !! \param[IN] data the exposed data
5736  !! \param[IN] access whether the data can be accessed for read or write by
5737  !! PDI
5738  !! \param[OUT] err for error status (optional)
5739  subroutine PDI_expose_REAL16_7D(name, data, access, err)
5740  character(len=*), intent(IN) :: name
5741  REAL(KIND=16), target, asynchronous :: data(:,:,:,:,:,:,:)
5742  integer, intent(IN) :: access
5743  integer, intent(OUT), optional :: err
5744  endsubroutine PDI_expose_REAL16_7D
5745  !=============================================================================
5746 
5747 endinterface PDI_expose
5748 
5749 
5750 interface PDI_access
5751 
5752  !=============================================================================
5753  !< requests for PDI to access a data buffer.
5754  !! \param[IN] name the data name
5755  !! \param[OUT] ptr_data pointer associated with the accessd data
5756  !! \param[IN] access whether the data can be accessed for read or write by
5757  !! PDI
5758  !! \param[OUT] err for error status (optional)
5759  subroutine PDI_access_CHARACTER1_0D(name, ptr_data, access, &
5760  err)
5761  character(len=*), intent(IN) :: name
5762  CHARACTER(KIND=1), pointer &
5763  :: ptr_data
5764  integer, intent(IN) :: access
5765  integer, intent(OUT), optional :: err
5766  endsubroutine PDI_access_CHARACTER1_0D
5767  !=============================================================================
5768 
5769 
5770  !=============================================================================
5771  !< requests for PDI to access a data buffer.
5772  !! \param[IN] name the data name
5773  !! \param[OUT] ptr_data pointer associated with the accessd data
5774  !! \param[IN] access whether the data can be accessed for read or write by
5775  !! PDI
5776  !! \param[OUT] err for error status (optional)
5777  subroutine PDI_access_CHARACTER1_1D(name, ptr_data, access, &
5778  ptr_data_shape, &
5779  err)
5780  character(len=*), intent(IN) :: name
5781  CHARACTER(KIND=1), pointer &
5782  , contiguous &
5783  :: ptr_data(:)
5784  integer, intent(IN) :: access
5785  integer, intent(IN) :: ptr_data_shape(1)
5786  integer, intent(OUT), optional :: err
5787  endsubroutine PDI_access_CHARACTER1_1D
5788  !=============================================================================
5789 
5790 
5791  !=============================================================================
5792  !< requests for PDI to access a data buffer.
5793  !! \param[IN] name the data name
5794  !! \param[OUT] ptr_data pointer associated with the accessd data
5795  !! \param[IN] access whether the data can be accessed for read or write by
5796  !! PDI
5797  !! \param[OUT] err for error status (optional)
5798  subroutine PDI_access_CHARACTER1_2D(name, ptr_data, access, &
5799  ptr_data_shape, &
5800  err)
5801  character(len=*), intent(IN) :: name
5802  CHARACTER(KIND=1), pointer &
5803  , contiguous &
5804  :: ptr_data(:,:)
5805  integer, intent(IN) :: access
5806  integer, intent(IN) :: ptr_data_shape(2)
5807  integer, intent(OUT), optional :: err
5808  endsubroutine PDI_access_CHARACTER1_2D
5809  !=============================================================================
5810 
5811 
5812  !=============================================================================
5813  !< requests for PDI to access a data buffer.
5814  !! \param[IN] name the data name
5815  !! \param[OUT] ptr_data pointer associated with the accessd data
5816  !! \param[IN] access whether the data can be accessed for read or write by
5817  !! PDI
5818  !! \param[OUT] err for error status (optional)
5819  subroutine PDI_access_CHARACTER1_3D(name, ptr_data, access, &
5820  ptr_data_shape, &
5821  err)
5822  character(len=*), intent(IN) :: name
5823  CHARACTER(KIND=1), pointer &
5824  , contiguous &
5825  :: ptr_data(:,:,:)
5826  integer, intent(IN) :: access
5827  integer, intent(IN) :: ptr_data_shape(3)
5828  integer, intent(OUT), optional :: err
5829  endsubroutine PDI_access_CHARACTER1_3D
5830  !=============================================================================
5831 
5832 
5833  !=============================================================================
5834  !< requests for PDI to access a data buffer.
5835  !! \param[IN] name the data name
5836  !! \param[OUT] ptr_data pointer associated with the accessd data
5837  !! \param[IN] access whether the data can be accessed for read or write by
5838  !! PDI
5839  !! \param[OUT] err for error status (optional)
5840  subroutine PDI_access_CHARACTER1_4D(name, ptr_data, access, &
5841  ptr_data_shape, &
5842  err)
5843  character(len=*), intent(IN) :: name
5844  CHARACTER(KIND=1), pointer &
5845  , contiguous &
5846  :: ptr_data(:,:,:,:)
5847  integer, intent(IN) :: access
5848  integer, intent(IN) :: ptr_data_shape(4)
5849  integer, intent(OUT), optional :: err
5850  endsubroutine PDI_access_CHARACTER1_4D
5851  !=============================================================================
5852 
5853 
5854  !=============================================================================
5855  !< requests for PDI to access a data buffer.
5856  !! \param[IN] name the data name
5857  !! \param[OUT] ptr_data pointer associated with the accessd data
5858  !! \param[IN] access whether the data can be accessed for read or write by
5859  !! PDI
5860  !! \param[OUT] err for error status (optional)
5861  subroutine PDI_access_CHARACTER1_5D(name, ptr_data, access, &
5862  ptr_data_shape, &
5863  err)
5864  character(len=*), intent(IN) :: name
5865  CHARACTER(KIND=1), pointer &
5866  , contiguous &
5867  :: ptr_data(:,:,:,:,:)
5868  integer, intent(IN) :: access
5869  integer, intent(IN) :: ptr_data_shape(5)
5870  integer, intent(OUT), optional :: err
5871  endsubroutine PDI_access_CHARACTER1_5D
5872  !=============================================================================
5873 
5874 
5875  !=============================================================================
5876  !< requests for PDI to access a data buffer.
5877  !! \param[IN] name the data name
5878  !! \param[OUT] ptr_data pointer associated with the accessd data
5879  !! \param[IN] access whether the data can be accessed for read or write by
5880  !! PDI
5881  !! \param[OUT] err for error status (optional)
5882  subroutine PDI_access_CHARACTER1_6D(name, ptr_data, access, &
5883  ptr_data_shape, &
5884  err)
5885  character(len=*), intent(IN) :: name
5886  CHARACTER(KIND=1), pointer &
5887  , contiguous &
5888  :: ptr_data(:,:,:,:,:,:)
5889  integer, intent(IN) :: access
5890  integer, intent(IN) :: ptr_data_shape(6)
5891  integer, intent(OUT), optional :: err
5892  endsubroutine PDI_access_CHARACTER1_6D
5893  !=============================================================================
5894 
5895 
5896  !=============================================================================
5897  !< requests for PDI to access a data buffer.
5898  !! \param[IN] name the data name
5899  !! \param[OUT] ptr_data pointer associated with the accessd data
5900  !! \param[IN] access whether the data can be accessed for read or write by
5901  !! PDI
5902  !! \param[OUT] err for error status (optional)
5903  subroutine PDI_access_CHARACTER1_7D(name, ptr_data, access, &
5904  ptr_data_shape, &
5905  err)
5906  character(len=*), intent(IN) :: name
5907  CHARACTER(KIND=1), pointer &
5908  , contiguous &
5909  :: ptr_data(:,:,:,:,:,:,:)
5910  integer, intent(IN) :: access
5911  integer, intent(IN) :: ptr_data_shape(7)
5912  integer, intent(OUT), optional :: err
5913  endsubroutine PDI_access_CHARACTER1_7D
5914  !=============================================================================
5915 
5916 
5917  !=============================================================================
5918  !< requests for PDI to access a data buffer.
5919  !! \param[IN] name the data name
5920  !! \param[OUT] ptr_data pointer associated with the accessd data
5921  !! \param[IN] access whether the data can be accessed for read or write by
5922  !! PDI
5923  !! \param[OUT] err for error status (optional)
5924  subroutine PDI_access_CHARACTER4_0D(name, ptr_data, access, &
5925  err)
5926  character(len=*), intent(IN) :: name
5927  CHARACTER(KIND=4), pointer &
5928  :: ptr_data
5929  integer, intent(IN) :: access
5930  integer, intent(OUT), optional :: err
5931  endsubroutine PDI_access_CHARACTER4_0D
5932  !=============================================================================
5933 
5934 
5935  !=============================================================================
5936  !< requests for PDI to access a data buffer.
5937  !! \param[IN] name the data name
5938  !! \param[OUT] ptr_data pointer associated with the accessd data
5939  !! \param[IN] access whether the data can be accessed for read or write by
5940  !! PDI
5941  !! \param[OUT] err for error status (optional)
5942  subroutine PDI_access_CHARACTER4_1D(name, ptr_data, access, &
5943  ptr_data_shape, &
5944  err)
5945  character(len=*), intent(IN) :: name
5946  CHARACTER(KIND=4), pointer &
5947  , contiguous &
5948  :: ptr_data(:)
5949  integer, intent(IN) :: access
5950  integer, intent(IN) :: ptr_data_shape(1)
5951  integer, intent(OUT), optional :: err
5952  endsubroutine PDI_access_CHARACTER4_1D
5953  !=============================================================================
5954 
5955 
5956  !=============================================================================
5957  !< requests for PDI to access a data buffer.
5958  !! \param[IN] name the data name
5959  !! \param[OUT] ptr_data pointer associated with the accessd data
5960  !! \param[IN] access whether the data can be accessed for read or write by
5961  !! PDI
5962  !! \param[OUT] err for error status (optional)
5963  subroutine PDI_access_CHARACTER4_2D(name, ptr_data, access, &
5964  ptr_data_shape, &
5965  err)
5966  character(len=*), intent(IN) :: name
5967  CHARACTER(KIND=4), pointer &
5968  , contiguous &
5969  :: ptr_data(:,:)
5970  integer, intent(IN) :: access
5971  integer, intent(IN) :: ptr_data_shape(2)
5972  integer, intent(OUT), optional :: err
5973  endsubroutine PDI_access_CHARACTER4_2D
5974  !=============================================================================
5975 
5976 
5977  !=============================================================================
5978  !< requests for PDI to access a data buffer.
5979  !! \param[IN] name the data name
5980  !! \param[OUT] ptr_data pointer associated with the accessd data
5981  !! \param[IN] access whether the data can be accessed for read or write by
5982  !! PDI
5983  !! \param[OUT] err for error status (optional)
5984  subroutine PDI_access_CHARACTER4_3D(name, ptr_data, access, &
5985  ptr_data_shape, &
5986  err)
5987  character(len=*), intent(IN) :: name
5988  CHARACTER(KIND=4), pointer &
5989  , contiguous &
5990  :: ptr_data(:,:,:)
5991  integer, intent(IN) :: access
5992  integer, intent(IN) :: ptr_data_shape(3)
5993  integer, intent(OUT), optional :: err
5994  endsubroutine PDI_access_CHARACTER4_3D
5995  !=============================================================================
5996 
5997 
5998  !=============================================================================
5999  !< requests for PDI to access a data buffer.
6000  !! \param[IN] name the data name
6001  !! \param[OUT] ptr_data pointer associated with the accessd data
6002  !! \param[IN] access whether the data can be accessed for read or write by
6003  !! PDI
6004  !! \param[OUT] err for error status (optional)
6005  subroutine PDI_access_CHARACTER4_4D(name, ptr_data, access, &
6006  ptr_data_shape, &
6007  err)
6008  character(len=*), intent(IN) :: name
6009  CHARACTER(KIND=4), pointer &
6010  , contiguous &
6011  :: ptr_data(:,:,:,:)
6012  integer, intent(IN) :: access
6013  integer, intent(IN) :: ptr_data_shape(4)
6014  integer, intent(OUT), optional :: err
6015  endsubroutine PDI_access_CHARACTER4_4D
6016  !=============================================================================
6017 
6018 
6019  !=============================================================================
6020  !< requests for PDI to access a data buffer.
6021  !! \param[IN] name the data name
6022  !! \param[OUT] ptr_data pointer associated with the accessd data
6023  !! \param[IN] access whether the data can be accessed for read or write by
6024  !! PDI
6025  !! \param[OUT] err for error status (optional)
6026  subroutine PDI_access_CHARACTER4_5D(name, ptr_data, access, &
6027  ptr_data_shape, &
6028  err)
6029  character(len=*), intent(IN) :: name
6030  CHARACTER(KIND=4), pointer &
6031  , contiguous &
6032  :: ptr_data(:,:,:,:,:)
6033  integer, intent(IN) :: access
6034  integer, intent(IN) :: ptr_data_shape(5)
6035  integer, intent(OUT), optional :: err
6036  endsubroutine PDI_access_CHARACTER4_5D
6037  !=============================================================================
6038 
6039 
6040  !=============================================================================
6041  !< requests for PDI to access a data buffer.
6042  !! \param[IN] name the data name
6043  !! \param[OUT] ptr_data pointer associated with the accessd data
6044  !! \param[IN] access whether the data can be accessed for read or write by
6045  !! PDI
6046  !! \param[OUT] err for error status (optional)
6047  subroutine PDI_access_CHARACTER4_6D(name, ptr_data, access, &
6048  ptr_data_shape, &
6049  err)
6050  character(len=*), intent(IN) :: name
6051  CHARACTER(KIND=4), pointer &
6052  , contiguous &
6053  :: ptr_data(:,:,:,:,:,:)
6054  integer, intent(IN) :: access
6055  integer, intent(IN) :: ptr_data_shape(6)
6056  integer, intent(OUT), optional :: err
6057  endsubroutine PDI_access_CHARACTER4_6D
6058  !=============================================================================
6059 
6060 
6061  !=============================================================================
6062  !< requests for PDI to access a data buffer.
6063  !! \param[IN] name the data name
6064  !! \param[OUT] ptr_data pointer associated with the accessd data
6065  !! \param[IN] access whether the data can be accessed for read or write by
6066  !! PDI
6067  !! \param[OUT] err for error status (optional)
6068  subroutine PDI_access_CHARACTER4_7D(name, ptr_data, access, &
6069  ptr_data_shape, &
6070  err)
6071  character(len=*), intent(IN) :: name
6072  CHARACTER(KIND=4), pointer &
6073  , contiguous &
6074  :: ptr_data(:,:,:,:,:,:,:)
6075  integer, intent(IN) :: access
6076  integer, intent(IN) :: ptr_data_shape(7)
6077  integer, intent(OUT), optional :: err
6078  endsubroutine PDI_access_CHARACTER4_7D
6079  !=============================================================================
6080 
6081 
6082  !=============================================================================
6083  !< requests for PDI to access a data buffer.
6084  !! \param[IN] name the data name
6085  !! \param[OUT] ptr_data pointer associated with the accessd data
6086  !! \param[IN] access whether the data can be accessed for read or write by
6087  !! PDI
6088  !! \param[OUT] err for error status (optional)
6089  subroutine PDI_access_COMPLEX4_0D(name, ptr_data, access, &
6090  err)
6091  character(len=*), intent(IN) :: name
6092  COMPLEX(KIND=4), pointer &
6093  :: ptr_data
6094  integer, intent(IN) :: access
6095  integer, intent(OUT), optional :: err
6096  endsubroutine PDI_access_COMPLEX4_0D
6097  !=============================================================================
6098 
6099 
6100  !=============================================================================
6101  !< requests for PDI to access a data buffer.
6102  !! \param[IN] name the data name
6103  !! \param[OUT] ptr_data pointer associated with the accessd data
6104  !! \param[IN] access whether the data can be accessed for read or write by
6105  !! PDI
6106  !! \param[OUT] err for error status (optional)
6107  subroutine PDI_access_COMPLEX4_1D(name, ptr_data, access, &
6108  ptr_data_shape, &
6109  err)
6110  character(len=*), intent(IN) :: name
6111  COMPLEX(KIND=4), pointer &
6112  , contiguous &
6113  :: ptr_data(:)
6114  integer, intent(IN) :: access
6115  integer, intent(IN) :: ptr_data_shape(1)
6116  integer, intent(OUT), optional :: err
6117  endsubroutine PDI_access_COMPLEX4_1D
6118  !=============================================================================
6119 
6120 
6121  !=============================================================================
6122  !< requests for PDI to access a data buffer.
6123  !! \param[IN] name the data name
6124  !! \param[OUT] ptr_data pointer associated with the accessd data
6125  !! \param[IN] access whether the data can be accessed for read or write by
6126  !! PDI
6127  !! \param[OUT] err for error status (optional)
6128  subroutine PDI_access_COMPLEX4_2D(name, ptr_data, access, &
6129  ptr_data_shape, &
6130  err)
6131  character(len=*), intent(IN) :: name
6132  COMPLEX(KIND=4), pointer &
6133  , contiguous &
6134  :: ptr_data(:,:)
6135  integer, intent(IN) :: access
6136  integer, intent(IN) :: ptr_data_shape(2)
6137  integer, intent(OUT), optional :: err
6138  endsubroutine PDI_access_COMPLEX4_2D
6139  !=============================================================================
6140 
6141 
6142  !=============================================================================
6143  !< requests for PDI to access a data buffer.
6144  !! \param[IN] name the data name
6145  !! \param[OUT] ptr_data pointer associated with the accessd data
6146  !! \param[IN] access whether the data can be accessed for read or write by
6147  !! PDI
6148  !! \param[OUT] err for error status (optional)
6149  subroutine PDI_access_COMPLEX4_3D(name, ptr_data, access, &
6150  ptr_data_shape, &
6151  err)
6152  character(len=*), intent(IN) :: name
6153  COMPLEX(KIND=4), pointer &
6154  , contiguous &
6155  :: ptr_data(:,:,:)
6156  integer, intent(IN) :: access
6157  integer, intent(IN) :: ptr_data_shape(3)
6158  integer, intent(OUT), optional :: err
6159  endsubroutine PDI_access_COMPLEX4_3D
6160  !=============================================================================
6161 
6162 
6163  !=============================================================================
6164  !< requests for PDI to access a data buffer.
6165  !! \param[IN] name the data name
6166  !! \param[OUT] ptr_data pointer associated with the accessd data
6167  !! \param[IN] access whether the data can be accessed for read or write by
6168  !! PDI
6169  !! \param[OUT] err for error status (optional)
6170  subroutine PDI_access_COMPLEX4_4D(name, ptr_data, access, &
6171  ptr_data_shape, &
6172  err)
6173  character(len=*), intent(IN) :: name
6174  COMPLEX(KIND=4), pointer &
6175  , contiguous &
6176  :: ptr_data(:,:,:,:)
6177  integer, intent(IN) :: access
6178  integer, intent(IN) :: ptr_data_shape(4)
6179  integer, intent(OUT), optional :: err
6180  endsubroutine PDI_access_COMPLEX4_4D
6181  !=============================================================================
6182 
6183 
6184  !=============================================================================
6185  !< requests for PDI to access a data buffer.
6186  !! \param[IN] name the data name
6187  !! \param[OUT] ptr_data pointer associated with the accessd data
6188  !! \param[IN] access whether the data can be accessed for read or write by
6189  !! PDI
6190  !! \param[OUT] err for error status (optional)
6191  subroutine PDI_access_COMPLEX4_5D(name, ptr_data, access, &
6192  ptr_data_shape, &
6193  err)
6194  character(len=*), intent(IN) :: name
6195  COMPLEX(KIND=4), pointer &
6196  , contiguous &
6197  :: ptr_data(:,:,:,:,:)
6198  integer, intent(IN) :: access
6199  integer, intent(IN) :: ptr_data_shape(5)
6200  integer, intent(OUT), optional :: err
6201  endsubroutine PDI_access_COMPLEX4_5D
6202  !=============================================================================
6203 
6204 
6205  !=============================================================================
6206  !< requests for PDI to access a data buffer.
6207  !! \param[IN] name the data name
6208  !! \param[OUT] ptr_data pointer associated with the accessd data
6209  !! \param[IN] access whether the data can be accessed for read or write by
6210  !! PDI
6211  !! \param[OUT] err for error status (optional)
6212  subroutine PDI_access_COMPLEX4_6D(name, ptr_data, access, &
6213  ptr_data_shape, &
6214  err)
6215  character(len=*), intent(IN) :: name
6216  COMPLEX(KIND=4), pointer &
6217  , contiguous &
6218  :: ptr_data(:,:,:,:,:,:)
6219  integer, intent(IN) :: access
6220  integer, intent(IN) :: ptr_data_shape(6)
6221  integer, intent(OUT), optional :: err
6222  endsubroutine PDI_access_COMPLEX4_6D
6223  !=============================================================================
6224 
6225 
6226  !=============================================================================
6227  !< requests for PDI to access a data buffer.
6228  !! \param[IN] name the data name
6229  !! \param[OUT] ptr_data pointer associated with the accessd data
6230  !! \param[IN] access whether the data can be accessed for read or write by
6231  !! PDI
6232  !! \param[OUT] err for error status (optional)
6233  subroutine PDI_access_COMPLEX4_7D(name, ptr_data, access, &
6234  ptr_data_shape, &
6235  err)
6236  character(len=*), intent(IN) :: name
6237  COMPLEX(KIND=4), pointer &
6238  , contiguous &
6239  :: ptr_data(:,:,:,:,:,:,:)
6240  integer, intent(IN) :: access
6241  integer, intent(IN) :: ptr_data_shape(7)
6242  integer, intent(OUT), optional :: err
6243  endsubroutine PDI_access_COMPLEX4_7D
6244  !=============================================================================
6245 
6246 
6247  !=============================================================================
6248  !< requests for PDI to access a data buffer.
6249  !! \param[IN] name the data name
6250  !! \param[OUT] ptr_data pointer associated with the accessd data
6251  !! \param[IN] access whether the data can be accessed for read or write by
6252  !! PDI
6253  !! \param[OUT] err for error status (optional)
6254  subroutine PDI_access_COMPLEX8_0D(name, ptr_data, access, &
6255  err)
6256  character(len=*), intent(IN) :: name
6257  COMPLEX(KIND=8), pointer &
6258  :: ptr_data
6259  integer, intent(IN) :: access
6260  integer, intent(OUT), optional :: err
6261  endsubroutine PDI_access_COMPLEX8_0D
6262  !=============================================================================
6263 
6264 
6265  !=============================================================================
6266  !< requests for PDI to access a data buffer.
6267  !! \param[IN] name the data name
6268  !! \param[OUT] ptr_data pointer associated with the accessd data
6269  !! \param[IN] access whether the data can be accessed for read or write by
6270  !! PDI
6271  !! \param[OUT] err for error status (optional)
6272  subroutine PDI_access_COMPLEX8_1D(name, ptr_data, access, &
6273  ptr_data_shape, &
6274  err)
6275  character(len=*), intent(IN) :: name
6276  COMPLEX(KIND=8), pointer &
6277  , contiguous &
6278  :: ptr_data(:)
6279  integer, intent(IN) :: access
6280  integer, intent(IN) :: ptr_data_shape(1)
6281  integer, intent(OUT), optional :: err
6282  endsubroutine PDI_access_COMPLEX8_1D
6283  !=============================================================================
6284 
6285 
6286  !=============================================================================
6287  !< requests for PDI to access a data buffer.
6288  !! \param[IN] name the data name
6289  !! \param[OUT] ptr_data pointer associated with the accessd data
6290  !! \param[IN] access whether the data can be accessed for read or write by
6291  !! PDI
6292  !! \param[OUT] err for error status (optional)
6293  subroutine PDI_access_COMPLEX8_2D(name, ptr_data, access, &
6294  ptr_data_shape, &
6295  err)
6296  character(len=*), intent(IN) :: name
6297  COMPLEX(KIND=8), pointer &
6298  , contiguous &
6299  :: ptr_data(:,:)
6300  integer, intent(IN) :: access
6301  integer, intent(IN) :: ptr_data_shape(2)
6302  integer, intent(OUT), optional :: err
6303  endsubroutine PDI_access_COMPLEX8_2D
6304  !=============================================================================
6305 
6306 
6307  !=============================================================================
6308  !< requests for PDI to access a data buffer.
6309  !! \param[IN] name the data name
6310  !! \param[OUT] ptr_data pointer associated with the accessd data
6311  !! \param[IN] access whether the data can be accessed for read or write by
6312  !! PDI
6313  !! \param[OUT] err for error status (optional)
6314  subroutine PDI_access_COMPLEX8_3D(name, ptr_data, access, &
6315  ptr_data_shape, &
6316  err)
6317  character(len=*), intent(IN) :: name
6318  COMPLEX(KIND=8), pointer &
6319  , contiguous &
6320  :: ptr_data(:,:,:)
6321  integer, intent(IN) :: access
6322  integer, intent(IN) :: ptr_data_shape(3)
6323  integer, intent(OUT), optional :: err
6324  endsubroutine PDI_access_COMPLEX8_3D
6325  !=============================================================================
6326 
6327 
6328  !=============================================================================
6329  !< requests for PDI to access a data buffer.
6330  !! \param[IN] name the data name
6331  !! \param[OUT] ptr_data pointer associated with the accessd data
6332  !! \param[IN] access whether the data can be accessed for read or write by
6333  !! PDI
6334  !! \param[OUT] err for error status (optional)
6335  subroutine PDI_access_COMPLEX8_4D(name, ptr_data, access, &
6336  ptr_data_shape, &
6337  err)
6338  character(len=*), intent(IN) :: name
6339  COMPLEX(KIND=8), pointer &
6340  , contiguous &
6341  :: ptr_data(:,:,:,:)
6342  integer, intent(IN) :: access
6343  integer, intent(IN) :: ptr_data_shape(4)
6344  integer, intent(OUT), optional :: err
6345  endsubroutine PDI_access_COMPLEX8_4D
6346  !=============================================================================
6347 
6348 
6349  !=============================================================================