YAC 3.15.0
Yet Another Coupler
Loading...
Searching...
No Matches
yac_module.F90
Go to the documentation of this file.
1! Copyright (c) 2024 The YAC Authors
2!
3! SPDX-License-Identifier: BSD-3-Clause
4
5#ifdef HAVE_CONFIG_H
6#include "config.h"
7#endif
8
9module yac
10 use, intrinsic :: iso_c_binding, only : yac_int_fc_kind, &
11 yac_mpi_fint_fc_kind
12
13 !----------------------------------------------------------------------
17 !----------------------------------------------------------------------
18
19 public
20
21 integer, parameter :: yac_max_charlen = 132
22 integer, parameter :: yac_mpi_fint_kind = yac_mpi_fint_fc_kind
23 integer, parameter :: yac_int_kind = yac_int_fc_kind
24 double precision, parameter :: yac_frac_mask_no_value = 133713371337.0d0
25
26 !----------------------------------------------------------------------
30 !----------------------------------------------------------------------
31
32 enum, bind(c)
33 enumerator :: yac_location_cell = 0
34 enumerator :: yac_location_corner = 1
35 enumerator :: yac_location_edge = 2
36 end enum
37
38 !----------------------------------------------------------------------
42 !----------------------------------------------------------------------
43
44 enum, bind(c)
45 enumerator :: yac_exchange_type_none = 0
46 enumerator :: yac_exchange_type_source = 1
47 enumerator :: yac_exchange_type_target = 2
48 end enum
49
50 !----------------------------------------------------------------------
54 !----------------------------------------------------------------------
55
56 enum, bind(c)
57 enumerator :: yac_action_none = 0
58 enumerator :: yac_action_reduction = 1
59 enumerator :: yac_action_coupling = 2
62 enumerator :: yac_action_out_of_bound = 8
63 end enum
64
65 !----------------------------------------------------------------------
69 !----------------------------------------------------------------------
70 enum, bind(c)
71 enumerator :: yac_time_unit_millisecond = 0
72 enumerator :: yac_time_unit_second = 1
73 enumerator :: yac_time_unit_minute = 2
74 enumerator :: yac_time_unit_hour = 3
75 enumerator :: yac_time_unit_day = 4
76 enumerator :: yac_time_unit_month = 5
77 enumerator :: yac_time_unit_year = 6
78 enumerator :: yac_time_unit_iso_format = 7
79 end enum
80
81 !----------------------------------------------------------------------
85 !----------------------------------------------------------------------
86
87 enum, bind(c)
88 enumerator :: yac_reduction_time_none = 0
93 end enum
94
95 !----------------------------------------------------------------------
99 !----------------------------------------------------------------------
100 enum, bind(c)
101 enumerator :: yac_calendar_not_set = 0
102 enumerator :: yac_proleptic_gregorian = 1
103 enumerator :: yac_year_of_365_days = 2
104 enumerator :: yac_year_of_360_days = 3
105 end enum
106
107 !----------------------------------------------------------------------
111 !----------------------------------------------------------------------
112
113 enum, bind(c)
114 enumerator :: yac_avg_arithmetic = 0
115 enumerator :: yac_avg_dist = 1
116 enumerator :: yac_avg_bary = 2
117 end enum
118
119 enum, bind(c)
120 enumerator :: yac_ncc_avg = 0
121 enumerator :: yac_ncc_dist = 1
122 end enum
123
124 enum, bind(c)
125 enumerator :: yac_nnn_avg = 0
126 enumerator :: yac_nnn_dist = 1
127 enumerator :: yac_nnn_gauss = 2
128 enumerator :: yac_nnn_rbf = 3
129 end enum
130
131 enum, bind(c)
132 enumerator :: yac_dnn_avg = 0
133 enumerator :: yac_dnn_dist = 1
134 enumerator :: yac_dnn_gauss = 2
135 enumerator :: yac_dnn_rbf = 3
136 end enum
137
138 enum, bind(c)
141 end enum
142
143 enum, bind(c)
144 enumerator :: yac_conserv_destarea = 0
145 enumerator :: yac_conserv_fracarea = 1
146 end enum
147
148 enum, bind(c)
149 enumerator :: yac_spmap_avg = 0
150 enumerator :: yac_spmap_dist = 1
151 end enum
152
153 enum, bind(c)
154 enumerator :: yac_spmap_none = 0
155 enumerator :: yac_spmap_srcarea = 1
156 enumerator :: yac_spmap_invtgtarea = 2
157 enumerator :: yac_spmap_fracarea = 3
158 end enum
159
160 enum, bind(c)
161 enumerator :: yac_file_missing_error = 0
162 enumerator :: yac_file_missing_cont = 1
163 end enum
164
165 enum, bind(c)
166 enumerator :: yac_file_success_stop = 0
169 enumerator :: yac_file_success_cont = 1
171 end enum
172
173 !----------------------------------------------------------------------
177 !----------------------------------------------------------------------
178
179 enum, bind(c)
182 end enum
183
184 enum, bind(c)
188 end enum
189
190 !----------------------------------
191 ! Handling of existing weight files
192 !----------------------------------
193
194 enum, bind(c)
196 enumerator :: yac_wgt_on_existing_keep = 1
198 end enum
199
200 !----------------------------------------------------------------------
204 !----------------------------------------------------------------------
205
208
209 !----------------------------------------------------------------------
213 !----------------------------------------------------------------------
214
216 real, pointer :: p(:)
217 end type yac_real_ptr
218
220 double precision, pointer :: p(:)
221 end type yac_dble_ptr
222
224 character(len=:), allocatable :: string
225 end type yac_string
226
227 !----------------------------------------------------------------------
231 !----------------------------------------------------------------------
232
234 subroutine yac_fmpi_handshake ( comm, group_names, group_comms )
235 import :: yac_max_charlen
236 integer, intent(in) :: comm
237 character(len=YAC_MAX_CHARLEN), intent(in) :: &
238 group_names(:)
239 integer, intent(out) :: &
240 group_comms(SIZE(group_names))
241 end subroutine yac_fmpi_handshake
242 end interface yac_fmpi_handshake
243
244 !----------------------------------------------------------------------
248 !----------------------------------------------------------------------
249
251
252 subroutine yac_finit_comm ( comm )
253
254 integer, intent(in) :: comm
255
256 end subroutine yac_finit_comm
257
258 subroutine yac_finit_comm_instance ( comm, yac_instance_id )
259
260 integer, intent(in) :: comm
261 integer, intent(out) :: yac_instance_id
262
263 end subroutine yac_finit_comm_instance
264
265 end interface yac_finit_comm
266
267 interface yac_finit
268
269 subroutine yac_finit ( )
270
271 end subroutine yac_finit
272
273 subroutine yac_finit_instance ( yac_instance_id)
274
275 integer, intent(out) :: yac_instance_id
276
277 end subroutine yac_finit_instance
278
279 end interface yac_finit
280
282 subroutine yac_finit_dummy ()
283 end subroutine yac_finit_dummy
284
285 subroutine yac_finit_comm_dummy ( comm )
286
287 integer, intent(in) :: comm
288
289 end subroutine yac_finit_comm_dummy
290 end interface yac_finit_dummy
291
292 !----------------------------------------------------------------------
296 !----------------------------------------------------------------------
297
298 interface
304 end interface
305
306 !----------------------------------------------------------------------
310 !----------------------------------------------------------------------
311
312 interface
316 end interface
317
318 !----------------------------------------------------------------------
322 !----------------------------------------------------------------------
323
325 subroutine yac_fread_config_yaml (yaml_filename)
326 character(len=*), intent(in) :: yaml_filename
327 end subroutine yac_fread_config_yaml
328
329 subroutine yac_fread_config_yaml_instance (yac_instance_id, yaml_filename)
330 integer, intent(in) :: yac_instance_id
331 character(len=*), intent(in) :: yaml_filename
332 end subroutine yac_fread_config_yaml_instance
333 end interface yac_fread_config_yaml
334
336 subroutine yac_fread_config_json (json_filename)
337 character(len=*), intent(in) :: json_filename
338 end subroutine yac_fread_config_json
339
340 subroutine yac_fread_config_json_instance (yac_instance_id, json_filename)
341 integer, intent(in) :: yac_instance_id
342 character(len=*), intent(in) :: json_filename
343 end subroutine yac_fread_config_json_instance
344 end interface yac_fread_config_json
345
346 !----------------------------------------------------------------------
350 !----------------------------------------------------------------------
351
354 filename, fileformat, sync_location, include_definitions)
355 character(len=*), intent(in) :: filename
356 integer, intent(in) :: fileformat
357 integer, intent(in) :: sync_location
358 logical, intent(in), optional :: include_definitions
360 end subroutine yac_fset_config_output_file
361
363 yac_instance_id, filename, fileformat, sync_location, &
364 include_definitions)
365 integer, intent(in) :: yac_instance_id
366 character(len=*), intent(in) :: filename
367 integer, intent(in) :: fileformat
368 integer, intent(in) :: sync_location
369 logical, intent(in), optional :: include_definitions
372 end interface yac_fset_config_output_file
373
374 !----------------------------------------------------------------------
378 !----------------------------------------------------------------------
379
382 gridname, filename)
383 character(len=*), intent(in) :: gridname
384 character(len=*), intent(in) :: filename
385 end subroutine yac_fset_grid_output_file
386
388 yac_instance_id, gridname, filename)
389 integer, intent(in) :: yac_instance_id
390 character(len=*), intent(in) :: gridname
391 character(len=*), intent(in) :: filename
393 end interface yac_fset_grid_output_file
394
395 !----------------------------------------------------------------------
399 !----------------------------------------------------------------------
400
401 interface yac_fcleanup
402
403 subroutine yac_fcleanup ()
404 end subroutine yac_fcleanup
405
406 subroutine yac_fcleanup_instance ( yac_instance_id )
407
408 integer, intent(in) :: yac_instance_id
409
410 end subroutine yac_fcleanup_instance
411
412 end interface yac_fcleanup
413
414 !----------------------------------------------------------------------
418 !----------------------------------------------------------------------
419
421
422 subroutine yac_ffinalize ()
423 end subroutine yac_ffinalize
424
425 subroutine yac_ffinalize_instance ( yac_instance_id )
426
427 integer, intent(in) :: yac_instance_id
428
429 end subroutine
430
431 end interface yac_ffinalize
432
433 !----------------------------------------------------------------------
437 !----------------------------------------------------------------------
438
439 interface
440 function yac_fget_version () result (version_string)
441 character(len=:), ALLOCATABLE :: version_string
442 end function yac_fget_version
443 end interface
444
445 !----------------------------------------------------------------------
449 !----------------------------------------------------------------------
450
451 interface
453 result(mpi_handshake_group_name)
454 character(len=:), ALLOCATABLE :: mpi_handshake_group_name
456 end interface
457
458 !----------------------------------------------------------------------
462 !----------------------------------------------------------------------
463
465
466 SUBROUTINE yac_fpredef_comp ( comp_name, comp_id )
467
468 character(len=*), intent(in) :: comp_name
469 integer, intent(out) :: comp_id
470
471 END SUBROUTINE yac_fpredef_comp
472
473 SUBROUTINE yac_fpredef_comp_instance ( yac_instance_id, comp_name, comp_id )
474
475 integer, intent(in) :: yac_instance_id
476 character(len=*), intent(in) :: comp_name
477 integer, intent(out) :: comp_id
478
479 END SUBROUTINE yac_fpredef_comp_instance
480
481 END INTERFACE yac_fpredef_comp
482
484
485 subroutine yac_fdef_comp ( comp_name, comp_id )
486
487 character(len=*), intent(in) :: comp_name
488 integer, intent(out) :: comp_id
489
490 end subroutine yac_fdef_comp
491
492 subroutine yac_fdef_comp_instance ( yac_instance_id, comp_name, comp_id )
493
494 integer, intent(in) :: yac_instance_id
495 character(len=*), intent(in) :: comp_name
496 integer, intent(out) :: comp_id
497
498 end subroutine yac_fdef_comp_instance
499
500 end interface yac_fdef_comp
501
503
504 subroutine yac_fdef_comps ( comp_names, num_comps, comp_ids )
505
506 use, intrinsic :: iso_c_binding, only : c_char
507 import :: yac_max_charlen
508
509 integer, intent(in) :: num_comps
510 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
511 comp_names(num_comps)
512 integer, intent(out) :: comp_ids(num_comps)
513
514 end subroutine yac_fdef_comps
515
516 subroutine yac_fdef_comps_instance ( yac_instance_id, &
517 comp_names, &
518 num_comps, &
519 comp_ids )
520
521 use, intrinsic :: iso_c_binding, only : c_char
522 import :: yac_max_charlen
523
524 integer, intent(in) :: yac_instance_id
525 integer, intent(in) :: num_comps
526 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
527 comp_names(num_comps)
528 integer, intent(out) :: comp_ids(num_comps)
529
530 end subroutine yac_fdef_comps_instance
531
532 end interface yac_fdef_comps
533
535
536 subroutine yac_fdef_comp_dummy ( )
537 end subroutine yac_fdef_comp_dummy
538
539 subroutine yac_fdef_comp_dummy_instance ( yac_instance_id )
540
541 integer, intent(in) :: yac_instance_id
542
543 end subroutine yac_fdef_comp_dummy_instance
544
545 end interface yac_fdef_comp_dummy
546
547 !----------------------------------------------------------------------
551 !----------------------------------------------------------------------
552
554
555 subroutine yac_fdef_datetime ( start_datetime, end_datetime )
556
557 character(len=*), intent(in), optional :: start_datetime
558 character(len=*), intent(in), optional :: end_datetime
559
560 end subroutine yac_fdef_datetime
561
562 subroutine yac_fdef_datetime_instance ( yac_instance_id, &
563 start_datetime, &
564 end_datetime )
565
566 integer, intent(in) :: yac_instance_id
567 character(len=*), intent(in), optional :: start_datetime
568 character(len=*), intent(in), optional :: end_datetime
569
570 end subroutine yac_fdef_datetime_instance
571
572 end interface yac_fdef_datetime
573
575
576 subroutine yac_fdef_calendar( calendar )
577 integer, intent(in) :: calendar
578 end subroutine yac_fdef_calendar
579
580 end interface yac_fdef_calendar
581
583
584 subroutine yac_fget_calendar( calendar )
585 integer, intent(out) :: calendar
586 end subroutine yac_fget_calendar
587
588 end interface yac_fget_calendar
589
590 !----------------------------------------------------------------------
594 !----------------------------------------------------------------------
595
597
598 function yac_fget_start_datetime () result (start_datetime_string)
599 character(len=:), ALLOCATABLE :: start_datetime_string
600 end function yac_fget_start_datetime
601
602 function yac_fget_start_datetime_instance (yac_instance_id) &
603 result(start_datetime_string)
604 integer, intent(in) :: yac_instance_id
605 character(len=:), ALLOCATABLE :: start_datetime_string
607
608 end interface yac_fget_start_datetime
609
611
612 function yac_fget_end_datetime () result (end_datetime_string)
613 character(len=:), ALLOCATABLE :: end_datetime_string
614 end function yac_fget_end_datetime
615
616 function yac_fget_end_datetime_instance (yac_instance_id) &
617 result(end_datetime_string)
618 integer, intent(in) :: yac_instance_id
619 character(len=:), ALLOCATABLE :: end_datetime_string
621
622 end interface yac_fget_end_datetime
623
624 !----------------------------------------------------------------------
628 !----------------------------------------------------------------------
629
631
651 subroutine yac_fdef_grid_nonuniform_real ( grid_name, &
652 nbr_vertices, &
653 nbr_cells, &
654 nbr_connections, &
655 nbr_vertices_per_cell, &
656 x_vertices, &
657 y_vertices, &
658 cell_to_vertex, &
659 grid_id, &
660 use_ll_edges)
661
662 character(len=*), intent(in) :: grid_name
663 integer, intent(in) :: nbr_vertices
664 integer, intent(in) :: nbr_cells
665 integer, intent(in) :: nbr_connections
666 integer, intent(in) :: nbr_vertices_per_cell(nbr_cells)
667 real, intent(in) :: x_vertices(nbr_vertices)
668 real, intent(in) :: y_vertices(nbr_vertices)
669 integer, intent(in) :: cell_to_vertex(nbr_connections)
670 integer, intent(out) :: grid_id
671 logical, optional, intent(in) :: use_ll_edges
672
673 end subroutine yac_fdef_grid_nonuniform_real
674
694 subroutine yac_fdef_grid_nonuniform_dble ( grid_name, &
695 nbr_vertices, &
696 nbr_cells, &
697 nbr_connections, &
698 nbr_vertices_per_cell, &
699 x_vertices, &
700 y_vertices, &
701 cell_to_vertex, &
702 grid_id, &
703 use_ll_edges)
704
705 character(len=*), intent(in) :: grid_name
706 integer, intent(in) :: nbr_vertices
707 integer, intent(in) :: nbr_cells
708 integer, intent(in) :: nbr_connections
709 integer, intent(in) :: nbr_vertices_per_cell(nbr_cells)
710 double precision, intent(in) :: x_vertices(nbr_vertices)
711 double precision, intent(in) :: y_vertices(nbr_vertices)
712 integer, intent(in) :: cell_to_vertex(nbr_connections)
713 integer, intent(out) :: grid_id
714 logical, optional, intent(in) :: use_ll_edges
715
716 end subroutine yac_fdef_grid_nonuniform_dble
717
736 subroutine yac_fdef_grid_unstruct_real ( grid_name, &
737 nbr_vertices, &
738 nbr_cells, &
739 nbr_vertices_per_cell, &
740 x_vertices, &
741 y_vertices, &
742 cell_to_vertex, &
743 grid_id, &
744 use_ll_edges)
745
746 character(len=*), intent(in) :: grid_name
747 integer, intent(in) :: nbr_vertices
748 integer, intent(in) :: nbr_cells
749 integer, intent(in) :: nbr_vertices_per_cell
750 real, intent(in) :: x_vertices(nbr_vertices)
751 real, intent(in) :: y_vertices(nbr_vertices)
752 integer, intent(in) :: cell_to_vertex( &
753 nbr_vertices_per_cell,nbr_cells)
754 integer, intent(out) :: grid_id
755 logical, optional, intent(in) :: use_ll_edges
756
757 end subroutine yac_fdef_grid_unstruct_real
758
777 subroutine yac_fdef_grid_unstruct_dble ( grid_name, &
778 nbr_vertices, &
779 nbr_cells, &
780 nbr_vertices_per_cell, &
781 x_vertices, &
782 y_vertices, &
783 cell_to_vertex, &
784 grid_id, &
785 use_ll_edges)
786
787 character(len=*), intent(in) :: grid_name
788 integer, intent(in) :: nbr_vertices
789 integer, intent(in) :: nbr_cells
790 integer, intent(in) :: nbr_vertices_per_cell
791 double precision, intent(in) :: x_vertices(nbr_vertices)
792 double precision, intent(in) :: y_vertices(nbr_vertices)
793 integer, intent(in) :: cell_to_vertex( &
794 nbr_vertices_per_cell,nbr_cells)
795 integer, intent(out) :: grid_id
796 logical, optional, intent(in) :: use_ll_edges
797
798 end subroutine yac_fdef_grid_unstruct_dble
799
821 subroutine yac_fdef_grid_nonuniform_edge_real ( grid_name, &
822 nbr_vertices, &
823 nbr_cells, &
824 nbr_edges, &
825 nbr_connections, &
826 nbr_edges_per_cell, &
827 x_vertices, &
828 y_vertices, &
829 cell_to_edge, &
830 edge_to_vertex, &
831 grid_id, &
832 use_ll_edges)
833
834 character(len=*), intent(in) :: grid_name
835 integer, intent(in) :: nbr_vertices
836 integer, intent(in) :: nbr_cells
837 integer, intent(in) :: nbr_edges
838 integer, intent(in) :: nbr_connections
839 integer, intent(in) :: nbr_edges_per_cell(nbr_cells)
840 real, intent(in) :: x_vertices(nbr_vertices)
841 real, intent(in) :: y_vertices(nbr_vertices)
842 integer, intent(in) :: cell_to_edge(nbr_connections)
843 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
844 integer, intent(out) :: grid_id
845 logical, optional, intent(in) :: use_ll_edges
846
848
870 subroutine yac_fdef_grid_nonuniform_edge_dble ( grid_name, &
871 nbr_vertices, &
872 nbr_cells, &
873 nbr_edges, &
874 nbr_connections, &
875 nbr_edges_per_cell, &
876 x_vertices, &
877 y_vertices, &
878 cell_to_edge, &
879 edge_to_vertex, &
880 grid_id, &
881 use_ll_edges)
882
883 character(len=*), intent(in) :: grid_name
884 integer, intent(in) :: nbr_vertices
885 integer, intent(in) :: nbr_cells
886 integer, intent(in) :: nbr_edges
887 integer, intent(in) :: nbr_connections
888 integer, intent(in) :: nbr_edges_per_cell(nbr_cells)
889 double precision, intent(in) :: x_vertices(nbr_vertices)
890 double precision, intent(in) :: y_vertices(nbr_vertices)
891 integer, intent(in) :: cell_to_edge(nbr_connections)
892 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
893 integer, intent(out) :: grid_id
894 logical, optional, intent(in) :: use_ll_edges
895
897
918 subroutine yac_fdef_grid_unstruct_edge_real ( grid_name, &
919 nbr_vertices, &
920 nbr_cells, &
921 nbr_edges, &
922 nbr_edges_per_cell, &
923 x_vertices, &
924 y_vertices, &
925 cell_to_edge, &
926 edge_to_vertex, &
927 grid_id, &
928 use_ll_edges)
929
930 character(len=*), intent(in) :: grid_name
931 integer, intent(in) :: nbr_vertices
932 integer, intent(in) :: nbr_cells
933 integer, intent(in) :: nbr_edges
934 integer, intent(in) :: nbr_edges_per_cell
935 real, intent(in) :: x_vertices(nbr_vertices)
936 real, intent(in) :: y_vertices(nbr_vertices)
937 integer, intent(in) :: cell_to_edge( &
938 nbr_edges_per_cell,nbr_cells)
939 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
940 integer, intent(out) :: grid_id
941 logical, optional, intent(in) :: use_ll_edges
942
944
965 subroutine yac_fdef_grid_unstruct_edge_dble ( grid_name, &
966 nbr_vertices, &
967 nbr_cells, &
968 nbr_edges, &
969 nbr_edges_per_cell, &
970 x_vertices, &
971 y_vertices, &
972 cell_to_edge, &
973 edge_to_vertex, &
974 grid_id, &
975 use_ll_edges)
976
977 character(len=*), intent(in) :: grid_name
978 integer, intent(in) :: nbr_vertices
979 integer, intent(in) :: nbr_cells
980 integer, intent(in) :: nbr_edges
981 integer, intent(in) :: nbr_edges_per_cell
982 double precision, intent(in) :: x_vertices(nbr_vertices)
983 double precision, intent(in) :: y_vertices(nbr_vertices)
984 integer, intent(in) :: cell_to_edge( &
985 nbr_edges_per_cell,nbr_cells)
986 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
987 integer, intent(out) :: grid_id
988 logical, optional, intent(in) :: use_ll_edges
989
991
999 subroutine yac_fdef_grid_curve2d_real ( grid_name, &
1000 nbr_vertices, &
1001 cyclic, &
1002 x_vertices, &
1003 y_vertices, &
1004 grid_id)
1005
1006 character(len=*), intent(in) :: grid_name
1007 integer, intent(in) :: nbr_vertices(2)
1008 integer, intent(in) :: cyclic(2)
1009 real, intent(in) :: &
1010 x_vertices(nbr_vertices(1),nbr_vertices(2))
1011 real, intent(in) :: &
1012 y_vertices(nbr_vertices(1),nbr_vertices(2))
1013 integer, intent(out) :: grid_id
1014
1015 end subroutine yac_fdef_grid_curve2d_real
1016
1024 subroutine yac_fdef_grid_curve2d_dble ( grid_name, &
1025 nbr_vertices, &
1026 cyclic, &
1027 x_vertices, &
1028 y_vertices, &
1029 grid_id)
1030
1031 character(len=*), intent(in) :: grid_name
1032 integer, intent(in) :: nbr_vertices(2)
1033 integer, intent(in) :: cyclic(2)
1034 double precision, intent(in) :: &
1035 x_vertices(nbr_vertices(1),nbr_vertices(2))
1036 double precision, intent(in) :: &
1037 y_vertices(nbr_vertices(1),nbr_vertices(2))
1038 integer, intent(out) :: grid_id
1039
1040 end subroutine yac_fdef_grid_curve2d_dble
1041
1049 subroutine yac_fdef_grid_reg2d_real ( grid_name, &
1050 nbr_vertices, &
1051 cyclic, &
1052 x_vertices, &
1053 y_vertices, &
1054 grid_id)
1055
1056 character(len=*), intent(in) :: grid_name
1057 integer, intent(in) :: nbr_vertices(2)
1058 integer, intent(in) :: cyclic(2)
1059 real, intent(in) :: x_vertices(nbr_vertices(1))
1060 real, intent(in) :: y_vertices(nbr_vertices(2))
1061 integer, intent(out) :: grid_id
1062
1063 end subroutine yac_fdef_grid_reg2d_real
1064
1072 subroutine yac_fdef_grid_reg2d_dble ( grid_name, &
1073 nbr_vertices, &
1074 cyclic, &
1075 x_vertices, &
1076 y_vertices, &
1077 grid_id)
1078
1079 character(len=*), intent(in) :: grid_name
1080 integer, intent(in) :: nbr_vertices(2)
1081 integer, intent(in) :: cyclic(2)
1082 double precision, intent(in) :: x_vertices(nbr_vertices(1))
1083 double precision, intent(in) :: y_vertices(nbr_vertices(2))
1084 integer, intent(out) :: grid_id
1085
1086 end subroutine yac_fdef_grid_reg2d_dble
1087
1094 subroutine yac_fdef_grid_cloud_real ( grid_name, &
1095 nbr_points, &
1096 x_points, &
1097 y_points, &
1098 grid_id)
1099
1100 character(len=*), intent(in) :: grid_name
1101 integer, intent(in) :: nbr_points
1102 real, intent(in) :: x_points(nbr_points)
1103 real, intent(in) :: y_points(nbr_points)
1104 integer, intent(out) :: grid_id
1105
1106 end subroutine yac_fdef_grid_cloud_real
1107
1114 subroutine yac_fdef_grid_cloud_dble ( grid_name, &
1115 nbr_points, &
1116 x_points, &
1117 y_points, &
1118 grid_id)
1119
1120 character(len=*), intent(in) :: grid_name
1121 integer, intent(in) :: nbr_points
1122 double precision, intent(in) :: x_points(nbr_points)
1123 double precision, intent(in) :: y_points(nbr_points)
1124 integer, intent(out) :: grid_id
1125
1126 end subroutine yac_fdef_grid_cloud_dble
1127
1137 subroutine yac_fdef_grid_reg2d_rot_real ( grid_name, &
1138 nbr_vertices, &
1139 cyclic, &
1140 x_vertices, &
1141 y_vertices, &
1142 x_north_pole, &
1143 y_north_pole, &
1144 grid_id)
1145
1146 character(len=*), intent(in) :: grid_name
1147 integer, intent(in) :: nbr_vertices(2)
1148 integer, intent(in) :: cyclic(2)
1149 real, intent(in) :: x_vertices(nbr_vertices(1))
1150 real, intent(in) :: y_vertices(nbr_vertices(2))
1151 real, intent(in) :: x_north_pole
1152 real, intent(in) :: y_north_pole
1153 integer, intent(out) :: grid_id
1154
1155 end subroutine yac_fdef_grid_reg2d_rot_real
1156
1166 subroutine yac_fdef_grid_reg2d_rot_dble ( grid_name, &
1167 nbr_vertices, &
1168 cyclic, &
1169 x_vertices, &
1170 y_vertices, &
1171 x_north_pole, &
1172 y_north_pole, &
1173 grid_id)
1174
1175 character(len=*), intent(in) :: grid_name
1176 integer, intent(in) :: nbr_vertices(2)
1177 integer, intent(in) :: cyclic(2)
1178 double precision, intent(in) :: x_vertices(nbr_vertices(1))
1179 double precision, intent(in) :: y_vertices(nbr_vertices(2))
1180 double precision, intent(in) :: x_north_pole
1181 double precision, intent(in) :: y_north_pole
1182 integer, intent(out) :: grid_id
1183
1184 end subroutine yac_fdef_grid_reg2d_rot_dble
1185
1186 end interface yac_fdef_grid
1187
1188 !----------------------------------------------------------------------
1192 !----------------------------------------------------------------------
1193
1195
1196 subroutine yac_fdef_points_reg2d_real ( grid_id, &
1197 nbr_points, &
1198 location, &
1199 x_points_real, &
1200 y_points_real, &
1201 point_id )
1202
1203 integer, intent(in) :: grid_id
1204 integer, intent(in) :: nbr_points(2)
1205 integer, intent(in) :: location
1206 real, intent(in) :: x_points_real(nbr_points(1))
1207 real, intent(in) :: y_points_real(nbr_points(2))
1208 integer, intent(out) :: point_id
1209
1210 end subroutine yac_fdef_points_reg2d_real
1211
1212 subroutine yac_fdef_points_reg2d_dble ( grid_id, &
1213 nbr_points, &
1214 location, &
1215 x_points, &
1216 y_points, &
1217 point_id )
1218
1219 integer, intent(in) :: grid_id
1220 integer, intent(in) :: nbr_points(2)
1221 integer, intent(in) :: location
1222 double precision, intent(in) :: x_points(nbr_points(1))
1223 double precision, intent(in) :: y_points(nbr_points(2))
1224 integer, intent(out) :: point_id
1225
1226 end subroutine yac_fdef_points_reg2d_dble
1227
1228 subroutine yac_fdef_points_curve2d_real ( grid_id, &
1229 nbr_points, &
1230 location, &
1231 x_points_real, &
1232 y_points_real, &
1233 point_id )
1234
1235 integer, intent(in) :: grid_id
1236 integer, intent(in) :: nbr_points(2)
1237 integer, intent(in) :: location
1238 real, intent(in) :: &
1239 x_points_real(nbr_points(1),nbr_points(2))
1240 real, intent(in) :: &
1241 y_points_real(nbr_points(1),nbr_points(2))
1242 integer, intent(out) :: point_id
1243
1244 end subroutine yac_fdef_points_curve2d_real
1245
1246 subroutine yac_fdef_points_curve2d_dble ( grid_id, &
1247 nbr_points, &
1248 location, &
1249 x_points, &
1250 y_points, &
1251 point_id )
1252
1253 integer, intent(in) :: grid_id
1254 integer, intent(in) :: nbr_points(2)
1255 integer, intent(in) :: location
1256 double precision, intent(in) :: &
1257 x_points(nbr_points(1),nbr_points(2))
1258 double precision, intent(in) :: &
1259 y_points(nbr_points(1),nbr_points(2))
1260 integer, intent(out) :: point_id
1261
1262 end subroutine yac_fdef_points_curve2d_dble
1263
1264 subroutine yac_fdef_points_unstruct_real ( grid_id, &
1265 nbr_points, &
1266 location, &
1267 x_points_real, &
1268 y_points_real, &
1269 point_id )
1270
1271 integer, intent(in) :: grid_id
1272 integer, intent(in) :: nbr_points
1273 integer, intent(in) :: location
1274 real, intent(in) :: x_points_real(nbr_points)
1275 real, intent(in) :: y_points_real(nbr_points)
1276 integer, intent(out) :: point_id
1277
1278 end subroutine yac_fdef_points_unstruct_real
1279
1280 subroutine yac_fdef_points_unstruct_dble ( grid_id, &
1281 nbr_points, &
1282 location, &
1283 x_points, &
1284 y_points, &
1285 point_id )
1286
1287 integer, intent(in) :: grid_id
1288 integer, intent(in) :: nbr_points
1289 integer, intent(in) :: location
1290 double precision, intent(in) :: x_points(nbr_points)
1291 double precision, intent(in) :: y_points(nbr_points)
1292 integer, intent(out) :: point_id
1293
1294 end subroutine yac_fdef_points_unstruct_dble
1295
1296 subroutine yac_fdef_points_reg2d_rot_real ( grid_id, &
1297 nbr_points, &
1298 location, &
1299 x_points_real, &
1300 y_points_real, &
1301 x_north_pole_real, &
1302 y_north_pole_real, &
1303 point_id )
1304
1305 integer, intent(in) :: grid_id
1306 integer, intent(in) :: nbr_points(2)
1307 integer, intent(in) :: location
1308 real, intent(in) :: x_points_real(nbr_points(1))
1309 real, intent(in) :: y_points_real(nbr_points(2))
1310 real, intent(in) :: x_north_pole_real
1311 real, intent(in) :: y_north_pole_real
1312 integer, intent(out) :: point_id
1313
1314 end subroutine yac_fdef_points_reg2d_rot_real
1315
1316 subroutine yac_fdef_points_reg2d_rot_dble ( grid_id, &
1317 nbr_points, &
1318 location, &
1319 x_points, &
1320 y_points, &
1321 x_north_pole, &
1322 y_north_pole, &
1323 point_id )
1324
1325 integer, intent(in) :: grid_id
1326 integer, intent(in) :: nbr_points(2)
1327 integer, intent(in) :: location
1328 double precision, intent(in) :: x_points(nbr_points(1))
1329 double precision, intent(in) :: y_points(nbr_points(2))
1330 double precision, intent(in) :: x_north_pole
1331 double precision, intent(in) :: y_north_pole
1332 integer, intent(out) :: point_id
1333
1334 end subroutine yac_fdef_points_reg2d_rot_dble
1335
1336 end interface yac_fdef_points
1337
1338 !----------------------------------------------------------------------
1342 !----------------------------------------------------------------------
1343
1344 interface
1345
1346 subroutine yac_fset_global_index ( global_index, &
1347 location, &
1348 grid_id )
1349
1350 integer, intent(in) :: global_index(*)
1351 integer, intent(in) :: location
1352 integer, intent(in) :: grid_id
1353
1354 end subroutine yac_fset_global_index
1355
1356 end interface
1357
1358 interface
1359
1360 subroutine yac_fset_global_index_yac_int ( global_index, &
1361 location, &
1362 grid_id )
1363
1364 import :: yac_int_kind
1365
1366 integer(kind=YAC_INT_KIND), intent(in) :: global_index(*)
1367 integer, intent(in) :: location
1368 integer, intent(in) :: grid_id
1369
1370 end subroutine yac_fset_global_index_yac_int
1371
1372 end interface
1373
1374 !----------------------------------------------------------------------
1378 !----------------------------------------------------------------------
1379
1381
1382 subroutine yac_fset_core_imask ( is_core, &
1383 location, &
1384 grid_id )
1385
1386 integer, intent(in) :: is_core(*)
1387 integer, intent(in) :: location
1388 integer, intent(in) :: grid_id
1389
1390 end subroutine yac_fset_core_imask
1391
1392 subroutine yac_fset_core_lmask ( is_core, &
1393 location, &
1394 grid_id )
1395
1396 logical, intent(in) :: is_core(*)
1397 integer, intent(in) :: location
1398 integer, intent(in) :: grid_id
1399
1400 end subroutine yac_fset_core_lmask
1401
1402 end interface yac_fset_core_mask
1403
1404 !----------------------------------------------------------------------
1408 !----------------------------------------------------------------------
1409
1411
1412 subroutine yac_fset_imask ( is_valid, points_id )
1413
1414 integer, intent(in) :: is_valid(*)
1415 integer, intent(in) :: points_id
1416
1417 end subroutine yac_fset_imask
1418
1419 subroutine yac_fset_lmask ( is_valid, points_id )
1420
1421 logical, intent(in) :: is_valid(*)
1422 integer, intent(in) :: points_id
1423
1424 end subroutine yac_fset_lmask
1425
1426 end interface
1427
1428 !----------------------------------------------------------------------
1432 !----------------------------------------------------------------------
1433
1435
1436 subroutine yac_fdef_imask ( grid_id, &
1437 nbr_points, &
1438 location, &
1439 is_valid, &
1440 mask_id )
1441
1442 integer, intent(in) :: grid_id
1443 integer, intent(in) :: nbr_points
1444 integer, intent(in) :: location
1445 integer, intent(in) :: is_valid(*)
1448 integer, intent(out) :: mask_id
1449
1450 end subroutine yac_fdef_imask
1451
1452 subroutine yac_fdef_lmask ( grid_id, &
1453 nbr_points, &
1454 location, &
1455 is_valid, &
1456 mask_id )
1457
1458 integer, intent(in) :: grid_id
1459 integer, intent(in) :: nbr_points
1460 integer, intent(in) :: location
1461 logical, intent(in) :: is_valid(*)
1464 integer, intent(out) :: mask_id
1465
1466 end subroutine yac_fdef_lmask
1467
1468 end interface
1469
1471
1472 subroutine yac_fdef_imask_named ( grid_id, &
1473 nbr_points, &
1474 location, &
1475 is_valid, &
1476 name, &
1477 mask_id )
1478
1479 integer, intent(in) :: grid_id
1480 integer, intent(in) :: nbr_points
1481 integer, intent(in) :: location
1482 integer, intent(in) :: is_valid(*)
1485 character(len=*), intent(in) :: name
1486 integer, intent(out) :: mask_id
1487
1488 end subroutine yac_fdef_imask_named
1489
1490 subroutine yac_fdef_lmask_named ( grid_id, &
1491 nbr_points, &
1492 location, &
1493 is_valid, &
1494 name, &
1495 mask_id )
1496
1497 integer, intent(in) :: grid_id
1498 integer, intent(in) :: nbr_points
1499 integer, intent(in) :: location
1500 logical, intent(in) :: is_valid(*)
1503 character(len=*), intent(in) :: name
1504 integer, intent(out) :: mask_id
1505
1506 end subroutine yac_fdef_lmask_named
1507
1508 end interface
1509
1510 !----------------------------------------------------------------------
1515 !----------------------------------------------------------------------
1516
1517 interface
1518
1519 subroutine yac_fdef_field ( field_name, &
1520 component_id, &
1521 point_ids, &
1522 num_pointsets, &
1523 collection_size,&
1524 timestep, &
1525 time_unit, &
1526 field_id )
1527
1528 character(len=*), intent (in) :: field_name
1529 integer, intent (in) :: component_id
1530 integer, intent (in) :: point_ids(*)
1531 integer, intent (in) :: num_pointsets
1532 integer, intent (in) :: collection_size
1533 character(len=*), intent (in) :: timestep
1534 integer, intent (in) :: time_unit
1535 integer, intent (out) :: field_id
1536
1537 end subroutine yac_fdef_field
1538
1539 end interface
1540
1541 !----------------------------------------------------------------------
1546 !----------------------------------------------------------------------
1547
1548 interface
1549
1550 subroutine yac_fdef_field_mask ( field_name, &
1551 component_id, &
1552 point_ids, &
1553 mask_ids, &
1554 num_pointsets, &
1555 collection_size,&
1556 timestep, &
1557 time_unit, &
1558 field_id )
1559
1560 character(len=*), intent (in) :: field_name
1561 integer, intent (in) :: component_id
1562 integer, intent (in) :: point_ids(*)
1563 integer, intent (in) :: mask_ids(*)
1564 integer, intent (in) :: num_pointsets
1565 integer, intent (in) :: collection_size
1566 character(len=*), intent (in) :: timestep
1567 integer, intent (in) :: time_unit
1568 integer, intent (out) :: field_id
1569
1570 end subroutine yac_fdef_field_mask
1571
1572 end interface
1573
1574 !----------------------------------------------------------------------
1578 !----------------------------------------------------------------------
1579
1580 interface
1581
1582 subroutine yac_fcheck_field_dimensions( field_id, &
1583 collection_size, &
1584 num_interp_fields, &
1585 interp_field_sizes )
1586
1587 integer, intent (in) :: field_id
1588 integer, intent (in) :: collection_size
1589 integer, intent (in) :: num_interp_fields
1591 integer, intent (in) :: interp_field_sizes(num_interp_fields)
1593
1594 end subroutine yac_fcheck_field_dimensions
1595
1596 end interface
1597
1598 !----------------------------------------------------------------------
1602 !----------------------------------------------------------------------
1603
1604 interface
1605
1606 subroutine yac_fcheck_src_field_buffer_size( field_id, &
1607 collection_size, &
1608 src_field_buffer_size )
1609
1610 integer, intent (in) :: field_id
1611 integer, intent (in) :: collection_size
1612 integer, intent (in) :: src_field_buffer_size
1614
1616
1618 num_src_fields, &
1619 collection_size, &
1620 src_field_buffer_sizes )
1621
1622 integer, intent (in) :: field_id
1623 integer, intent (in) :: num_src_fields
1624 integer, intent (in) :: collection_size
1625 integer, intent (in) :: src_field_buffer_sizes(num_src_fields)
1626
1628
1630
1631 end interface
1632
1633 !----------------------------------------------------------------------
1638 !----------------------------------------------------------------------
1639
1640 interface
1641
1672 field_id, &
1673 frac_mask_fallback_value, &
1674 scaling_factor, &
1675 scaling_summand, &
1676 num_fixed_values, &
1677 fixed_values, &
1678 num_tgt_per_fixed_value, &
1679 tgt_idx_fixed, &
1680 num_wgt_tgt, &
1681 wgt_tgt_idx, &
1682 num_src_per_tgt, &
1683 weights, &
1684 src_field_idx, &
1685 src_idx, &
1686 num_src_fields, &
1687 src_field_buffer_sizes )
1688
1689 integer, intent (in) :: field_id
1690 double precision, intent(out) :: frac_mask_fallback_value
1691 double precision, intent(out) :: scaling_factor
1692 double precision, intent(out) :: scaling_summand
1693 integer, intent(out) :: num_fixed_values
1694 double precision, allocatable, intent(out) :: fixed_values(:)
1695 integer, allocatable, intent(out) :: num_tgt_per_fixed_value(:)
1696 integer, allocatable, intent(out) :: tgt_idx_fixed(:)
1697 integer, intent(out) :: num_wgt_tgt
1698 integer, allocatable, intent(out) :: wgt_tgt_idx(:)
1699 integer, allocatable, intent(out) :: num_src_per_tgt(:)
1700 double precision, allocatable, intent(out) :: weights(:)
1701 integer, allocatable, intent(out) :: src_field_idx(:)
1702 integer, allocatable, intent(out) :: src_idx(:)
1703 integer, intent(out) :: num_src_fields
1704 integer, allocatable, intent(out) :: src_field_buffer_sizes(:)
1706
1735 field_id, &
1736 frac_mask_fallback_value, &
1737 scaling_factor, &
1738 scaling_summand, &
1739 num_fixed_values, &
1740 fixed_values, &
1741 num_tgt_per_fixed_value, &
1742 tgt_idx_fixed, &
1743 src_indptr, &
1744 weights, &
1745 src_field_idx, &
1746 src_idx, &
1747 num_src_fields, &
1748 src_field_buffer_sizes )
1749
1750 integer, intent (in) :: field_id
1751 double precision, intent(out) :: frac_mask_fallback_value
1752 double precision, intent(out) :: scaling_factor
1753 double precision, intent(out) :: scaling_summand
1754 integer, intent(out) :: num_fixed_values
1755 double precision, allocatable, intent(out) :: fixed_values(:)
1756 integer, allocatable, intent(out) :: num_tgt_per_fixed_value(:)
1757 integer, allocatable, intent(out) :: tgt_idx_fixed(:)
1758 integer, allocatable, intent(out) :: src_indptr(:)
1759 double precision, allocatable, intent(out) :: weights(:)
1760 integer, allocatable, intent(out) :: src_field_idx(:)
1761 integer, allocatable, intent(out) :: src_idx(:)
1762 integer, intent(out) :: num_src_fields
1763 integer, allocatable, intent(out) :: src_field_buffer_sizes(:)
1765 end interface
1766
1767 !----------------------------------------------------------------------
1771 !----------------------------------------------------------------------
1772
1773 interface yac_fput
1774
1775 subroutine yac_fput_real ( field_id, &
1776 nbr_hor_points, &
1777 nbr_pointsets, &
1778 collection_size, &
1779 send_field, &
1780 info, &
1781 ierror )
1782
1783 integer, intent (in) :: field_id
1784 integer, intent (in) :: nbr_hor_points
1785 integer, intent (in) :: nbr_pointsets
1786 integer, intent (in) :: collection_size
1787 real, intent (in) :: send_field(nbr_hor_points, &
1788 nbr_pointsets, &
1789 collection_size)
1790
1791 integer, intent (out) :: info
1792 integer, intent (out) :: ierror
1793
1794 end subroutine yac_fput_real
1795
1796 subroutine yac_fput_real_ptr ( field_id, &
1797 nbr_pointsets, &
1798 collection_size, &
1799 send_field, &
1800 info, &
1801 ierror )
1802
1803 import :: yac_real_ptr
1804
1805 integer, intent (in) :: field_id
1806 integer, intent (in) :: nbr_pointsets
1807 integer, intent (in) :: collection_size
1808 type(yac_real_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
1809
1810 integer, intent (out) :: info
1811 integer, intent (out) :: ierror
1812
1813 end subroutine yac_fput_real_ptr
1814
1815 subroutine yac_fput_single_pointset_real ( field_id, &
1816 nbr_hor_points, &
1817 collection_size, &
1818 send_field, &
1819 info, &
1820 ierror )
1821
1822 integer, intent (in) :: field_id
1823 integer, intent (in) :: nbr_hor_points
1824 integer, intent (in) :: collection_size
1825 real, intent (in) :: send_field(nbr_hor_points, collection_size)
1826
1827 integer, intent (out) :: info
1828 integer, intent (out) :: ierror
1829
1830 end subroutine yac_fput_single_pointset_real
1831
1832 subroutine yac_fput_dble ( field_id, &
1833 nbr_hor_points, &
1834 nbr_pointsets, &
1835 collection_size, &
1836 send_field, &
1837 info, &
1838 ierror )
1839
1840 integer, intent (in) :: field_id
1841 integer, intent (in) :: nbr_hor_points
1842 integer, intent (in) :: nbr_pointsets
1843 integer, intent (in) :: collection_size
1844 double precision, intent (in) :: send_field(nbr_hor_points, nbr_pointsets, collection_size)
1845
1846 integer, intent (out) :: info
1847 integer, intent (out) :: ierror
1848
1849 end subroutine yac_fput_dble
1850
1851 subroutine yac_fput_dble_ptr ( field_id, &
1852 nbr_pointsets, &
1853 collection_size, &
1854 send_field, &
1855 info, &
1856 ierror )
1857
1858 import :: yac_dble_ptr
1859
1860 integer, intent (in) :: field_id
1861 integer, intent (in) :: nbr_pointsets
1862 integer, intent (in) :: collection_size
1863 type(yac_dble_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
1864
1865 integer, intent (out) :: info
1866 integer, intent (out) :: ierror
1867
1868 end subroutine yac_fput_dble_ptr
1869
1870 subroutine yac_fput_single_pointset_dble ( field_id, &
1871 nbr_hor_points, &
1872 collection_size, &
1873 send_field, &
1874 info, &
1875 ierror )
1876
1877 integer, intent (in) :: field_id
1878 integer, intent (in) :: nbr_hor_points
1879 integer, intent (in) :: collection_size
1880 double precision, intent (in) :: send_field(nbr_hor_points, collection_size)
1881
1882 integer, intent (out) :: info
1883 integer, intent (out) :: ierror
1884
1885 end subroutine yac_fput_single_pointset_dble
1886
1887 subroutine yac_fput_frac_real ( field_id, &
1888 nbr_hor_points, &
1889 nbr_pointsets, &
1890 collection_size, &
1891 send_field, &
1892 send_frac_mask, &
1893 info, &
1894 ierror )
1895
1896 integer, intent (in) :: field_id
1897 integer, intent (in) :: nbr_hor_points
1898 integer, intent (in) :: nbr_pointsets
1899 integer, intent (in) :: collection_size
1900 real, intent (in) :: send_field(nbr_hor_points, &
1901 nbr_pointsets, &
1902 collection_size)
1903
1904 real, intent (in) :: send_frac_mask(nbr_hor_points, &
1905 nbr_pointsets, &
1906 collection_size)
1907
1908 integer, intent (out) :: info
1909 integer, intent (out) :: ierror
1910
1911 end subroutine yac_fput_frac_real
1912
1913 subroutine yac_fput_frac_real_ptr ( field_id, &
1914 nbr_pointsets, &
1915 collection_size, &
1916 send_field, &
1917 send_frac_mask, &
1918 info, &
1919 ierror )
1920
1921 import :: yac_real_ptr
1922
1923 integer, intent (in) :: field_id
1924 integer, intent (in) :: nbr_pointsets
1925 integer, intent (in) :: collection_size
1926 type(yac_real_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
1927
1928 type(yac_real_ptr), intent (in) :: send_frac_mask(nbr_pointsets, collection_size)
1929
1930 integer, intent (out) :: info
1931 integer, intent (out) :: ierror
1932
1933 end subroutine yac_fput_frac_real_ptr
1934
1935 subroutine yac_fput_frac_single_pointset_real ( field_id, &
1936 nbr_hor_points, &
1937 collection_size, &
1938 send_field, &
1939 send_frac_mask, &
1940 info, &
1941 ierror )
1942
1943 integer, intent (in) :: field_id
1944 integer, intent (in) :: nbr_hor_points
1945 integer, intent (in) :: collection_size
1946 real, intent (in) :: send_field(nbr_hor_points, collection_size)
1947
1948 real, intent (in) :: send_frac_mask(nbr_hor_points, collection_size)
1949
1950 integer, intent (out) :: info
1951 integer, intent (out) :: ierror
1952
1954
1955 subroutine yac_fput_frac_dble ( field_id, &
1956 nbr_hor_points, &
1957 nbr_pointsets, &
1958 collection_size, &
1959 send_field, &
1960 send_frac_mask, &
1961 info, &
1962 ierror )
1963
1964 integer, intent (in) :: field_id
1965 integer, intent (in) :: nbr_hor_points
1966 integer, intent (in) :: nbr_pointsets
1967 integer, intent (in) :: collection_size
1968 double precision, intent (in) :: send_field(nbr_hor_points, nbr_pointsets, collection_size)
1969
1970 double precision, intent (in) :: send_frac_mask(nbr_hor_points, nbr_pointsets, collection_size)
1971
1972 integer, intent (out) :: info
1973 integer, intent (out) :: ierror
1974
1975 end subroutine yac_fput_frac_dble
1976
1977 subroutine yac_fput_frac_dble_ptr ( field_id, &
1978 nbr_pointsets, &
1979 collection_size, &
1980 send_field, &
1981 send_frac_mask, &
1982 info, &
1983 ierror )
1984
1985 import :: yac_dble_ptr
1986
1987 integer, intent (in) :: field_id
1988 integer, intent (in) :: nbr_pointsets
1989 integer, intent (in) :: collection_size
1990 type(yac_dble_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
1991
1992 type(yac_dble_ptr), intent (in) :: send_frac_mask(nbr_pointsets, collection_size)
1993
1994 integer, intent (out) :: info
1995 integer, intent (out) :: ierror
1996
1997 end subroutine yac_fput_frac_dble_ptr
1998
1999 subroutine yac_fput_frac_single_pointset_dble ( field_id, &
2000 nbr_hor_points, &
2001 collection_size, &
2002 send_field, &
2003 send_frac_mask, &
2004 info, &
2005 ierror )
2006
2007 integer, intent (in) :: field_id
2008 integer, intent (in) :: nbr_hor_points
2009 integer, intent (in) :: collection_size
2010 double precision, intent (in) :: send_field(nbr_hor_points, collection_size)
2011
2012 double precision, intent (in) :: send_frac_mask(nbr_hor_points, collection_size)
2013
2014 integer, intent (out) :: info
2015 integer, intent (out) :: ierror
2016
2018
2019 end interface yac_fput
2020
2021 !----------------------------------------------------------------------
2025 !----------------------------------------------------------------------
2026
2027 interface yac_fget
2028
2029 subroutine yac_fget_real ( field_id, &
2030 nbr_hor_points, &
2031 collection_size, &
2032 recv_field, &
2033 info, &
2034 ierror )
2035
2036 integer, intent (in) :: field_id
2037 integer, intent (in) :: nbr_hor_points
2038 integer, intent (in) :: collection_size
2039 real, intent (inout) :: recv_field(nbr_hor_points, collection_size)
2040 integer, intent (out) :: info
2041 integer, intent (out) :: ierror
2042
2043 end subroutine yac_fget_real
2044
2045 subroutine yac_fget_real_ptr ( field_id, &
2046 collection_size, &
2047 recv_field, &
2048 info, &
2049 ierror )
2050
2051 import :: yac_real_ptr
2052
2053 integer, intent (in) :: field_id
2054 integer, intent (in) :: collection_size
2055 type(yac_real_ptr) :: recv_field(collection_size)
2056 integer, intent (out) :: info
2057 integer, intent (out) :: ierror
2058
2059 end subroutine yac_fget_real_ptr
2060
2061 subroutine yac_fget_dble ( field_id, &
2062 nbr_hor_points, &
2063 collection_size, &
2064 recv_field, &
2065 info, &
2066 ierror )
2067
2068 integer, intent (in) :: field_id
2069 integer, intent (in) :: nbr_hor_points
2070 integer, intent (in) :: collection_size
2071 double precision, intent (inout) :: &
2072 recv_field(nbr_hor_points, collection_size)
2073 integer, intent (out) :: info
2074 integer, intent (out) :: ierror
2075
2076 end subroutine yac_fget_dble
2077
2078 subroutine yac_fget_dble_ptr ( field_id, &
2079 collection_size, &
2080 recv_field, &
2081 info, &
2082 ierror )
2083
2084 import :: yac_dble_ptr
2085
2086 integer, intent (in) :: field_id
2087 integer, intent (in) :: collection_size
2088 type(yac_dble_ptr) :: recv_field(collection_size)
2089 integer, intent (out) :: info
2090 integer, intent (out) :: ierror
2091
2092 end subroutine yac_fget_dble_ptr
2093
2094 end interface yac_fget
2095
2096 !----------------------------------------------------------------------
2100 !----------------------------------------------------------------------
2101
2103
2104 subroutine yac_fget_raw_real ( field_id, &
2105 src_field_buffer_size, &
2106 collection_size, &
2107 src_field_buffer, &
2108 info, &
2109 ierror )
2110
2111 integer, intent (in) :: field_id
2112 integer, intent (in) :: src_field_buffer_size
2114 integer, intent (in) :: collection_size
2115 real, intent (out) :: &
2116 src_field_buffer(src_field_buffer_size, collection_size)
2117
2118 integer, intent (out) :: info
2119 integer, intent (out) :: ierror
2120
2121 end subroutine yac_fget_raw_real
2122
2123 subroutine yac_fget_raw_real_ptr ( field_id, &
2124 num_src_fields, &
2125 collection_size, &
2126 src_field_buffer, &
2127 info, &
2128 ierror )
2129
2130 import :: yac_real_ptr
2131
2132 integer, intent (in) :: field_id
2133 integer, intent (in) :: num_src_fields
2134 integer, intent (in) :: collection_size
2135 type(yac_real_ptr), intent(inout) :: &
2136 src_field_buffer(num_src_fields, collection_size)
2137
2138 integer, intent (out) :: info
2139 integer, intent (out) :: ierror
2140
2141 end subroutine yac_fget_raw_real_ptr
2142
2143 subroutine yac_fget_raw_dble ( field_id, &
2144 src_field_buffer_size, &
2145 collection_size, &
2146 src_field_buffer, &
2147 info, &
2148 ierror )
2149
2150 integer, intent (in) :: field_id
2151 integer, intent (in) :: src_field_buffer_size
2153 integer, intent (in) :: collection_size
2154 double precision, intent (out) :: &
2155 src_field_buffer(src_field_buffer_size, collection_size)
2156
2157 integer, intent (out) :: info
2158 integer, intent (out) :: ierror
2159
2160 end subroutine yac_fget_raw_dble
2161
2162 subroutine yac_fget_raw_dble_ptr ( field_id, &
2163 num_src_fields, &
2164 collection_size, &
2165 src_field_buffer, &
2166 info, &
2167 ierror )
2168
2169 import :: yac_dble_ptr
2170
2171 integer, intent (in) :: field_id
2172 integer, intent (in) :: num_src_fields
2173 integer, intent (in) :: collection_size
2174 type(yac_dble_ptr), intent(inout) :: &
2175 src_field_buffer(num_src_fields, collection_size)
2176
2177 integer, intent (out) :: info
2178 integer, intent (out) :: ierror
2179
2180 end subroutine yac_fget_raw_dble_ptr
2181
2182 subroutine yac_fget_raw_frac_real ( field_id, &
2183 src_field_buffer_size, &
2184 collection_size, &
2185 src_field_buffer, &
2186 src_frac_mask_buffer, &
2187 info, &
2188 ierror )
2189
2190 integer, intent (in) :: field_id
2191 integer, intent (in) :: src_field_buffer_size
2193 integer, intent (in) :: collection_size
2194 real, intent (out) :: &
2195 src_field_buffer(src_field_buffer_size, collection_size)
2196
2197 real, intent (out) :: &
2198 src_frac_mask_buffer(src_field_buffer_size, collection_size)
2199
2200 integer, intent (out) :: info
2201 integer, intent (out) :: ierror
2202
2203 end subroutine yac_fget_raw_frac_real
2204
2205 subroutine yac_fget_raw_frac_real_ptr ( field_id, &
2206 num_src_fields, &
2207 collection_size, &
2208 src_field_buffer, &
2209 src_frac_mask_buffer, &
2210 info, &
2211 ierror )
2212
2213 import :: yac_real_ptr
2214
2215 integer, intent (in) :: field_id
2216 integer, intent (in) :: num_src_fields
2217 integer, intent (in) :: collection_size
2218 type(yac_real_ptr), intent(inout) :: &
2219 src_field_buffer(num_src_fields, collection_size)
2220
2221 type(yac_real_ptr), intent(inout) :: &
2222 src_frac_mask_buffer(num_src_fields, collection_size)
2223
2224 integer, intent (out) :: info
2225 integer, intent (out) :: ierror
2226
2227 end subroutine yac_fget_raw_frac_real_ptr
2228
2229 subroutine yac_fget_raw_frac_dble ( field_id, &
2230 src_field_buffer_size, &
2231 collection_size, &
2232 src_field_buffer, &
2233 src_frac_mask_buffer, &
2234 info, &
2235 ierror )
2236
2237 integer, intent (in) :: field_id
2238 integer, intent (in) :: src_field_buffer_size
2240 integer, intent (in) :: collection_size
2241 double precision, intent (out) :: &
2242 src_field_buffer(src_field_buffer_size, collection_size)
2243
2244 double precision, intent (out) :: &
2245 src_frac_mask_buffer(src_field_buffer_size, collection_size)
2246
2247 integer, intent (out) :: info
2248 integer, intent (out) :: ierror
2249
2250 end subroutine yac_fget_raw_frac_dble
2251
2252 subroutine yac_fget_raw_frac_dble_ptr ( field_id, &
2253 num_src_fields, &
2254 collection_size, &
2255 src_field_buffer, &
2256 src_frac_mask_buffer, &
2257 info, &
2258 ierror )
2259
2260 import :: yac_dble_ptr
2261
2262 integer, intent (in) :: field_id
2263 integer, intent (in) :: num_src_fields
2264 integer, intent (in) :: collection_size
2265 type(yac_dble_ptr), intent(inout) :: &
2266 src_field_buffer(num_src_fields, collection_size)
2267
2268 type(yac_dble_ptr), intent(inout) :: &
2269 src_frac_mask_buffer(num_src_fields, collection_size)
2270
2271 integer, intent (out) :: info
2272 integer, intent (out) :: ierror
2273
2274 end subroutine yac_fget_raw_frac_dble_ptr
2275
2276 end interface yac_fget_raw
2277
2278 !----------------------------------------------------------------------
2282 !----------------------------------------------------------------------
2283
2285
2286 subroutine yac_fget_async_dble_ptr ( field_id, &
2287 collection_size, &
2288 recv_field, &
2289 info, &
2290 ierror )
2291
2292 import :: yac_dble_ptr
2293
2294 integer, intent (in) :: field_id
2295 integer, intent (in) :: collection_size
2296 type(yac_dble_ptr) :: recv_field(collection_size)
2297 integer, intent (out) :: info
2298 integer, intent (out) :: ierror
2299
2300 end subroutine yac_fget_async_dble_ptr
2301
2302 end interface yac_fget_async
2303
2304 !----------------------------------------------------------------------
2309 !----------------------------------------------------------------------
2310
2312
2313 subroutine yac_fget_raw_async_dble_ptr ( field_id, &
2314 num_src_fields, &
2315 collection_size, &
2316 src_field_buffer, &
2317 info, &
2318 ierror )
2319
2320 import :: yac_dble_ptr
2321
2322 integer, intent (in) :: field_id
2323 integer, intent (in) :: num_src_fields
2324 integer, intent (in) :: collection_size
2325 type(yac_dble_ptr), intent(inout) :: &
2326 src_field_buffer(num_src_fields, collection_size)
2327
2328 integer, intent (out) :: info
2329 integer, intent (out) :: ierror
2330
2331 end subroutine yac_fget_raw_async_dble_ptr
2332
2333 subroutine yac_fget_raw_frac_async_dble_ptr ( field_id, &
2334 num_src_fields, &
2335 collection_size, &
2336 src_field_buffer, &
2337 src_frac_mask_buffer, &
2338 info, &
2339 ierror )
2340
2341 import :: yac_dble_ptr
2342
2343 integer, intent (in) :: field_id
2344 integer, intent (in) :: num_src_fields
2345 integer, intent (in) :: collection_size
2346 type(yac_dble_ptr), intent(inout) :: &
2347 src_field_buffer(num_src_fields, collection_size)
2348
2349 type(yac_dble_ptr), intent(inout) :: &
2350 src_frac_mask_buffer(num_src_fields, collection_size)
2351
2352 integer, intent (out) :: info
2353 integer, intent (out) :: ierror
2354
2356
2357 end interface yac_fget_raw_async
2358
2359 !----------------------------------------------------------------------
2363 !----------------------------------------------------------------------
2364
2366
2367 subroutine yac_fexchange_real ( send_field_id, &
2368 recv_field_id, &
2369 send_nbr_hor_points, &
2370 send_nbr_pointsets, &
2371 recv_nbr_hor_points, &
2372 collection_size, &
2373 send_field, &
2374 recv_field, &
2375 send_info, &
2376 recv_info, &
2377 ierror )
2378
2379 integer, intent (in) :: send_field_id
2380 integer, intent (in) :: recv_field_id
2381 integer, intent (in) :: send_nbr_hor_points
2382 integer, intent (in) :: send_nbr_pointsets
2383 integer, intent (in) :: recv_nbr_hor_points
2384 integer, intent (in) :: collection_size
2385 real, intent (in) :: send_field(send_nbr_hor_points, &
2386 send_nbr_pointsets, &
2387 collection_size)
2388
2389 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2390 collection_size)
2391
2392 integer, intent (out) :: send_info
2393 integer, intent (out) :: recv_info
2394 integer, intent (out) :: ierror
2395
2396 end subroutine yac_fexchange_real
2397
2398 subroutine yac_fexchange_real_ptr ( send_field_id, &
2399 recv_field_id, &
2400 send_nbr_pointsets, &
2401 collection_size, &
2402 send_field, &
2403 recv_field, &
2404 send_info, &
2405 recv_info, &
2406 ierror )
2407
2408 import :: yac_real_ptr
2409
2410 integer, intent (in) :: send_field_id
2411 integer, intent (in) :: recv_field_id
2412 integer, intent (in) :: send_nbr_pointsets
2413 integer, intent (in) :: collection_size
2414 type(yac_real_ptr), intent (in) :: &
2415 send_field(send_nbr_pointsets, &
2416 collection_size)
2417
2418 type(yac_real_ptr) :: recv_field(collection_size)
2419
2420 integer, intent (out) :: send_info
2421 integer, intent (out) :: recv_info
2422 integer, intent (out) :: ierror
2423
2424 end subroutine yac_fexchange_real_ptr
2425
2426 subroutine yac_fexchange_single_pointset_real ( send_field_id, &
2427 recv_field_id, &
2428 send_nbr_hor_points, &
2429 recv_nbr_hor_points, &
2430 collection_size, &
2431 send_field, &
2432 recv_field, &
2433 send_info, &
2434 recv_info, &
2435 ierror )
2436
2437 integer, intent (in) :: send_field_id
2438 integer, intent (in) :: recv_field_id
2439 integer, intent (in) :: send_nbr_hor_points
2440 integer, intent (in) :: recv_nbr_hor_points
2441 integer, intent (in) :: collection_size
2442 real, intent (in) :: send_field(send_nbr_hor_points, &
2443 collection_size)
2444
2445 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2446 collection_size)
2447
2448 integer, intent (out) :: send_info
2449 integer, intent (out) :: recv_info
2450 integer, intent (out) :: ierror
2451
2453
2454 subroutine yac_fexchange_dble ( send_field_id, &
2455 recv_field_id, &
2456 send_nbr_hor_points, &
2457 send_nbr_pointsets, &
2458 recv_nbr_hor_points, &
2459 collection_size, &
2460 send_field, &
2461 recv_field, &
2462 send_info, &
2463 recv_info, &
2464 ierror )
2465
2466 integer, intent (in) :: send_field_id
2467 integer, intent (in) :: recv_field_id
2468 integer, intent (in) :: send_nbr_hor_points
2469 integer, intent (in) :: send_nbr_pointsets
2470 integer, intent (in) :: recv_nbr_hor_points
2471 integer, intent (in) :: collection_size
2472 double precision, intent (in) :: &
2473 send_field(send_nbr_hor_points, &
2474 send_nbr_pointsets, &
2475 collection_size)
2476
2477 double precision, intent (inout):: &
2478 recv_field(recv_nbr_hor_points, &
2479 collection_size)
2480
2481 integer, intent (out) :: send_info
2482 integer, intent (out) :: recv_info
2483 integer, intent (out) :: ierror
2484
2485 end subroutine yac_fexchange_dble
2486
2487 subroutine yac_fexchange_dble_ptr ( send_field_id, &
2488 recv_field_id, &
2489 send_nbr_pointsets, &
2490 collection_size, &
2491 send_field, &
2492 recv_field, &
2493 send_info, &
2494 recv_info, &
2495 ierror )
2496
2497 import :: yac_dble_ptr
2498
2499 integer, intent (in) :: send_field_id
2500 integer, intent (in) :: recv_field_id
2501 integer, intent (in) :: send_nbr_pointsets
2502 integer, intent (in) :: collection_size
2503 type(yac_dble_ptr), intent (in) :: &
2504 send_field(send_nbr_pointsets, &
2505 collection_size)
2506
2507 type(yac_dble_ptr) :: recv_field(collection_size)
2508
2509 integer, intent (out) :: send_info
2510 integer, intent (out) :: recv_info
2511 integer, intent (out) :: ierror
2512
2513 end subroutine yac_fexchange_dble_ptr
2514
2515 subroutine yac_fexchange_single_pointset_dble ( send_field_id, &
2516 recv_field_id, &
2517 send_nbr_hor_points, &
2518 recv_nbr_hor_points, &
2519 collection_size, &
2520 send_field, &
2521 recv_field, &
2522 send_info, &
2523 recv_info, &
2524 ierror )
2525
2526 integer, intent (in) :: send_field_id
2527 integer, intent (in) :: recv_field_id
2528 integer, intent (in) :: send_nbr_hor_points
2529 integer, intent (in) :: recv_nbr_hor_points
2530 integer, intent (in) :: collection_size
2531 double precision, intent (in) :: &
2532 send_field(send_nbr_hor_points, &
2533 collection_size)
2534
2535 double precision, intent (inout):: &
2536 recv_field(recv_nbr_hor_points, &
2537 collection_size)
2538
2539 integer, intent (out) :: send_info
2540 integer, intent (out) :: recv_info
2541 integer, intent (out) :: ierror
2542
2544
2545 subroutine yac_fexchange_frac_real ( send_field_id, &
2546 recv_field_id, &
2547 send_nbr_hor_points, &
2548 send_nbr_pointsets, &
2549 recv_nbr_hor_points, &
2550 collection_size, &
2551 send_field, &
2552 send_frac_mask, &
2553 recv_field, &
2554 send_info, &
2555 recv_info, &
2556 ierror )
2557
2558 integer, intent (in) :: send_field_id
2559 integer, intent (in) :: recv_field_id
2560 integer, intent (in) :: send_nbr_hor_points
2561 integer, intent (in) :: send_nbr_pointsets
2562 integer, intent (in) :: recv_nbr_hor_points
2563 integer, intent (in) :: collection_size
2564 real, intent (in) :: send_field(send_nbr_hor_points, &
2565 send_nbr_pointsets, &
2566 collection_size)
2567
2568 real, intent (in) :: send_frac_mask(send_nbr_hor_points, &
2569 send_nbr_pointsets, &
2570 collection_size)
2571
2572 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2573 collection_size)
2574
2575 integer, intent (out) :: send_info
2576 integer, intent (out) :: recv_info
2577 integer, intent (out) :: ierror
2578
2579 end subroutine yac_fexchange_frac_real
2580
2581 subroutine yac_fexchange_frac_real_ptr ( send_field_id, &
2582 recv_field_id, &
2583 send_nbr_pointsets, &
2584 collection_size, &
2585 send_field, &
2586 send_frac_mask, &
2587 recv_field, &
2588 send_info, &
2589 recv_info, &
2590 ierror )
2591
2592 import :: yac_real_ptr
2593
2594 integer, intent (in) :: send_field_id
2595 integer, intent (in) :: recv_field_id
2596 integer, intent (in) :: send_nbr_pointsets
2597 integer, intent (in) :: collection_size
2598 type(yac_real_ptr), intent (in) :: &
2599 send_field(send_nbr_pointsets, &
2600 collection_size)
2601
2602 type(yac_real_ptr), intent (in) :: &
2603 send_frac_mask(send_nbr_pointsets, &
2604 collection_size)
2605
2606 type(yac_real_ptr) :: recv_field(collection_size)
2607
2608 integer, intent (out) :: send_info
2609 integer, intent (out) :: recv_info
2610 integer, intent (out) :: ierror
2611
2612 end subroutine yac_fexchange_frac_real_ptr
2613
2614 subroutine yac_fexchange_frac_single_pointset_real ( send_field_id, &
2615 recv_field_id, &
2616 send_nbr_hor_points, &
2617 recv_nbr_hor_points, &
2618 collection_size, &
2619 send_field, &
2620 send_frac_mask, &
2621 recv_field, &
2622 send_info, &
2623 recv_info, &
2624 ierror )
2625
2626 integer, intent (in) :: send_field_id
2627 integer, intent (in) :: recv_field_id
2628 integer, intent (in) :: send_nbr_hor_points
2629 integer, intent (in) :: recv_nbr_hor_points
2630 integer, intent (in) :: collection_size
2631 real, intent (in) :: send_field(send_nbr_hor_points, &
2632 collection_size)
2633
2634 real, intent (in) :: send_frac_mask(send_nbr_hor_points, &
2635 collection_size)
2636
2637 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2638 collection_size)
2639
2640 integer, intent (out) :: send_info
2641 integer, intent (out) :: recv_info
2642 integer, intent (out) :: ierror
2643
2645
2646 subroutine yac_fexchange_frac_dble ( send_field_id, &
2647 recv_field_id, &
2648 send_nbr_hor_points, &
2649 send_nbr_pointsets, &
2650 recv_nbr_hor_points, &
2651 collection_size, &
2652 send_field, &
2653 send_frac_mask, &
2654 recv_field, &
2655 send_info, &
2656 recv_info, &
2657 ierror )
2658
2659 integer, intent (in) :: send_field_id
2660 integer, intent (in) :: recv_field_id
2661 integer, intent (in) :: send_nbr_hor_points
2662 integer, intent (in) :: send_nbr_pointsets
2663 integer, intent (in) :: recv_nbr_hor_points
2664 integer, intent (in) :: collection_size
2665 double precision, intent (in) :: &
2666 send_field(send_nbr_hor_points, &
2667 send_nbr_pointsets, &
2668 collection_size)
2669
2670 double precision, intent (in) :: &
2671 send_frac_mask(send_nbr_hor_points, &
2672 send_nbr_pointsets, &
2673 collection_size)
2674
2675 double precision, intent (inout):: &
2676 recv_field(recv_nbr_hor_points, &
2677 collection_size)
2678
2679 integer, intent (out) :: send_info
2680 integer, intent (out) :: recv_info
2681 integer, intent (out) :: ierror
2682
2683 end subroutine yac_fexchange_frac_dble
2684
2685 subroutine yac_fexchange_frac_dble_ptr ( send_field_id, &
2686 recv_field_id, &
2687 send_nbr_pointsets, &
2688 collection_size, &
2689 send_field, &
2690 send_frac_mask, &
2691 recv_field, &
2692 send_info, &
2693 recv_info, &
2694 ierror )
2695
2696 import :: yac_dble_ptr
2697
2698 integer, intent (in) :: send_field_id
2699 integer, intent (in) :: recv_field_id
2700 integer, intent (in) :: send_nbr_pointsets
2701 integer, intent (in) :: collection_size
2702 type(yac_dble_ptr), intent (in) :: &
2703 send_field(send_nbr_pointsets, &
2704 collection_size)
2705
2706 type(yac_dble_ptr), intent (in) :: &
2707 send_frac_mask(send_nbr_pointsets, &
2708 collection_size)
2709
2710 type(yac_dble_ptr) :: recv_field(collection_size)
2711
2712 integer, intent (out) :: send_info
2713 integer, intent (out) :: recv_info
2714 integer, intent (out) :: ierror
2715
2716 end subroutine yac_fexchange_frac_dble_ptr
2717
2718 subroutine yac_fexchange_frac_single_pointset_dble ( send_field_id, &
2719 recv_field_id, &
2720 send_nbr_hor_points, &
2721 recv_nbr_hor_points, &
2722 collection_size, &
2723 send_field, &
2724 send_frac_mask, &
2725 recv_field, &
2726 send_info, &
2727 recv_info, &
2728 ierror )
2729
2730 integer, intent (in) :: send_field_id
2731 integer, intent (in) :: recv_field_id
2732 integer, intent (in) :: send_nbr_hor_points
2733 integer, intent (in) :: recv_nbr_hor_points
2734 integer, intent (in) :: collection_size
2735 double precision, intent (in) :: &
2736 send_field(send_nbr_hor_points, &
2737 collection_size)
2738
2739 double precision, intent (in) :: &
2740 send_frac_mask(send_nbr_hor_points, &
2741 collection_size)
2742
2743 double precision, intent (inout):: &
2744 recv_field(recv_nbr_hor_points, &
2745 collection_size)
2746
2747 integer, intent (out) :: send_info
2748 integer, intent (out) :: recv_info
2749 integer, intent (out) :: ierror
2750
2752
2753 end interface yac_fexchange
2754
2755 !----------------------------------------------------------------------
2760 !----------------------------------------------------------------------
2761
2763
2764 subroutine yac_fexchange_raw_real ( send_field_id, &
2765 recv_field_id, &
2766 send_nbr_hor_points, &
2767 send_nbr_pointsets, &
2768 src_field_buffer_size, &
2769 collection_size, &
2770 send_field, &
2771 src_field_buffer, &
2772 send_info, &
2773 recv_info, &
2774 ierror )
2775
2776 integer, intent (in) :: send_field_id
2777 integer, intent (in) :: recv_field_id
2778 integer, intent (in) :: send_nbr_hor_points
2779 integer, intent (in) :: send_nbr_pointsets
2780 integer, intent (in) :: src_field_buffer_size
2782 integer, intent (in) :: collection_size
2783 real, intent (in) :: &
2784 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
2785
2786 real, intent (out) :: &
2787 src_field_buffer(src_field_buffer_size, collection_size)
2788
2789 integer, intent (out) :: send_info
2790 integer, intent (out) :: recv_info
2791 integer, intent (out) :: ierror
2792
2793 end subroutine yac_fexchange_raw_real
2794
2795 subroutine yac_fexchange_raw_real_ptr ( send_field_id, &
2796 recv_field_id, &
2797 send_nbr_pointsets, &
2798 collection_size, &
2799 send_field, &
2800 src_field_buffer, &
2801 send_info, &
2802 recv_info, &
2803 ierror )
2804
2805 import :: yac_real_ptr
2806
2807 integer, intent (in) :: send_field_id
2808 integer, intent (in) :: recv_field_id
2809 integer, intent (in) :: send_nbr_pointsets
2810 integer, intent (in) :: collection_size
2811 type(yac_real_ptr), intent (in) :: &
2812 send_field(send_nbr_pointsets, collection_size)
2813 type(yac_real_ptr), intent (inout) :: &
2814 src_field_buffer(send_nbr_pointsets, collection_size)
2815 integer, intent (out) :: send_info
2816 integer, intent (out) :: recv_info
2817 integer, intent (out) :: ierror
2818
2819 end subroutine yac_fexchange_raw_real_ptr
2820
2821 subroutine yac_fexchange_raw_single_pointset_real ( send_field_id, &
2822 recv_field_id, &
2823 send_nbr_hor_points, &
2824 src_field_buffer_size, &
2825 collection_size, &
2826 send_field, &
2827 src_field_buffer, &
2828 send_info, &
2829 recv_info, &
2830 ierror )
2831
2832 integer, intent (in) :: send_field_id
2833 integer, intent (in) :: recv_field_id
2834 integer, intent (in) :: send_nbr_hor_points
2835 integer, intent (in) :: src_field_buffer_size
2836 integer, intent (in) :: collection_size
2837 real, intent (in) :: send_field(send_nbr_hor_points, &
2838 collection_size)
2839
2840 real, intent (out) :: &
2841 src_field_buffer(src_field_buffer_size, collection_size)
2842
2843 integer, intent (out) :: send_info
2844 integer, intent (out) :: recv_info
2845 integer, intent (out) :: ierror
2846
2848
2849 subroutine yac_fexchange_raw_dble ( send_field_id, &
2850 recv_field_id, &
2851 send_nbr_hor_points, &
2852 send_nbr_pointsets, &
2853 src_field_buffer_size, &
2854 collection_size, &
2855 send_field, &
2856 src_field_buffer, &
2857 send_info, &
2858 recv_info, &
2859 ierror )
2860
2861 integer, intent (in) :: send_field_id
2862 integer, intent (in) :: recv_field_id
2863 integer, intent (in) :: send_nbr_hor_points
2864 integer, intent (in) :: send_nbr_pointsets
2865 integer, intent (in) :: src_field_buffer_size
2867 integer, intent (in) :: collection_size
2868 double precision, intent (in) :: &
2869 send_field(send_nbr_hor_points, &
2870 send_nbr_pointsets, &
2871 collection_size)
2872
2873 double precision, intent (out) :: &
2874 src_field_buffer(src_field_buffer_size, collection_size)
2875
2876 integer, intent (out) :: send_info
2877 integer, intent (out) :: recv_info
2878 integer, intent (out) :: ierror
2879
2880 end subroutine yac_fexchange_raw_dble
2881
2882 subroutine yac_fexchange_raw_dble_ptr ( send_field_id, &
2883 recv_field_id, &
2884 send_nbr_pointsets, &
2885 collection_size, &
2886 send_field, &
2887 src_field_buffer, &
2888 send_info, &
2889 recv_info, &
2890 ierror )
2891
2892 import :: yac_dble_ptr
2893
2894 integer, intent (in) :: send_field_id
2895 integer, intent (in) :: recv_field_id
2896 integer, intent (in) :: send_nbr_pointsets
2897 integer, intent (in) :: collection_size
2898 type(yac_dble_ptr), intent (in) :: &
2899 send_field(send_nbr_pointsets, collection_size)
2900 type(yac_dble_ptr), intent (inout) :: &
2901 src_field_buffer(send_nbr_pointsets, collection_size)
2902 integer, intent (out) :: send_info
2903 integer, intent (out) :: recv_info
2904 integer, intent (out) :: ierror
2905
2906 end subroutine yac_fexchange_raw_dble_ptr
2907
2908 subroutine yac_fexchange_raw_single_pointset_dble ( send_field_id, &
2909 recv_field_id, &
2910 send_nbr_hor_points, &
2911 src_field_buffer_size, &
2912 collection_size, &
2913 send_field, &
2914 src_field_buffer, &
2915 send_info, &
2916 recv_info, &
2917 ierror )
2918
2919 integer, intent (in) :: send_field_id
2920 integer, intent (in) :: recv_field_id
2921 integer, intent (in) :: send_nbr_hor_points
2922 integer, intent (in) :: src_field_buffer_size
2923 integer, intent (in) :: collection_size
2924 double precision, intent (in) :: &
2925 send_field(send_nbr_hor_points, collection_size)
2926 double precision, intent (out) :: &
2927 src_field_buffer(src_field_buffer_size, collection_size)
2928
2929 integer, intent (out) :: send_info
2930 integer, intent (out) :: recv_info
2931 integer, intent (out) :: ierror
2932
2934
2935 subroutine yac_fexchange_raw_frac_real ( send_field_id, &
2936 recv_field_id, &
2937 send_nbr_hor_points, &
2938 send_nbr_pointsets, &
2939 src_field_buffer_size, &
2940 collection_size, &
2941 send_field, &
2942 send_frac_mask, &
2943 src_field_buffer, &
2944 src_frac_mask_buffer, &
2945 send_info, &
2946 recv_info, &
2947 ierror )
2948
2949 integer, intent (in) :: send_field_id
2950 integer, intent (in) :: recv_field_id
2951 integer, intent (in) :: send_nbr_hor_points
2952 integer, intent (in) :: send_nbr_pointsets
2953 integer, intent (in) :: src_field_buffer_size
2955 integer, intent (in) :: collection_size
2956 real, intent (in) :: &
2957 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
2958
2959 real, intent (in) :: &
2960 send_frac_mask(send_nbr_hor_points, send_nbr_pointsets, collection_size)
2961
2962 real, intent (out) :: &
2963 src_field_buffer(src_field_buffer_size, collection_size)
2964
2965 real, intent (out) :: &
2966 src_frac_mask_buffer(src_field_buffer_size, collection_size)
2967
2968 integer, intent (out) :: send_info
2969 integer, intent (out) :: recv_info
2970 integer, intent (out) :: ierror
2971
2972 end subroutine yac_fexchange_raw_frac_real
2973
2974 subroutine yac_fexchange_raw_frac_real_ptr ( send_field_id, &
2975 recv_field_id, &
2976 send_nbr_pointsets, &
2977 collection_size, &
2978 send_field, &
2979 send_frac_mask, &
2980 src_field_buffer, &
2981 src_frac_mask_buffer, &
2982 send_info, &
2983 recv_info, &
2984 ierror )
2985
2986 import :: yac_real_ptr
2987
2988 integer, intent (in) :: send_field_id
2989 integer, intent (in) :: recv_field_id
2990 integer, intent (in) :: send_nbr_pointsets
2991 integer, intent (in) :: collection_size
2992 type(yac_real_ptr), intent (in) :: &
2993 send_field(send_nbr_pointsets, collection_size)
2994 type(yac_real_ptr), intent (in) :: &
2995 send_frac_mask(send_nbr_pointsets, collection_size)
2996 type(yac_real_ptr), intent(inout) :: &
2997 src_field_buffer(send_nbr_pointsets, collection_size)
2998 type(yac_real_ptr), intent(inout) :: &
2999 src_frac_mask_buffer(send_nbr_pointsets, collection_size)
3000
3001 integer, intent (out) :: send_info
3002 integer, intent (out) :: recv_info
3003 integer, intent (out) :: ierror
3004
3005 end subroutine yac_fexchange_raw_frac_real_ptr
3006
3008 recv_field_id, &
3009 send_nbr_hor_points, &
3010 src_field_buffer_size, &
3011 collection_size, &
3012 send_field, &
3013 send_frac_mask, &
3014 src_field_buffer, &
3015 src_frac_mask_buffer, &
3016 send_info, &
3017 recv_info, &
3018 ierror )
3019
3020 integer, intent (in) :: send_field_id
3021 integer, intent (in) :: recv_field_id
3022 integer, intent (in) :: send_nbr_hor_points
3023 integer, intent (in) :: src_field_buffer_size
3025 integer, intent (in) :: collection_size
3026 real, intent (in) :: &
3027 send_field(send_nbr_hor_points, collection_size)
3028
3029 real, intent (in) :: &
3030 send_frac_mask(send_nbr_hor_points, collection_size)
3031
3032 real, intent (out) :: &
3033 src_field_buffer(src_field_buffer_size, collection_size)
3034
3035 real, intent (out) :: &
3036 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3037
3038 integer, intent (out) :: send_info
3039 integer, intent (out) :: recv_info
3040 integer, intent (out) :: ierror
3041
3043
3044 subroutine yac_fexchange_raw_frac_dble ( send_field_id, &
3045 recv_field_id, &
3046 send_nbr_hor_points, &
3047 send_nbr_pointsets, &
3048 src_field_buffer_size, &
3049 collection_size, &
3050 send_field, &
3051 send_frac_mask, &
3052 src_field_buffer, &
3053 src_frac_mask_buffer, &
3054 send_info, &
3055 recv_info, &
3056 ierror )
3057
3058 integer, intent (in) :: send_field_id
3059 integer, intent (in) :: recv_field_id
3060 integer, intent (in) :: send_nbr_hor_points
3061 integer, intent (in) :: send_nbr_pointsets
3062 integer, intent (in) :: src_field_buffer_size
3064 integer, intent (in) :: collection_size
3065 double precision, intent (in) :: &
3066 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3067
3068 double precision, intent (in) :: &
3069 send_frac_mask(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3070
3071 double precision, intent (out):: &
3072 src_field_buffer(src_field_buffer_size, collection_size)
3073
3074 double precision, intent (out):: &
3075 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3076
3077 integer, intent (out) :: send_info
3078 integer, intent (out) :: recv_info
3079 integer, intent (out) :: ierror
3080
3081 end subroutine yac_fexchange_raw_frac_dble
3082
3083 subroutine yac_fexchange_raw_frac_dble_ptr ( send_field_id, &
3084 recv_field_id, &
3085 send_nbr_pointsets, &
3086 collection_size, &
3087 send_field, &
3088 send_frac_mask, &
3089 src_field_buffer, &
3090 src_frac_mask_buffer, &
3091 send_info, &
3092 recv_info, &
3093 ierror )
3094
3095 import :: yac_dble_ptr
3096
3097 integer, intent (in) :: send_field_id
3098 integer, intent (in) :: recv_field_id
3099 integer, intent (in) :: send_nbr_pointsets
3100 integer, intent (in) :: collection_size
3101 type(yac_dble_ptr), intent (in) :: &
3102 send_field(send_nbr_pointsets, collection_size)
3103 type(yac_dble_ptr), intent (in) :: &
3104 send_frac_mask(send_nbr_pointsets, collection_size)
3105 type(yac_dble_ptr), intent(inout) :: &
3106 src_field_buffer(send_nbr_pointsets, collection_size)
3107 type(yac_dble_ptr), intent(inout) :: &
3108 src_frac_mask_buffer(send_nbr_pointsets, collection_size)
3109
3110 integer, intent (out) :: send_info
3111 integer, intent (out) :: recv_info
3112 integer, intent (out) :: ierror
3113
3114 end subroutine yac_fexchange_raw_frac_dble_ptr
3115
3117 recv_field_id, &
3118 send_nbr_hor_points, &
3119 src_field_buffer_size, &
3120 collection_size, &
3121 send_field, &
3122 send_frac_mask, &
3123 src_field_buffer, &
3124 src_frac_mask_buffer, &
3125 send_info, &
3126 recv_info, &
3127 ierror )
3128
3129 integer, intent (in) :: send_field_id
3130 integer, intent (in) :: recv_field_id
3131 integer, intent (in) :: send_nbr_hor_points
3132 integer, intent (in) :: src_field_buffer_size
3134 integer, intent (in) :: collection_size
3135 double precision, intent (in) :: &
3136 send_field(send_nbr_hor_points, collection_size)
3137 double precision, intent (in) :: &
3138 send_frac_mask(send_nbr_hor_points, collection_size)
3139 double precision, intent (out) :: &
3140 src_field_buffer(src_field_buffer_size, collection_size)
3141
3142 double precision, intent (out) :: &
3143 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3144
3145 integer, intent (out) :: send_info
3146 integer, intent (out) :: recv_info
3147 integer, intent (out) :: ierror
3148
3150
3151 end interface yac_fexchange_raw
3152
3153 !----------------------------------------------------------------------
3157 !----------------------------------------------------------------------
3158
3159 interface yac_ftest
3160
3161 subroutine yac_ftest_i ( field_id, flag )
3162
3163 integer, intent (in) :: field_id
3164 integer, intent (out) :: flag
3167
3168 end subroutine yac_ftest_i
3169
3170 subroutine yac_ftest_l ( field_id, flag )
3171
3172 integer, intent (in) :: field_id
3173 logical, intent (out) :: flag
3176
3177 end subroutine yac_ftest_l
3178
3179 end interface yac_ftest
3180
3181 !----------------------------------------------------------------------
3185 !----------------------------------------------------------------------
3186
3187 interface yac_fwait
3188
3189 subroutine yac_fwait ( field_id )
3190
3191 integer, intent (in) :: field_id
3192
3193 end subroutine yac_fwait
3194
3195 end interface yac_fwait
3196
3197 !----------------------------------------------------------------------
3201 !----------------------------------------------------------------------
3202
3203 interface
3204
3205 subroutine yac_fget_comp_comm ( comp_id, comp_comm )
3206
3207 integer, intent (in) :: comp_id
3208 integer, intent (out) :: comp_comm
3209
3210 end subroutine yac_fget_comp_comm
3211
3212 end interface
3213
3214 !----------------------------------------------------------------------
3219 !----------------------------------------------------------------------
3220
3222
3223 subroutine yac_fget_comps_comm ( comp_names, &
3224 num_comps, &
3225 comps_comm)
3226
3227 use, intrinsic :: iso_c_binding, only : c_char
3228 import :: yac_max_charlen
3229
3230 integer, intent(in) :: num_comps
3231 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3232 comp_names(num_comps)
3233 integer, intent (out) :: comps_comm
3234
3235 end subroutine yac_fget_comps_comm
3236
3237 subroutine yac_fget_comps_comm_instance ( yac_instance_id, &
3238 comp_names, &
3239 num_comps, &
3240 comps_comm)
3241
3242 use, intrinsic :: iso_c_binding, only : c_char
3243 import :: yac_max_charlen
3244
3245 integer, intent(in) :: yac_instance_id
3246 integer, intent(in) :: num_comps
3247 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3248 comp_names(num_comps)
3249 integer, intent (out) :: comps_comm
3250
3251 end subroutine yac_fget_comps_comm_instance
3252
3253 end interface yac_fget_comps_comm
3254
3255
3256 !----------------------------------------------------------------------
3260 !----------------------------------------------------------------------
3261
3263
3264 subroutine yac_fsync_def ( )
3265
3266 end subroutine yac_fsync_def
3267
3268 subroutine yac_fsync_def_instance ( yac_instance_id )
3269
3270 integer, intent(in) :: yac_instance_id
3271
3272 end subroutine yac_fsync_def_instance
3273
3274 end interface yac_fsync_def
3275
3277
3278 subroutine yac_fsync_def_comps ( comp_names, num_comps )
3279
3280 use, intrinsic :: iso_c_binding, only : c_char
3281 import :: yac_max_charlen
3282
3283 integer, intent(in) :: num_comps
3284 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3285 comp_names(num_comps)
3286
3287 end subroutine yac_fsync_def_comps
3288
3289 subroutine yac_fsync_def_comps_instance ( yac_instance_id, comp_names, num_comps )
3290
3291 use, intrinsic :: iso_c_binding, only : c_char
3292 import :: yac_max_charlen
3293
3294 integer, intent(in) :: yac_instance_id
3295 integer, intent(in) :: num_comps
3296 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3297 comp_names(num_comps)
3298
3299 end subroutine yac_fsync_def_comps_instance
3300
3301 end interface yac_fsync_def_comps
3302
3303 !----------------------------------------------------------------------
3307 !----------------------------------------------------------------------
3308
3309 interface
3310
3311 subroutine yac_fget_interp_stack_config(interp_stack_config_id)
3312 integer, intent(out) :: interp_stack_config_id
3313 end subroutine yac_fget_interp_stack_config
3314
3315 subroutine yac_ffree_interp_stack_config(interp_stack_config_id)
3316 integer, intent(in) :: interp_stack_config_id
3317 end subroutine yac_ffree_interp_stack_config
3318
3319 subroutine yac_fadd_interp_stack_config_average(interp_stack_config_id, &
3320 reduction_type, partial_coverage)
3321 integer, intent(in) :: interp_stack_config_id
3322 integer, intent(in) :: reduction_type
3323 integer, intent(in) :: partial_coverage
3325
3326 subroutine yac_fadd_interp_stack_config_ncc(interp_stack_config_id, &
3327 weight_type, partial_coverage)
3328 integer, intent(in) :: interp_stack_config_id
3329 integer, intent(in) :: weight_type
3330 integer, intent(in) :: partial_coverage
3332
3333 subroutine yac_fadd_interp_stack_config_nnn(interp_stack_config_id, &
3334 type, n, max_search_distance, scale)
3335 integer, intent(in) :: interp_stack_config_id
3336 integer, intent(in) :: type
3337 integer, intent(in) :: n
3338 double precision, intent(in) :: max_search_distance
3339 double precision, intent(in) :: scale
3341
3342 subroutine yac_fadd_interp_stack_config_dnn(interp_stack_config_id, &
3343 weight_type, search_distance_type, search_distance, scale)
3344 integer, intent(in) :: interp_stack_config_id
3345 integer, intent(in) :: weight_type
3346 integer, intent(in) :: search_distance_type
3347 double precision, intent(in) :: search_distance
3348 double precision, intent(in) :: scale
3350
3351 subroutine yac_fadd_interp_stack_config_rbf(interp_stack_config_id, &
3352 n, max_search_distance, scale)
3353 integer, intent(in) :: interp_stack_config_id
3354 integer, optional, intent(in) :: n
3355 double precision, optional, intent(in) :: max_search_distance
3356 double precision, optional, intent(in) :: scale
3358
3359 subroutine yac_fadd_interp_stack_config_conservative(interp_stack_config_id, &
3360 order, enforced_conserv, partial_coverage, normalization)
3361 integer, intent(in) :: interp_stack_config_id
3362 integer, intent(in) :: order
3363 integer, intent(in) :: enforced_conserv
3364 integer, intent(in) :: partial_coverage
3365 integer, intent(in) :: normalization
3367
3369 center_lon, center_lat, inc_angle, spmap_overwrite_config_id, &
3370 spread_distance, max_search_distance, weight_type )
3371 double precision, intent(in) :: center_lon
3372 double precision, intent(in) :: center_lat
3373 double precision, intent(in) :: inc_angle
3374 integer, intent(out) :: spmap_overwrite_config_id
3375 double precision, optional, intent(in) :: spread_distance
3376 double precision, optional, intent(in) :: max_search_distance
3377 integer, optional, intent(in) :: weight_type
3379
3381 spmap_overwrite_config_id )
3382 integer, intent(in) :: spmap_overwrite_config_id
3384
3385 subroutine yac_fadd_interp_stack_config_spmap(interp_stack_config_id, &
3386 search_distance, max_search_distance, weight_type, scale_type, &
3387 src_sphere_radius, src_filename, src_varname, src_min_global_id, &
3388 tgt_sphere_radius, tgt_filename, tgt_varname, tgt_min_global_id, &
3389 spmap_overwrite_config_ids)
3390 integer, intent(in) :: interp_stack_config_id
3391 double precision, intent(in) :: search_distance
3392 double precision, intent(in) :: max_search_distance
3393 integer, intent(in) :: weight_type
3394 integer, intent(in) :: scale_type
3395 double precision, intent(in) :: src_sphere_radius
3396 character (len=*), intent(in) :: src_filename
3397 character (len=*), intent(in) :: src_varname
3398 integer, intent(in) :: src_min_global_id
3399 double precision, intent(in) :: tgt_sphere_radius
3400 character (len=*), intent(in) :: tgt_filename
3401 character (len=*), intent(in) :: tgt_varname
3402 integer, intent(in) :: tgt_min_global_id
3403 integer, optional, intent(in) :: spmap_overwrite_config_ids(:)
3405
3406 subroutine yac_fadd_interp_stack_config_hcsbb(interp_stack_config_id)
3407 integer, intent(in) :: interp_stack_config_id
3409
3411 interp_stack_config_id, filename, on_missing_file, on_success)
3412 integer, intent(in) :: interp_stack_config_id
3413 character (len=*), intent(in) :: filename
3414 integer, optional, intent(in) :: on_missing_file
3415 integer, optional, intent(in) :: on_success
3417
3418 subroutine yac_fadd_interp_stack_config_fixed(interp_stack_config_id, &
3419 val)
3420 integer, intent(in) :: interp_stack_config_id
3421 double precision, intent(in) :: val
3423
3424 subroutine yac_fadd_interp_stack_config_creep(interp_stack_config_id, &
3425 creep_distance)
3426 integer, intent(in) :: interp_stack_config_id
3427 integer, intent(in) :: creep_distance
3429
3431 interp_stack_config, interp_stack_config_id)
3432 character ( len=* ), intent(in) :: interp_stack_config
3433 integer, intent(out) :: interp_stack_config_id
3435
3437 interp_stack_config, interp_stack_config_id)
3438 character ( len=* ), intent(in) :: interp_stack_config
3439 integer, intent(out) :: interp_stack_config_id
3441
3442 end interface
3443
3444 !----------------------------------------------------------------------
3448 !----------------------------------------------------------------------
3449
3451
3452 subroutine yac_fdef_couple ( &
3453 src_comp_name, src_grid_name, src_field_name, &
3454 tgt_comp_name, tgt_grid_name, tgt_field_name, &
3455 coupling_timestep, time_unit, time_reduction, &
3456 interp_stack_config_id, src_lag, tgt_lag, &
3457 weight_file, weight_file_on_existing, &
3458 mapping_side, scale_factor, scale_summand, &
3459 src_mask_names, tgt_mask_name, &
3460 yaxt_exchanger_name, collection_indices, &
3461 use_raw_exchange )
3462
3463 import :: yac_string
3464 character ( len=* ), intent(in) :: src_comp_name
3465 character ( len=* ), intent(in) :: src_grid_name
3466 character ( len=* ), intent(in) :: src_field_name
3467 character ( len=* ), intent(in) :: tgt_comp_name
3468 character ( len=* ), intent(in) :: tgt_grid_name
3469 character ( len=* ), intent(in) :: tgt_field_name
3470 character ( len=* ), intent(in) :: coupling_timestep
3471 integer, intent(in) :: time_unit
3472 integer, intent(in) :: time_reduction
3473 integer, intent(in) :: interp_stack_config_id
3474 integer, intent(in), optional :: src_lag
3475 integer, intent(in), optional :: tgt_lag
3476 character ( len=* ), intent(in), optional :: weight_file
3477 integer, intent(in), optional :: weight_file_on_existing
3478 integer, intent(in), optional :: mapping_side
3479 double precision, intent(in), optional :: scale_factor
3480 double precision, intent(in), optional :: scale_summand
3481 type(yac_string), intent(in), optional :: src_mask_names(:)
3482 character ( len=* ), intent(in), optional :: tgt_mask_name
3483 character ( len=* ), intent(in), optional :: yaxt_exchanger_name
3484 integer, intent(in), optional :: collection_indices(:)
3485 logical, intent(in), optional :: use_raw_exchange
3486 end subroutine yac_fdef_couple
3487
3488 subroutine yac_fdef_couple_instance ( instance_id, &
3489 src_comp_name, src_grid_name, src_field_name, &
3490 tgt_comp_name, tgt_grid_name, tgt_field_name, &
3491 coupling_timestep, time_unit, time_reduction, &
3492 interp_stack_config_id, src_lag, tgt_lag, &
3493 weight_file, weight_file_on_existing, &
3494 mapping_side, scale_factor, scale_summand, &
3495 src_mask_names, tgt_mask_name, &
3496 yaxt_exchanger_name, collection_indices, &
3497 use_raw_exchange )
3498
3499 import :: yac_string
3500 integer, intent(in) :: instance_id
3501 character ( len=* ), intent(in) :: src_comp_name
3502 character ( len=* ), intent(in) :: src_grid_name
3503 character ( len=* ), intent(in) :: src_field_name
3504 character ( len=* ), intent(in) :: tgt_comp_name
3505 character ( len=* ), intent(in) :: tgt_grid_name
3506 character ( len=* ), intent(in) :: tgt_field_name
3507 character ( len=* ), intent(in) :: coupling_timestep
3508 integer, intent(in) :: time_unit
3509 integer, intent(in) :: time_reduction
3510 integer, intent(in) :: interp_stack_config_id
3511 integer, intent(in), optional :: src_lag
3512 integer, intent(in), optional :: tgt_lag
3513 character ( len=* ), intent(in), optional :: weight_file
3514 integer, intent(in), optional :: weight_file_on_existing
3515 integer, intent(in), optional :: mapping_side
3516 double precision, intent(in), optional :: scale_factor
3517 double precision, intent(in), optional :: scale_summand
3518 type(yac_string), intent(in), optional :: src_mask_names(:)
3519 character ( len=* ), intent(in), optional :: tgt_mask_name
3520 character ( len=* ), intent(in), optional :: yaxt_exchanger_name
3521 integer, intent(in), optional :: collection_indices(:)
3522 logical, intent(in), optional :: use_raw_exchange
3523 end subroutine yac_fdef_couple_instance
3524
3525 end interface yac_fdef_couple
3526
3527 !----------------------------------------------------------------------
3531 !----------------------------------------------------------------------
3532
3533 interface yac_fenddef
3534
3535 subroutine yac_fenddef ( )
3536
3537 end subroutine yac_fenddef
3538
3539 subroutine yac_fenddef_instance ( yac_instance_id )
3540
3541 integer, intent(in) :: yac_instance_id
3542
3543 end subroutine yac_fenddef_instance
3544
3545 subroutine yac_fenddef_and_emit_config(emit_flags, config)
3546
3547 integer, intent (in) :: emit_flags
3548 character (len=:), ALLOCATABLE :: config
3549
3550 end subroutine yac_fenddef_and_emit_config
3551
3553 yac_instance_id, emit_flags, config)
3554
3555 integer, intent (in) :: yac_instance_id
3556 integer, intent (in) :: emit_flags
3557 character (len=:), ALLOCATABLE :: config
3558
3560
3561 end interface yac_fenddef
3562
3563 !----------------------------------------------------------------------
3567 !----------------------------------------------------------------------
3568
3570
3571 function yac_fget_grid_size( location, grid_id ) result (grid_size)
3572
3573 integer, intent(in) :: location
3574 integer, intent(in) :: grid_id
3575 integer :: grid_size
3576
3577 end function yac_fget_grid_size
3578
3579 end interface yac_fget_grid_size
3580
3581 ! ---------------------------------------------------------------------
3582
3584
3586 grid_id, nbr_cells, cell_areas )
3587
3588 integer, intent(in) :: grid_id
3589 integer, intent(in) :: nbr_cells
3590 real, intent(out) :: cell_areas(nbr_cells)
3592
3594 grid_id, nbr_cells, cell_areas )
3595
3596 integer, intent(in) :: grid_id
3597 integer, intent(in) :: nbr_cells
3598 double precision, intent(out) :: cell_areas(nbr_cells)
3600
3601 end interface
3602
3603 ! ---------------------------------------------------------------------
3604
3606
3607 function yac_fget_points_size( point_id ) result (points_size)
3608
3609 integer, intent(in) :: point_id
3610 integer :: points_size
3611
3612 end function yac_fget_points_size
3613
3614 end interface yac_fget_points_size
3615
3616 ! ---------------------------------------------------------------------
3617
3619
3620 function yac_fget_field_is_defined ( comp_name, grid_name, field_name ) &
3621 result(field_is_defined)
3622
3623 character(len=*), intent(in) :: comp_name
3624 character(len=*), intent(in) :: grid_name
3625 character(len=*), intent(in) :: field_name
3626 logical :: field_is_defined
3627
3628 end function yac_fget_field_is_defined
3629
3631 comp_name, &
3632 grid_name, &
3633 field_name ) &
3634 result(field_is_defined)
3635
3636 integer, intent(in) :: yac_id
3637 character(len=*), intent(in) :: comp_name
3638 character(len=*), intent(in) :: grid_name
3639 character(len=*), intent(in) :: field_name
3640 logical :: field_is_defined
3641
3643 end interface yac_fget_field_is_defined
3644
3645 ! ---------------------------------------------------------------------
3646
3648
3649 function yac_fget_field_id ( comp_name, grid_name, field_name ) result(field_id)
3650
3651 character(len=*), intent(in) :: comp_name
3652 character(len=*), intent(in) :: grid_name
3653 character(len=*), intent(in) :: field_name
3654 integer :: field_id
3655
3656 end function yac_fget_field_id
3657
3658 function yac_fget_field_id_instance ( yac_id, &
3659 comp_name, &
3660 grid_name, &
3661 field_name ) result(field_id)
3662
3663 integer, intent(in) :: yac_id
3664 character(len=*), intent(in) :: comp_name
3665 character(len=*), intent(in) :: grid_name
3666 character(len=*), intent(in) :: field_name
3667 integer :: field_id
3668
3669 end function yac_fget_field_id_instance
3670 end interface yac_fget_field_id
3671
3672 ! ---------------------------------------------------------------------
3673
3675
3677 result( comp_name )
3678
3679 integer, intent (in) :: field_id
3680 character(len=:), ALLOCATABLE :: comp_name
3681
3683
3684 end interface yac_fget_component_name
3685
3687
3688 function yac_fget_grid_name_from_field_id ( field_id ) &
3689 result( grid_name )
3690
3691 integer, intent (in) :: field_id
3692 character(len=:), ALLOCATABLE :: grid_name
3693
3695
3696 end interface yac_fget_grid_name
3697
3699
3701 result( field_name )
3702
3703 integer, intent (in) :: field_id
3704 character(len=:), ALLOCATABLE :: field_name
3705
3707
3708 end interface yac_fget_field_name
3709
3710 ! ---------------------------------------------------------------------
3711
3713
3714 function yac_fget_comp_names( ) result(comp_names)
3715 import :: yac_string
3716 type(yac_string), allocatable :: comp_names(:)
3717 end function yac_fget_comp_names
3718
3719 function yac_fget_comp_names_instance( yac_instance_id) &
3720 result( comp_names )
3721 import :: yac_string
3722 integer, intent(in) :: yac_instance_id
3723 type(yac_string), allocatable :: comp_names(:)
3724 end function yac_fget_comp_names_instance
3725
3726 end interface yac_fget_comp_names
3727
3729
3730 function yac_fget_grid_names( ) result( grid_names )
3731 import :: yac_string
3732 type(yac_string), allocatable :: grid_names(:)
3733 end function yac_fget_grid_names
3734
3735 function yac_fget_grid_names_instance( yac_instance_id ) &
3736 result( grid_names )
3737 import :: yac_string
3738 integer, intent(in) :: yac_instance_id
3739 type(yac_string), allocatable :: grid_names(:)
3740 end function yac_fget_grid_names_instance
3741
3742 end interface yac_fget_grid_names
3743
3745
3746 function yac_fget_comp_grid_names( comp_name ) result( grid_names )
3747 import :: yac_string
3748 character(len=*), intent(in) :: comp_name
3749 type(yac_string), allocatable :: grid_names(:)
3750 end function yac_fget_comp_grid_names
3751
3752 function yac_fget_comp_grid_names_instance( yac_instance_id, comp_name ) &
3753 result( grid_names )
3754 import :: yac_string
3755 integer, intent(in) :: yac_instance_id
3756 character(len=*), intent(in) :: comp_name
3757 type(yac_string), allocatable :: grid_names(:)
3759
3760 end interface yac_fget_comp_grid_names
3761
3763
3764 function yac_fget_field_names( comp_name, grid_name ) result ( field_names )
3765 import :: yac_string
3766 character(len=*), intent(in) :: comp_name
3767 character(len=*), intent(in) :: grid_name
3768 type(yac_string), allocatable :: field_names(:)
3769 end function yac_fget_field_names
3770
3771 function yac_fget_field_names_instance( yac_instance_id, &
3772 comp_name, &
3773 grid_name ) &
3774 result( field_names )
3775 import :: yac_string
3776 integer, intent(in) :: yac_instance_id
3777 character(len=*), intent(in) :: comp_name
3778 character(len=*), intent(in) :: grid_name
3779 type(yac_string), allocatable :: field_names(:)
3781
3782 end interface yac_fget_field_names
3783
3784 ! ---------------------------------------------------------------------
3785
3787
3788 function yac_fget_role_from_field_id ( field_id )
3789
3790 integer, intent (in) :: field_id
3792
3793 end function yac_fget_role_from_field_id
3794
3795 function yac_fget_field_role ( comp_name, grid_name, field_name )
3796 character(len=*), intent(in) :: comp_name
3797 character(len=*), intent(in) :: grid_name
3798 character(len=*), intent(in) :: field_name
3799 integer :: yac_fget_field_role
3800 end function yac_fget_field_role
3801
3802 function yac_fget_field_role_instance ( yac_instance_id, &
3803 comp_name, &
3804 grid_name, &
3805 field_name )
3806 integer, intent(in) :: yac_instance_id
3807 character(len=*), intent(in) :: comp_name
3808 character(len=*), intent(in) :: grid_name
3809 character(len=*), intent(in) :: field_name
3811 end function yac_fget_field_role_instance
3812
3813 end interface yac_fget_field_role
3814
3815 ! ---------------------------------------------------------------------
3816
3818
3819 subroutine yac_fget_field_source ( tgt_comp_name, &
3820 tgt_grid_name, &
3821 tgt_field_name, &
3822 src_comp_name, &
3823 src_grid_name, &
3824 src_field_name )
3825 character(len=*), intent(in) :: tgt_comp_name
3826 character(len=*), intent(in) :: tgt_grid_name
3827 character(len=*), intent(in) :: tgt_field_name
3828 character(len=:), ALLOCATABLE :: src_comp_name
3829 character(len=:), ALLOCATABLE :: src_grid_name
3830 character(len=:), ALLOCATABLE :: src_field_name
3831 end subroutine yac_fget_field_source
3832
3833 subroutine yac_fget_field_source_instance ( yac_instance_id, &
3834 tgt_comp_name, &
3835 tgt_grid_name, &
3836 tgt_field_name, &
3837 src_comp_name, &
3838 src_grid_name, &
3839 src_field_name )
3840 integer, intent(in) :: yac_instance_id
3841 character(len=*), intent(in) :: tgt_comp_name
3842 character(len=*), intent(in) :: tgt_grid_name
3843 character(len=*), intent(in) :: tgt_field_name
3844 character(len=:), ALLOCATABLE :: src_comp_name
3845 character(len=:), ALLOCATABLE :: src_grid_name
3846 character(len=:), ALLOCATABLE :: src_field_name
3847 end subroutine yac_fget_field_source_instance
3848
3849 end interface yac_fget_field_source
3850
3851 ! ---------------------------------------------------------------------
3852
3854
3855
3856 function yac_fget_timestep_from_field_id ( field_id ) result( timestep )
3857 integer, intent (in) :: field_id
3858 character(len=:), ALLOCATABLE :: timestep
3859
3861
3862 function yac_fget_field_timestep ( comp_name, grid_name, field_name ) &
3863 result( timestep )
3864
3865 character(len=*), intent(in) :: comp_name
3866 character(len=*), intent(in) :: grid_name
3867 character(len=*), intent(in) :: field_name
3868 character(len=:), ALLOCATABLE :: timestep
3869
3870 end function yac_fget_field_timestep
3871
3872 function yac_fget_field_timestep_instance ( yac_instance_id, &
3873 comp_name, &
3874 grid_name, &
3875 field_name ) &
3876 result( timestep )
3877
3878 integer, intent(in) :: yac_instance_id
3879 character(len=*), intent(in) :: comp_name
3880 character(len=*), intent(in) :: grid_name
3881 character(len=*), intent(in) :: field_name
3882 character(len=:), ALLOCATABLE :: timestep
3883
3885
3886 end interface yac_fget_field_timestep
3887
3888 ! ---------------------------------------------------------------------
3889
3891
3892 function yac_fget_field_datetime ( field_id ) &
3893 result( datetime )
3894 integer, intent(in) :: field_id
3895 character(len=:), allocatable :: datetime
3896 end function yac_fget_field_datetime
3897
3898 end interface yac_fget_field_datetime
3899
3900 ! ---------------------------------------------------------------------
3901
3903
3905 comp_name, grid_name, field_name, frac_mask_fallback_value )
3906 character(len=*), intent(in) :: comp_name
3907 character(len=*), intent(in) :: grid_name
3908 character(len=*), intent(in) :: field_name
3909 double precision, intent(in) :: frac_mask_fallback_value
3910 end subroutine yac_fenable_field_frac_mask
3911
3913 yac_instance_id, comp_name, grid_name, field_name, &
3914 frac_mask_fallback_value )
3915 integer, intent(in) :: yac_instance_id
3916 character(len=*), intent(in) :: comp_name
3917 character(len=*), intent(in) :: grid_name
3918 character(len=*), intent(in) :: field_name
3919 double precision, intent(in) :: frac_mask_fallback_value
3921
3922 end interface yac_fenable_field_frac_mask
3923
3924 ! ---------------------------------------------------------------------
3925
3927
3929 comp_name, grid_name, field_name )
3930 character(len=*), intent(in) :: comp_name
3931 character(len=*), intent(in) :: grid_name
3932 character(len=*), intent(in) :: field_name
3933 double precision :: yac_fget_field_frac_mask_fallback_value
3935
3937 yac_instance_id, comp_name, grid_name, field_name )
3938 integer, intent(in) :: yac_instance_id
3939 character(len=*), intent(in) :: comp_name
3940 character(len=*), intent(in) :: grid_name
3941 character(len=*), intent(in) :: field_name
3944
3946
3947 ! ---------------------------------------------------------------------
3948
3950
3952 result(collection_size)
3953
3954 integer, intent (in) :: field_id
3955 integer :: collection_size
3956
3958
3959 function yac_fget_field_collection_size ( comp_name, grid_name, field_name )
3960 character(len=*), intent(in) :: comp_name
3961 character(len=*), intent(in) :: grid_name
3962 character(len=*), intent(in) :: field_name
3965
3966 function yac_fget_field_collection_size_instance ( yac_instance_id, &
3967 comp_name, &
3968 grid_name, &
3969 field_name )
3970 integer, intent(in) :: yac_instance_id
3971 character(len=*), intent(in) :: comp_name
3972 character(len=*), intent(in) :: grid_name
3973 character(len=*), intent(in) :: field_name
3976
3977 end interface yac_fget_field_collection_size
3978
3979 ! ---------------------------------------------------------------------
3980
3982 subroutine yac_fdef_component_metadata(comp_name, metadata)
3983 character(len=*), intent(in) :: comp_name
3984 character(len=*), intent(in) :: metadata
3985 end subroutine yac_fdef_component_metadata
3986
3987 subroutine yac_fdef_component_metadata_instance(yac_instance_id, comp_name, &
3988 metadata)
3989 integer, intent(in) :: yac_instance_id
3990 character(len=*), intent(in) :: comp_name
3991 character(len=*), intent(in) :: metadata
3993 end interface yac_fdef_component_metadata
3994
3996 function yac_fcomponent_has_metadata(comp_name) result( has_metadata )
3997 character(len=*), intent(in) :: comp_name
3998 logical :: has_metadata
3999 end function yac_fcomponent_has_metadata
4000
4001 function yac_fcomponent_has_metadata_instance(yac_instance_id, comp_name) &
4002 result( has_metadata )
4003 integer, intent(in) :: yac_instance_id
4004 character(len=*), intent(in) :: comp_name
4005 logical :: has_metadata
4007 end interface yac_fcomponent_has_metadata
4008
4010 function yac_fget_component_metadata(comp_name) result( metadata )
4011 character(len=*), intent(in) :: comp_name
4012 character(len=:), allocatable :: metadata
4013 end function yac_fget_component_metadata
4014
4015 function yac_fget_component_metadata_instance(yac_instance_id, comp_name) &
4016 result( metadata )
4017 integer, intent(in) :: yac_instance_id
4018 character(len=*), intent(in) :: comp_name
4019 character(len=:), allocatable :: metadata
4021 end interface yac_fget_component_metadata
4022
4024 subroutine yac_fdef_grid_metadata(grid_name, metadata)
4025 character(len=*), intent(in) :: grid_name
4026 character(len=*), intent(in) :: metadata
4027 end subroutine yac_fdef_grid_metadata
4028
4029 subroutine yac_fdef_grid_metadata_instance(yac_instance_id, grid_name, metadata)
4030 integer, intent(in) :: yac_instance_id
4031 character(len=*), intent(in) :: grid_name
4032 character(len=*), intent(in) :: metadata
4033 end subroutine yac_fdef_grid_metadata_instance
4034 end interface yac_fdef_grid_metadata
4035
4037 function yac_fgrid_has_metadata(grid_name) result( has_metadata )
4038 character(len=*), intent(in) :: grid_name
4039 logical :: has_metadata
4040 end function yac_fgrid_has_metadata
4041
4042 function yac_fgrid_has_metadata_instance(yac_instance_id, grid_name) &
4043 result( has_metadata )
4044 integer, intent(in) :: yac_instance_id
4045 character(len=*), intent(in) :: grid_name
4046 logical :: has_metadata
4048 end interface yac_fgrid_has_metadata
4049
4051 function yac_fget_grid_metadata(grid_name) result( metadata )
4052 character(len=*), intent(in) :: grid_name
4053 character(len=:), allocatable :: metadata
4054 end function yac_fget_grid_metadata
4055
4056 function yac_fget_grid_metadata_instance(yac_instance_id, grid_name) &
4057 result( metadata )
4058 integer, intent(in) :: yac_instance_id
4059 character(len=*), intent(in) :: grid_name
4060 character(len=:), allocatable :: metadata
4062 end interface yac_fget_grid_metadata
4063
4065 subroutine yac_fdef_field_metadata(comp_name, grid_name, field_name, metadata)
4066 character(len=*), intent(in) :: comp_name
4067 character(len=*), intent(in) :: grid_name
4068 character(len=*), intent(in) :: field_name
4069 character(len=*), intent(in) :: metadata
4070 end subroutine yac_fdef_field_metadata
4071
4072 subroutine yac_fdef_field_metadata_instance(yac_instance_id, comp_name, &
4073 grid_name, field_name, metadata)
4074 integer, intent(in) :: yac_instance_id
4075 character(len=*), intent(in) :: comp_name
4076 character(len=*), intent(in) :: grid_name
4077 character(len=*), intent(in) :: field_name
4078 character(len=*), intent(in) :: metadata
4080 end interface yac_fdef_field_metadata
4081
4083 function yac_ffield_has_metadata(comp_name, grid_name, field_name) &
4084 result( has_metadata )
4085 character(len=*), intent(in) :: comp_name
4086 character(len=*), intent(in) :: grid_name
4087 character(len=*), intent(in) :: field_name
4088 logical :: has_metadata
4089 end function yac_ffield_has_metadata
4090
4092 yac_instance_id, comp_name, grid_name, field_name) &
4093 result( has_metadata )
4094 integer, intent(in) :: yac_instance_id
4095 character(len=*), intent(in) :: comp_name
4096 character(len=*), intent(in) :: grid_name
4097 character(len=*), intent(in) :: field_name
4098 logical :: has_metadata
4100 end interface yac_ffield_has_metadata
4101
4103 function yac_fget_field_metadata(comp_name, grid_name, field_name) &
4104 result( metadata )
4105 character(len=*), intent(in) :: comp_name
4106 character(len=*), intent(in) :: grid_name
4107 character(len=*), intent(in) :: field_name
4108 character(len=:), allocatable :: metadata
4109 end function yac_fget_field_metadata
4110
4111 function yac_fget_field_metadata_instance(yac_instance_id, comp_name, &
4112 grid_name, field_name) &
4113 result( metadata )
4114 integer, intent(in) :: yac_instance_id
4115 character(len=*), intent(in) :: comp_name
4116 character(len=*), intent(in) :: grid_name
4117 character(len=*), intent(in) :: field_name
4118 character(len=:), allocatable :: metadata
4120 end interface yac_fget_field_metadata
4121
4122 ! ---------------------------------------------------------------------
4123
4124 interface
4125
4126 subroutine yac_fget_action ( field_id, action )
4127
4128 integer, intent (in) :: field_id
4129 integer, intent (out) :: action
4135
4136 end subroutine yac_fget_action
4137
4138 end interface
4139
4140 ! ---------------------------------------------------------------------
4141
4142 interface
4143
4144 subroutine yac_fupdate ( field_id )
4145
4146 integer, intent (in) :: field_id
4147
4148 end subroutine yac_fupdate
4149
4150 end interface
4151
4152! --- ISO_C interface -------------------------------------------------
4153
4154 interface
4155
4156 subroutine yac_abort_message ( text, file, line ) &
4157 bind( c, name='yac_abort_message' )
4158
4159 use, intrinsic :: iso_c_binding, only : c_int, c_char
4160
4161 character ( kind=c_char ), dimension(*) :: text
4162 character ( kind=c_char ), dimension(*) :: file
4163 integer ( kind=c_int ), value :: line
4164
4165 end subroutine yac_abort_message
4166
4167 end interface
4168
4169end module yac
Fortran interface for checking the dimensions of a field.
Fortran interface for checking the source field buffer sizes.
Fortran interface for the coupler cleanup before restart.
Fortran interface for definition of a couple.
Fortran interface for the definition of time parameters.
Fortran interface for the definition of coupling fields using explicit masks.
Fortran interface for the definition of coupling fields using default masks.
Fortran interface for the definition of grids.
Fortran interface for the definition of masks.
Fortran interface for the definition of points.
Fortran interface for checking if default instance is defined.
Fortran interface for invoking the end of the definition phase.
Fortran interface for exchanging coupling fields using raw data exchange.
Fortran interface for exchanging coupling fields.
Fortran interface for the coupler termination.
Fortran interface for asynchronous receiving coupling fields.
Fortran interface for getting back a local MPI communicator.
Fortran interface for getting back a MPI communicator for communication between components.
Fortran interface for getting default instance id.
Fortran interface for invoking query functions.
Fortran interfaces for the definition of an interpolation stack.
Fortran interface for getting mpi_handshake group name.
Fortran interface for asynchronous receiving coupling fields using raw exchange.
Get interpolation information for raw data exchange.
Fortran interface for getting interpolation information for raw data exchange.
Fortran interface for receiving coupling fields using raw exchange.
Fortran interface for getting the start- and end datetime.
Fortran interface for getting the YAC version.
Fortran interface for receiving coupling fields.
Fortran interface for the coupler initialisation.
Fortran2C interface for YAC collective routines.
Fortran interface for the component definition.
Fortran interface for sending coupling fields.
Fortran interface for the reading of configuration files.
Fortran interface for the writing of configuration files.
Fortran interface for the setting of a grid core masks.
Fortran interface for the setting of grid global ids.
Fortran interface for the writing of grid files.
Fortran interface for the setting of default pointset masks.
Fortran interface for invoking the end of the definition phase.
Fortran interface for testing fields for active communicaitons.
Fortran interface for testing fields for active communicaitons.
@ yac_location_edge
@ yac_location_cell
@ yac_location_corner
@ yac_time_unit_millisecond
@ yac_time_unit_minute
@ yac_time_unit_hour
@ yac_time_unit_year
@ yac_time_unit_second
@ yac_time_unit_iso_format
@ yac_time_unit_month
@ yac_time_unit_day
double precision, parameter yac_frac_mask_no_value
@ yac_action_coupling
data exchange
@ yac_action_out_of_bound
put/get is outside of the valid range
@ yac_action_reduction
data reduction, but data exchange
@ yac_action_put_for_restart
last valid put
@ yac_action_none
no data exchanges
@ yac_action_get_for_restart
last valid get
@ yac_nnn_gauss
@ yac_nnn_dist
@ yac_nnn_rbf
@ yac_nnn_avg
@ yac_ncc_avg
@ yac_ncc_dist
@ yac_spmap_srcarea
@ yac_spmap_invtgtarea
@ yac_spmap_fracarea
@ yac_spmap_none
@ yac_config_output_format_json
@ yac_config_output_format_yaml
@ yac_proleptic_gregorian
@ yac_year_of_365_days
@ yac_calendar_not_set
@ yac_year_of_360_days
integer, parameter yac_max_charlen
Constants.
integer yac_yaml_emitter_default_f
Flag paramters for emitting of coupling configurations.
@ yac_dnn_dist
@ yac_dnn_rbf
@ yac_dnn_gauss
@ yac_dnn_avg
@ yac_avg_bary
@ yac_avg_arithmetic
@ yac_avg_dist
@ yac_dnn_search_distance_fixed
@ yac_dnn_search_distance_cell_area
@ yac_file_missing_error
abort on missing file
@ yac_file_missing_cont
continue on missing file
@ yac_wgt_on_existing_keep
@ yac_wgt_on_existing_overwrite
@ yac_wgt_on_existing_error
integer, parameter yac_int_kind
@ yac_file_success_cont
continue weight computation with following interpolation methods
@ yac_file_success_stop
prevents following interpolation method from computating further weights
@ yac_reduction_time_average
@ yac_reduction_time_accumulate
@ yac_reduction_time_minimum
@ yac_reduction_time_none
@ yac_reduction_time_maximum
integer, parameter yac_mpi_fint_kind
@ yac_exchange_type_target
@ yac_exchange_type_source
@ yac_exchange_type_none
@ yac_spmap_avg
@ yac_spmap_dist
integer yac_yaml_emitter_json_f
@ yac_config_output_sync_loc_sync_def
@ yac_config_output_sync_loc_enddef
@ yac_config_output_sync_loc_def_comp
@ yac_conserv_fracarea
@ yac_conserv_destarea
pointer data types
subroutine yac_fcompute_grid_cell_areas_real(grid_id, nbr_cells, cell_areas)
subroutine yac_fset_grid_output_file_instance(yac_instance_id, gridname, filename)
subroutine yac_fexchange_raw_frac_dble(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, src_field_buffer_size, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fexchange_raw_frac_real_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fsync_def_instance(yac_instance_id)
subroutine yac_fcompute_grid_cell_areas_dble(grid_id, nbr_cells, cell_areas)
subroutine yac_fset_config_output_file_instance(yac_instance_id, filename, fileformat, sync_location, include_definitions)
character(len=:) function, allocatable yac_fget_field_metadata_instance(yac_instance_id, comp_name, grid_name, field_name)
subroutine yac_fexchange_frac_real_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
integer function yac_fget_field_role_instance(yac_instance_id, comp_name, grid_name, field_name)
subroutine yac_fexchange_raw_single_pointset_real(send_field_id, recv_field_id, send_nbr_hor_points, src_field_buffer_size, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
logical function yac_fgrid_has_metadata_instance(yac_instance_id, grid_name)
subroutine yac_fget_raw_frac_real(field_id, src_field_buffer_size, collection_size, src_field_buffer, src_frac_mask_buffer, info, ierror)
subroutine yac_fenddef_and_emit_config_instance(yac_instance_id, emit_flags, config)
subroutine yac_fexchange_dble(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, recv_nbr_hor_points, collection_size, send_field, recv_field, send_info, recv_info, ierror)
subroutine yac_fget_raw_dble(field_id, src_field_buffer_size, collection_size, src_field_buffer, info, ierror)
subroutine yac_fdef_comp_dummy_instance(yac_instance_id)
subroutine yac_fexchange_raw_real(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, src_field_buffer_size, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
character(len=:) function, allocatable yac_fget_component_name_from_field_id(field_id)
subroutine yac_fget_comps_comm_instance(yac_instance_id, comp_names, num_comps, comps_comm)
subroutine yac_fput_frac_single_pointset_real(field_id, nbr_hor_points, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fdef_grid_unstruct_dble(grid_name, nbr_vertices, nbr_cells, nbr_vertices_per_cell_in, x_vertices, y_vertices, cell_to_vertex_in, grid_id, use_ll_edges)
Definition of a uniform unstructured grid (all cells have the number of vertices)
subroutine yac_fput_single_pointset_dble(field_id, nbr_hor_points, collection_size, send_field, info, ierror)
subroutine yac_fdef_lmask_named(grid_id, nbr_points, location, is_valid, name, mask_id)
type(yac_string) function, dimension(:), allocatable yac_fget_comp_names_instance(yac_instance_id)
subroutine yac_fget_real_ptr(field_id, collection_size, recv_field, info, ierror)
subroutine yac_fget_raw_real(field_id, src_field_buffer_size, collection_size, src_field_buffer, info, ierror)
subroutine yac_fget_raw_dble_ptr(field_id, num_src_fields, collection_size, src_field_buffer, info, ierror)
subroutine yac_fdef_couple_instance(instance_id, src_comp_name, src_grid_name, src_field_name, tgt_comp_name, tgt_grid_name, tgt_field_name, coupling_timestep, time_unit, time_reduction, interp_stack_config_id, src_lag, tgt_lag, weight_file, weight_file_on_existing, mapping_side, scale_factor, scale_summand, src_mask_names, tgt_mask_name, yaxt_exchanger_name, collection_indices, use_raw_exchange)
character(len=:) function, allocatable yac_fget_grid_name_from_field_id(field_id)
subroutine yac_fexchange_raw_dble_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
subroutine yac_fexchange_raw_frac_real(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, src_field_buffer_size, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fexchange_frac_dble_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
subroutine yac_finit_instance(yac_instance_id)
character(len=:) function, allocatable yac_fget_field_timestep_instance(yac_instance_id, comp_name, grid_name, field_name)
subroutine yac_fdef_datetime_instance(yac_instance_id, start_datetime, end_datetime)
subroutine yac_fget_raw_frac_real_ptr(field_id, num_src_fields, collection_size, src_field_buffer, src_frac_mask_buffer, info, ierror)
subroutine yac_fput_frac_dble(field_id, nbr_hor_points, nbr_pointsets, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fput_frac_single_pointset_dble(field_id, nbr_hor_points, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fexchange_frac_real(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, recv_nbr_hor_points, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
subroutine yac_fexchange_frac_dble(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, recv_nbr_hor_points, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
subroutine yac_fdef_grid_metadata_instance(yac_instance_id, grid_name, metadata)
subroutine yac_fput_dble_ptr(field_id, nbr_pointsets, collection_size, send_field, info, ierror)
subroutine yac_fexchange_single_pointset_dble(send_field_id, recv_field_id, send_nbr_hor_points, recv_nbr_hor_points, collection_size, send_field, recv_field, send_info, recv_info, ierror)
subroutine yac_fdef_grid_unstruct_real(grid_name, nbr_vertices, nbr_cells, nbr_vertices_per_cell_in, x_vertices_real, y_vertices_real, cell_to_vertex_in, grid_id, use_ll_edges)
Definition of a uniform unstructured grid (all cells have the number of vertices)
subroutine yac_fdef_grid_reg2d_rot_real(grid_name, nbr_vertices, cyclic, x_vertices_real, y_vertices_real, x_north_pole_real, y_north_pole_real, grid_id)
Definition of a 2d regular rotated grid.
subroutine yac_fcleanup_instance(yac_instance_id)
subroutine yac_fget_dble(field_id, nbr_hor_points, collection_size, recv_field, info, ierror)
integer function yac_fget_field_id_instance(yac_id, comp_name, grid_name, field_name)
subroutine yac_fdef_points_curve2d_dble(grid_id, nbr_points, location, x_points, y_points, point_id)
subroutine yac_fexchange_raw_frac_single_pointset_dble(send_field_id, recv_field_id, send_nbr_hor_points, src_field_buffer_size, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fexchange_raw_frac_dble_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fdef_grid_curve2d_dble(grid_name, nbr_vertices, cyclic, x_vertices, y_vertices, grid_id)
Definition of a 2d curvilinear grid.
type(yac_string) function, dimension(:), allocatable yac_fget_comp_grid_names_instance(yac_instance_id, comp_name)
subroutine yac_fget_raw_frac_async_dble_ptr(field_id, num_src_fields, collection_size, src_field_buffer, src_frac_mask_buffer, info, ierror)
subroutine yac_finit_comm_dummy(world_comm)
type(yac_string) function, dimension(:), allocatable yac_fget_grid_names_instance(yac_instance_id)
subroutine yac_fdef_imask(grid_id, nbr_points, location, is_valid, mask_id)
subroutine yac_fdef_points_reg2d_real(grid_id, nbr_points, location, x_points_real, y_points_real, point_id)
character(len=:) function, allocatable yac_fget_timestep_from_field_id(field_id)
character(len=:) function, allocatable yac_fget_field_name_from_field_id(field_id)
subroutine yac_fput_dble(field_id, nbr_hor_points, nbr_pointsets, collection_size, send_field, info, ierror)
subroutine yac_fput_single_pointset_real(field_id, nbr_hor_points, collection_size, send_field, info, ierror)
subroutine yac_finit_comm_instance(comm, yac_instance_id)
logical function yac_fcomponent_has_metadata_instance(yac_instance_id, comp_name)
subroutine yac_fset_lmask(is_valid, points_id)
subroutine yac_fdef_grid_unstruct_edge_real(grid_name, nbr_vertices, nbr_cells, nbr_edges, nbr_edges_per_cell_in, x_vertices_real, y_vertices_real, cell_to_edge_in, edge_to_vertex_in, grid_id, use_ll_edges)
Definition of a uniform unstructured grid (all cells have the number of vertices) with explicit edge ...
subroutine yac_fdef_imask_named(grid_id, nbr_points, location, is_valid, name, mask_id)
subroutine yac_fdef_grid_curve2d_real(grid_name, nbr_vertices, cyclic, x_vertices_real, y_vertices_real, grid_id)
Definition of a 2d curvilinear grid.
type(yac_string) function, dimension(:), allocatable yac_fget_field_names_instance(yac_instance_id, comp_name, grid_name)
subroutine yac_fdef_comp_instance(yac_instance_id, comp_name, comp_id)
subroutine yac_fget_raw_async_dble_ptr(field_id, num_src_fields, collection_size, src_field_buffer, info, ierror)
subroutine yac_fdef_grid_nonuniform_real(grid_name, nbr_vertices, nbr_cells, nbr_connections, nbr_vertices_per_cell, x_vertices_real, y_vertices_real, cell_to_vertex_in, grid_id, use_ll_edges)
Definition of a non-uniform unstructured grid (cells have varying numbers of vertices)
subroutine yac_fdef_points_reg2d_rot_dble(grid_id, nbr_points, location, x_points, y_points, x_north_pole, y_north_pole, point_id)
subroutine yac_fexchange_frac_single_pointset_dble(send_field_id, recv_field_id, send_nbr_hor_points, recv_nbr_hor_points, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
subroutine yac_ftest_l(field_id, flag)
subroutine yac_fexchange_raw_single_pointset_dble(send_field_id, recv_field_id, send_nbr_hor_points, src_field_buffer_size, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
double precision function yac_fget_field_frac_mask_fallback_value_instance(yac_instance_id, comp_name, grid_name, field_name)
logical function yac_ffield_has_metadata_instance(yac_instance_id, comp_name, grid_name, field_name)
subroutine yac_fput_real_ptr(field_id, nbr_pointsets, collection_size, send_field, info, ierror)
subroutine yac_ffinalize_instance(yac_instance_id)
integer function yac_fget_collection_size_from_field_id(field_id)
subroutine yac_fset_core_imask(is_core, location, grid_id)
subroutine yac_fdef_grid_reg2d_rot_dble(grid_name, nbr_vertices, cyclic, x_vertices, y_vertices, x_north_pole, y_north_pole, grid_id)
Definition of a 2d regular rotated grid.
integer function yac_fget_role_from_field_id(field_id)
subroutine yac_fenable_field_frac_mask_instance(yac_instance_id, comp_name, grid_name, field_name, frac_mask_fallback_value)
subroutine yac_fdef_points_reg2d_rot_real(grid_id, nbr_points, location, x_points_real, y_points_real, x_north_pole_real, y_north_pole_real, point_id)
subroutine yac_fget_raw_frac_dble_ptr(field_id, num_src_fields, collection_size, src_field_buffer, src_frac_mask_buffer, info, ierror)
subroutine yac_fget_async_dble_ptr(field_id, collection_size, recv_field, info, ierror)
character(len=:) function, allocatable yac_fget_end_datetime_instance(yac_instance_id)
subroutine yac_fget_raw_real_ptr(field_id, num_src_fields, collection_size, src_field_buffer, info, ierror)
subroutine yac_fexchange_raw_dble(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, src_field_buffer_size, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
subroutine yac_fread_config_yaml_instance(yac_instance_id, yaml_filename)
subroutine yac_fput_frac_dble_ptr(field_id, nbr_pointsets, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fexchange_real(send_field_id, recv_field_id, send_nbr_hor_points, send_nbr_pointsets, recv_nbr_hor_points, collection_size, send_field, recv_field, send_info, recv_info, ierror)
subroutine yac_fput_frac_real(field_id, nbr_hor_points, nbr_pointsets, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fexchange_real_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, recv_field, send_info, recv_info, ierror)
character(len=:) function, allocatable yac_fget_grid_metadata_instance(yac_instance_id, grid_name)
subroutine yac_ftest_i(field_id, flag)
subroutine yac_fset_core_lmask(is_core, location, grid_id)
subroutine yac_fdef_points_curve2d_real(grid_id, nbr_points, location, x_points_real, y_points_real, point_id)
subroutine yac_fget_real(field_id, nbr_hor_points, collection_size, recv_field, info, ierror)
subroutine yac_fdef_grid_unstruct_edge_dble(grid_name, nbr_vertices, nbr_cells, nbr_edges, nbr_edges_per_cell_in, x_vertices, y_vertices, cell_to_edge_in, edge_to_vertex_in, grid_id, use_ll_edges)
Definition of a uniform unstructured grid (all cells have the number of vertices) with explicit edge ...
subroutine yac_fget_field_source_instance(yac_instance_id, tgt_comp_name, tgt_grid_name, tgt_field_name, src_comp_name, src_grid_name, src_field_name)
subroutine yac_fenddef_and_emit_config(emit_flags, config)
integer function yac_fget_field_collection_size_instance(yac_instance_id, comp_name, grid_name, field_name)
subroutine yac_fexchange_dble_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, recv_field, send_info, recv_info, ierror)
subroutine yac_fput_real(field_id, nbr_hor_points, nbr_pointsets, collection_size, send_field, info, ierror)
subroutine yac_fdef_comps_instance(yac_instance_id, comp_names, num_comps, comp_ids)
logical function yac_fget_field_is_defined_instance(yac_id, comp_name, grid_name, field_name)
subroutine yac_fdef_grid_nonuniform_edge_dble(grid_name, nbr_vertices, nbr_cells, nbr_edges, nbr_connections, nbr_edges_per_cell, x_vertices, y_vertices, cell_to_edge_in, edge_to_vertex_in, grid_id, use_ll_edges)
Definition of a non-uniform unstructured grid (cells have varying numbers of vertices) with explicit ...
subroutine yac_fsync_def_comps_instance(yac_instance_id, comp_names, num_comp_names)
subroutine yac_fget_dble_ptr(field_id, collection_size, recv_field, info, ierror)
subroutine yac_fenddef_instance(yac_instance_id)
subroutine yac_fdef_grid_cloud_real(grid_name, nbr_points, x_points_real, y_points_real, grid_id)
Definition of a grid consisting of a cloud of points.
character(len=:) function, allocatable yac_fget_component_metadata_instance(yac_instance_id, comp_name)
subroutine yac_fput_frac_real_ptr(field_id, nbr_pointsets, collection_size, send_field, send_frac_mask, info, ierror)
subroutine yac_fdef_lmask(grid_id, nbr_points, location, is_valid, mask_id)
subroutine yac_fdef_component_metadata_instance(yac_instance_id, comp_name, metadata)
subroutine yac_fset_imask(is_valid, points_id)
subroutine yac_fpredef_comp_instance(yac_instance_id, comp_name, comp_id)
subroutine yac_fexchange_single_pointset_real(send_field_id, recv_field_id, send_nbr_hor_points, recv_nbr_hor_points, collection_size, send_field, recv_field, send_info, recv_info, ierror)
subroutine yac_fdef_grid_nonuniform_edge_real(grid_name, nbr_vertices, nbr_cells, nbr_edges, nbr_connections, nbr_edges_per_cell, x_vertices_real, y_vertices_real, cell_to_edge, edge_to_vertex, grid_id, use_ll_edges)
Definition of a non-uniform unstructured grid (cells have varying numbers of vertices) with explicit ...
subroutine yac_fexchange_frac_single_pointset_real(send_field_id, recv_field_id, send_nbr_hor_points, recv_nbr_hor_points, collection_size, send_field, send_frac_mask, recv_field, send_info, recv_info, ierror)
subroutine yac_fdef_grid_nonuniform_dble(grid_name, nbr_vertices, nbr_cells, nbr_connections, nbr_vertices_per_cell, x_vertices, y_vertices, cell_to_vertex_in, grid_id, use_ll_edges)
Definition of a non-uniform unstructured grid (cells have varying numbers of vertices)
subroutine yac_fdef_field_metadata_instance(yac_instance_id, comp_name, grid_name, field_name, metadata)
subroutine yac_fexchange_raw_frac_single_pointset_real(send_field_id, recv_field_id, send_nbr_hor_points, src_field_buffer_size, collection_size, send_field, send_frac_mask, src_field_buffer, src_frac_mask_buffer, send_info, recv_info, ierror)
subroutine yac_fread_config_json_instance(yac_instance_id, json_filename)
subroutine yac_fexchange_raw_real_ptr(send_field_id, recv_field_id, send_nbr_pointsets, collection_size, send_field, src_field_buffer, send_info, recv_info, ierror)
subroutine yac_fdef_grid_reg2d_dble(grid_name, nbr_vertices, cyclic, x_vertices, y_vertices, grid_id)
Definition of a 2d regular grid.
subroutine yac_fdef_grid_cloud_dble(grid_name, nbr_points, x_points, y_points, grid_id)
Definition of a grid consisting of a cloud of points.
subroutine yac_fdef_points_unstruct_real(grid_id, nbr_points, location, x_points_real, y_points_real, point_id)
subroutine yac_fdef_points_reg2d_dble(grid_id, nbr_points, location, x_points, y_points, point_id)
subroutine yac_fdef_grid_reg2d_real(grid_name, nbr_vertices, cyclic, x_vertices_real, y_vertices_real, grid_id)
Definition of a 2d regular grid.
subroutine yac_fget_raw_frac_dble(field_id, src_field_buffer_size, collection_size, src_field_buffer, src_frac_mask_buffer, info, ierror)
subroutine yac_fdef_points_unstruct_dble(grid_id, nbr_points, location, x_points, y_points, point_id)
character(len=:) function, allocatable yac_fget_start_datetime_instance(yac_instance_id)