YAC 3.21.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
403 filename)
404 character(len=*), intent(in) :: filename
405 end subroutine yac_fset_grids_output_file
406
408 yac_instance_id, filename)
409 integer, intent(in) :: yac_instance_id
410 character(len=*), intent(in) :: filename
412 end interface yac_fset_grids_output_file
413
414 !----------------------------------------------------------------------
418 !----------------------------------------------------------------------
419
421 subroutine yac_fset_coordinates_check ( apply_check )
422
423 logical, intent(in) :: apply_check
424 end subroutine yac_fset_coordinates_check
425
426 subroutine yac_fset_coordinates_check_instance ( yac_instance_id, apply_check )
427 integer, intent(in) :: yac_instance_id
428 logical, intent(in) :: apply_check
431 end interface yac_fset_coordinates_check
432
433 !----------------------------------------------------------------------
437 !----------------------------------------------------------------------
438
441 mismatch_is_fatal )
442
443 logical, intent(in) :: mismatch_is_fatal
445
447 yac_instance_id, mismatch_is_fatal )
448
449 integer, intent(in) :: yac_instance_id
451 logical, intent(in) :: mismatch_is_fatal
454
455 !----------------------------------------------------------------------
459 !----------------------------------------------------------------------
460
461 interface yac_fcleanup
462
463 subroutine yac_fcleanup ()
464 end subroutine yac_fcleanup
465
466 subroutine yac_fcleanup_instance ( yac_instance_id )
467
468 integer, intent(in) :: yac_instance_id
469
470 end subroutine yac_fcleanup_instance
471
472 end interface yac_fcleanup
473
474 !----------------------------------------------------------------------
478 !----------------------------------------------------------------------
479
481
482 subroutine yac_ffinalize ()
483 end subroutine yac_ffinalize
484
485 subroutine yac_ffinalize_instance ( yac_instance_id )
486
487 integer, intent(in) :: yac_instance_id
488
489 end subroutine
490
491 end interface yac_ffinalize
492
493 !----------------------------------------------------------------------
497 !----------------------------------------------------------------------
498
499 interface
500 function yac_fget_version () result (version_string)
501 character(len=:), ALLOCATABLE :: version_string
502 end function yac_fget_version
503 end interface
504
505 !----------------------------------------------------------------------
509 !----------------------------------------------------------------------
510
511 interface
513 result(mpi_handshake_group_name)
514 character(len=:), ALLOCATABLE :: mpi_handshake_group_name
516 end interface
517
518 !----------------------------------------------------------------------
522 !----------------------------------------------------------------------
523
525
526 SUBROUTINE yac_fpredef_comp ( comp_name, comp_id )
527
528 character(len=*), intent(in) :: comp_name
529 integer, intent(out) :: comp_id
530
531 END SUBROUTINE yac_fpredef_comp
532
533 SUBROUTINE yac_fpredef_comp_instance ( yac_instance_id, comp_name, comp_id )
534
535 integer, intent(in) :: yac_instance_id
536 character(len=*), intent(in) :: comp_name
537 integer, intent(out) :: comp_id
538
539 END SUBROUTINE yac_fpredef_comp_instance
540
541 END INTERFACE yac_fpredef_comp
542
544
545 subroutine yac_fdef_comp ( comp_name, comp_id )
546
547 character(len=*), intent(in) :: comp_name
548 integer, intent(out) :: comp_id
549
550 end subroutine yac_fdef_comp
551
552 subroutine yac_fdef_comp_instance ( yac_instance_id, comp_name, comp_id )
553
554 integer, intent(in) :: yac_instance_id
555 character(len=*), intent(in) :: comp_name
556 integer, intent(out) :: comp_id
557
558 end subroutine yac_fdef_comp_instance
559
560 end interface yac_fdef_comp
561
563
564 subroutine yac_fdef_comps ( comp_names, num_comps, comp_ids )
565
566 use, intrinsic :: iso_c_binding, only : c_char
567 import :: yac_max_charlen
568
569 integer, intent(in) :: num_comps
570 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
571 comp_names(num_comps)
572 integer, intent(out) :: comp_ids(num_comps)
573
574 end subroutine yac_fdef_comps
575
576 subroutine yac_fdef_comps_instance ( yac_instance_id, &
577 comp_names, &
578 num_comps, &
579 comp_ids )
580
581 use, intrinsic :: iso_c_binding, only : c_char
582 import :: yac_max_charlen
583
584 integer, intent(in) :: yac_instance_id
585 integer, intent(in) :: num_comps
586 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
587 comp_names(num_comps)
588 integer, intent(out) :: comp_ids(num_comps)
589
590 end subroutine yac_fdef_comps_instance
591
592 end interface yac_fdef_comps
593
595
596 subroutine yac_fdef_comp_dummy ( )
597 end subroutine yac_fdef_comp_dummy
598
599 subroutine yac_fdef_comp_dummy_instance ( yac_instance_id )
600
601 integer, intent(in) :: yac_instance_id
602
603 end subroutine yac_fdef_comp_dummy_instance
604
605 end interface yac_fdef_comp_dummy
606
607 !----------------------------------------------------------------------
611 !----------------------------------------------------------------------
612
614
615 subroutine yac_fdef_datetime ( start_datetime, end_datetime )
616
617 character(len=*), intent(in), optional :: start_datetime
618 character(len=*), intent(in), optional :: end_datetime
619
620 end subroutine yac_fdef_datetime
621
622 subroutine yac_fdef_datetime_instance ( yac_instance_id, &
623 start_datetime, &
624 end_datetime )
625
626 integer, intent(in) :: yac_instance_id
627 character(len=*), intent(in), optional :: start_datetime
628 character(len=*), intent(in), optional :: end_datetime
629
630 end subroutine yac_fdef_datetime_instance
631
632 end interface yac_fdef_datetime
633
635
636 subroutine yac_fdef_calendar( calendar )
637 integer, intent(in) :: calendar
638 end subroutine yac_fdef_calendar
639
640 end interface yac_fdef_calendar
641
643
644 subroutine yac_fget_calendar( calendar )
645 integer, intent(out) :: calendar
646 end subroutine yac_fget_calendar
647
648 end interface yac_fget_calendar
649
650 !----------------------------------------------------------------------
654 !----------------------------------------------------------------------
655
657
658 function yac_fget_start_datetime () result (start_datetime_string)
659 character(len=:), ALLOCATABLE :: start_datetime_string
660 end function yac_fget_start_datetime
661
662 function yac_fget_start_datetime_instance (yac_instance_id) &
663 result(start_datetime_string)
664 integer, intent(in) :: yac_instance_id
665 character(len=:), ALLOCATABLE :: start_datetime_string
667
668 end interface yac_fget_start_datetime
669
671
672 function yac_fget_end_datetime () result (end_datetime_string)
673 character(len=:), ALLOCATABLE :: end_datetime_string
674 end function yac_fget_end_datetime
675
676 function yac_fget_end_datetime_instance (yac_instance_id) &
677 result(end_datetime_string)
678 integer, intent(in) :: yac_instance_id
679 character(len=:), ALLOCATABLE :: end_datetime_string
681
682 end interface yac_fget_end_datetime
683
684 !----------------------------------------------------------------------
688 !----------------------------------------------------------------------
689
691
711 subroutine yac_fdef_grid_nonuniform_real ( grid_name, &
712 nbr_vertices, &
713 nbr_cells, &
714 nbr_connections, &
715 nbr_vertices_per_cell, &
716 x_vertices, &
717 y_vertices, &
718 cell_to_vertex, &
719 grid_id, &
720 use_ll_edges)
721
722 character(len=*), intent(in) :: grid_name
723 integer, intent(in) :: nbr_vertices
724 integer, intent(in) :: nbr_cells
725 integer, intent(in) :: nbr_connections
726 integer, intent(in) :: nbr_vertices_per_cell(nbr_cells)
727 real, intent(in) :: x_vertices(nbr_vertices)
728 real, intent(in) :: y_vertices(nbr_vertices)
729 integer, intent(in) :: cell_to_vertex(nbr_connections)
730 integer, intent(out) :: grid_id
731 logical, optional, intent(in) :: use_ll_edges
732
733 end subroutine yac_fdef_grid_nonuniform_real
734
754 subroutine yac_fdef_grid_nonuniform_dble ( grid_name, &
755 nbr_vertices, &
756 nbr_cells, &
757 nbr_connections, &
758 nbr_vertices_per_cell, &
759 x_vertices, &
760 y_vertices, &
761 cell_to_vertex, &
762 grid_id, &
763 use_ll_edges)
764
765 character(len=*), intent(in) :: grid_name
766 integer, intent(in) :: nbr_vertices
767 integer, intent(in) :: nbr_cells
768 integer, intent(in) :: nbr_connections
769 integer, intent(in) :: nbr_vertices_per_cell(nbr_cells)
770 double precision, intent(in) :: x_vertices(nbr_vertices)
771 double precision, intent(in) :: y_vertices(nbr_vertices)
772 integer, intent(in) :: cell_to_vertex(nbr_connections)
773 integer, intent(out) :: grid_id
774 logical, optional, intent(in) :: use_ll_edges
775
776 end subroutine yac_fdef_grid_nonuniform_dble
777
796 subroutine yac_fdef_grid_unstruct_real ( grid_name, &
797 nbr_vertices, &
798 nbr_cells, &
799 nbr_vertices_per_cell, &
800 x_vertices, &
801 y_vertices, &
802 cell_to_vertex, &
803 grid_id, &
804 use_ll_edges)
805
806 character(len=*), intent(in) :: grid_name
807 integer, intent(in) :: nbr_vertices
808 integer, intent(in) :: nbr_cells
809 integer, intent(in) :: nbr_vertices_per_cell
810 real, intent(in) :: x_vertices(nbr_vertices)
811 real, intent(in) :: y_vertices(nbr_vertices)
812 integer, intent(in) :: cell_to_vertex( &
813 nbr_vertices_per_cell,nbr_cells)
814 integer, intent(out) :: grid_id
815 logical, optional, intent(in) :: use_ll_edges
816
817 end subroutine yac_fdef_grid_unstruct_real
818
837 subroutine yac_fdef_grid_unstruct_dble ( grid_name, &
838 nbr_vertices, &
839 nbr_cells, &
840 nbr_vertices_per_cell, &
841 x_vertices, &
842 y_vertices, &
843 cell_to_vertex, &
844 grid_id, &
845 use_ll_edges)
846
847 character(len=*), intent(in) :: grid_name
848 integer, intent(in) :: nbr_vertices
849 integer, intent(in) :: nbr_cells
850 integer, intent(in) :: nbr_vertices_per_cell
851 double precision, intent(in) :: x_vertices(nbr_vertices)
852 double precision, intent(in) :: y_vertices(nbr_vertices)
853 integer, intent(in) :: cell_to_vertex( &
854 nbr_vertices_per_cell,nbr_cells)
855 integer, intent(out) :: grid_id
856 logical, optional, intent(in) :: use_ll_edges
857
858 end subroutine yac_fdef_grid_unstruct_dble
859
881 subroutine yac_fdef_grid_nonuniform_edge_real ( grid_name, &
882 nbr_vertices, &
883 nbr_cells, &
884 nbr_edges, &
885 nbr_connections, &
886 nbr_edges_per_cell, &
887 x_vertices, &
888 y_vertices, &
889 cell_to_edge, &
890 edge_to_vertex, &
891 grid_id, &
892 use_ll_edges)
893
894 character(len=*), intent(in) :: grid_name
895 integer, intent(in) :: nbr_vertices
896 integer, intent(in) :: nbr_cells
897 integer, intent(in) :: nbr_edges
898 integer, intent(in) :: nbr_connections
899 integer, intent(in) :: nbr_edges_per_cell(nbr_cells)
900 real, intent(in) :: x_vertices(nbr_vertices)
901 real, intent(in) :: y_vertices(nbr_vertices)
902 integer, intent(in) :: cell_to_edge(nbr_connections)
903 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
904 integer, intent(out) :: grid_id
905 logical, optional, intent(in) :: use_ll_edges
906
908
930 subroutine yac_fdef_grid_nonuniform_edge_dble ( grid_name, &
931 nbr_vertices, &
932 nbr_cells, &
933 nbr_edges, &
934 nbr_connections, &
935 nbr_edges_per_cell, &
936 x_vertices, &
937 y_vertices, &
938 cell_to_edge, &
939 edge_to_vertex, &
940 grid_id, &
941 use_ll_edges)
942
943 character(len=*), intent(in) :: grid_name
944 integer, intent(in) :: nbr_vertices
945 integer, intent(in) :: nbr_cells
946 integer, intent(in) :: nbr_edges
947 integer, intent(in) :: nbr_connections
948 integer, intent(in) :: nbr_edges_per_cell(nbr_cells)
949 double precision, intent(in) :: x_vertices(nbr_vertices)
950 double precision, intent(in) :: y_vertices(nbr_vertices)
951 integer, intent(in) :: cell_to_edge(nbr_connections)
952 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
953 integer, intent(out) :: grid_id
954 logical, optional, intent(in) :: use_ll_edges
955
957
978 subroutine yac_fdef_grid_unstruct_edge_real ( grid_name, &
979 nbr_vertices, &
980 nbr_cells, &
981 nbr_edges, &
982 nbr_edges_per_cell, &
983 x_vertices, &
984 y_vertices, &
985 cell_to_edge, &
986 edge_to_vertex, &
987 grid_id, &
988 use_ll_edges)
989
990 character(len=*), intent(in) :: grid_name
991 integer, intent(in) :: nbr_vertices
992 integer, intent(in) :: nbr_cells
993 integer, intent(in) :: nbr_edges
994 integer, intent(in) :: nbr_edges_per_cell
995 real, intent(in) :: x_vertices(nbr_vertices)
996 real, intent(in) :: y_vertices(nbr_vertices)
997 integer, intent(in) :: cell_to_edge( &
998 nbr_edges_per_cell,nbr_cells)
999 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
1000 integer, intent(out) :: grid_id
1001 logical, optional, intent(in) :: use_ll_edges
1002
1004
1025 subroutine yac_fdef_grid_unstruct_edge_dble ( grid_name, &
1026 nbr_vertices, &
1027 nbr_cells, &
1028 nbr_edges, &
1029 nbr_edges_per_cell, &
1030 x_vertices, &
1031 y_vertices, &
1032 cell_to_edge, &
1033 edge_to_vertex, &
1034 grid_id, &
1035 use_ll_edges)
1036
1037 character(len=*), intent(in) :: grid_name
1038 integer, intent(in) :: nbr_vertices
1039 integer, intent(in) :: nbr_cells
1040 integer, intent(in) :: nbr_edges
1041 integer, intent(in) :: nbr_edges_per_cell
1042 double precision, intent(in) :: x_vertices(nbr_vertices)
1043 double precision, intent(in) :: y_vertices(nbr_vertices)
1044 integer, intent(in) :: cell_to_edge( &
1045 nbr_edges_per_cell,nbr_cells)
1046 integer, intent(in) :: edge_to_vertex(2,nbr_edges)
1047 integer, intent(out) :: grid_id
1048 logical, optional, intent(in) :: use_ll_edges
1049
1051
1059 subroutine yac_fdef_grid_curve2d_real ( grid_name, &
1060 nbr_vertices, &
1061 cyclic, &
1062 x_vertices, &
1063 y_vertices, &
1064 grid_id)
1065
1066 character(len=*), intent(in) :: grid_name
1067 integer, intent(in) :: nbr_vertices(2)
1068 integer, intent(in) :: cyclic(2)
1069 real, intent(in) :: &
1070 x_vertices(nbr_vertices(1),nbr_vertices(2))
1071 real, intent(in) :: &
1072 y_vertices(nbr_vertices(1),nbr_vertices(2))
1073 integer, intent(out) :: grid_id
1074
1075 end subroutine yac_fdef_grid_curve2d_real
1076
1084 subroutine yac_fdef_grid_curve2d_dble ( grid_name, &
1085 nbr_vertices, &
1086 cyclic, &
1087 x_vertices, &
1088 y_vertices, &
1089 grid_id)
1090
1091 character(len=*), intent(in) :: grid_name
1092 integer, intent(in) :: nbr_vertices(2)
1093 integer, intent(in) :: cyclic(2)
1094 double precision, intent(in) :: &
1095 x_vertices(nbr_vertices(1),nbr_vertices(2))
1096 double precision, intent(in) :: &
1097 y_vertices(nbr_vertices(1),nbr_vertices(2))
1098 integer, intent(out) :: grid_id
1099
1100 end subroutine yac_fdef_grid_curve2d_dble
1101
1109 subroutine yac_fdef_grid_reg2d_real ( grid_name, &
1110 nbr_vertices, &
1111 cyclic, &
1112 x_vertices, &
1113 y_vertices, &
1114 grid_id)
1115
1116 character(len=*), intent(in) :: grid_name
1117 integer, intent(in) :: nbr_vertices(2)
1118 integer, intent(in) :: cyclic(2)
1119 real, intent(in) :: x_vertices(nbr_vertices(1))
1120 real, intent(in) :: y_vertices(nbr_vertices(2))
1121 integer, intent(out) :: grid_id
1122
1123 end subroutine yac_fdef_grid_reg2d_real
1124
1132 subroutine yac_fdef_grid_reg2d_dble ( grid_name, &
1133 nbr_vertices, &
1134 cyclic, &
1135 x_vertices, &
1136 y_vertices, &
1137 grid_id)
1138
1139 character(len=*), intent(in) :: grid_name
1140 integer, intent(in) :: nbr_vertices(2)
1141 integer, intent(in) :: cyclic(2)
1142 double precision, intent(in) :: x_vertices(nbr_vertices(1))
1143 double precision, intent(in) :: y_vertices(nbr_vertices(2))
1144 integer, intent(out) :: grid_id
1145
1146 end subroutine yac_fdef_grid_reg2d_dble
1147
1154 subroutine yac_fdef_grid_cloud_real ( grid_name, &
1155 nbr_points, &
1156 x_points, &
1157 y_points, &
1158 grid_id)
1159
1160 character(len=*), intent(in) :: grid_name
1161 integer, intent(in) :: nbr_points
1162 real, intent(in) :: x_points(nbr_points)
1163 real, intent(in) :: y_points(nbr_points)
1164 integer, intent(out) :: grid_id
1165
1166 end subroutine yac_fdef_grid_cloud_real
1167
1174 subroutine yac_fdef_grid_cloud_dble ( grid_name, &
1175 nbr_points, &
1176 x_points, &
1177 y_points, &
1178 grid_id)
1179
1180 character(len=*), intent(in) :: grid_name
1181 integer, intent(in) :: nbr_points
1182 double precision, intent(in) :: x_points(nbr_points)
1183 double precision, intent(in) :: y_points(nbr_points)
1184 integer, intent(out) :: grid_id
1185
1186 end subroutine yac_fdef_grid_cloud_dble
1187
1197 subroutine yac_fdef_grid_reg2d_rot_real ( grid_name, &
1198 nbr_vertices, &
1199 cyclic, &
1200 x_vertices, &
1201 y_vertices, &
1202 x_north_pole, &
1203 y_north_pole, &
1204 grid_id)
1205
1206 character(len=*), intent(in) :: grid_name
1207 integer, intent(in) :: nbr_vertices(2)
1208 integer, intent(in) :: cyclic(2)
1209 real, intent(in) :: x_vertices(nbr_vertices(1))
1210 real, intent(in) :: y_vertices(nbr_vertices(2))
1211 real, intent(in) :: x_north_pole
1212 real, intent(in) :: y_north_pole
1213 integer, intent(out) :: grid_id
1214
1215 end subroutine yac_fdef_grid_reg2d_rot_real
1216
1226 subroutine yac_fdef_grid_reg2d_rot_dble ( grid_name, &
1227 nbr_vertices, &
1228 cyclic, &
1229 x_vertices, &
1230 y_vertices, &
1231 x_north_pole, &
1232 y_north_pole, &
1233 grid_id)
1234
1235 character(len=*), intent(in) :: grid_name
1236 integer, intent(in) :: nbr_vertices(2)
1237 integer, intent(in) :: cyclic(2)
1238 double precision, intent(in) :: x_vertices(nbr_vertices(1))
1239 double precision, intent(in) :: y_vertices(nbr_vertices(2))
1240 double precision, intent(in) :: x_north_pole
1241 double precision, intent(in) :: y_north_pole
1242 integer, intent(out) :: grid_id
1243
1244 end subroutine yac_fdef_grid_reg2d_rot_dble
1245
1246 end interface yac_fdef_grid
1247
1248 !----------------------------------------------------------------------
1252 !----------------------------------------------------------------------
1253
1255
1256 !--------------------------------------------------------------
1257 ! Interfaces for unnamed point definitions
1258 !--------------------------------------------------------------
1259
1260 subroutine yac_fdef_points_reg2d_real ( grid_id, &
1261 nbr_points, &
1262 location, &
1263 x_points_real, &
1264 y_points_real, &
1265 point_id )
1266
1267 integer, intent(in) :: grid_id
1268 integer, intent(in) :: nbr_points(2)
1269 integer, intent(in) :: location
1270 real, intent(in) :: x_points_real(nbr_points(1))
1271 real, intent(in) :: y_points_real(nbr_points(2))
1272 integer, intent(out) :: point_id
1273
1274 end subroutine yac_fdef_points_reg2d_real
1275
1276 subroutine yac_fdef_points_reg2d_dble ( grid_id, &
1277 nbr_points, &
1278 location, &
1279 x_points, &
1280 y_points, &
1281 point_id )
1282
1283 integer, intent(in) :: grid_id
1284 integer, intent(in) :: nbr_points(2)
1285 integer, intent(in) :: location
1286 double precision, intent(in) :: x_points(nbr_points(1))
1287 double precision, intent(in) :: y_points(nbr_points(2))
1288 integer, intent(out) :: point_id
1289
1290 end subroutine yac_fdef_points_reg2d_dble
1291
1292 subroutine yac_fdef_points_curve2d_real ( grid_id, &
1293 nbr_points, &
1294 location, &
1295 x_points_real, &
1296 y_points_real, &
1297 point_id )
1298
1299 integer, intent(in) :: grid_id
1300 integer, intent(in) :: nbr_points(2)
1301 integer, intent(in) :: location
1302 real, intent(in) :: &
1303 x_points_real(nbr_points(1),nbr_points(2))
1304 real, intent(in) :: &
1305 y_points_real(nbr_points(1),nbr_points(2))
1306 integer, intent(out) :: point_id
1307
1308 end subroutine yac_fdef_points_curve2d_real
1309
1310 subroutine yac_fdef_points_curve2d_dble ( grid_id, &
1311 nbr_points, &
1312 location, &
1313 x_points, &
1314 y_points, &
1315 point_id )
1316
1317 integer, intent(in) :: grid_id
1318 integer, intent(in) :: nbr_points(2)
1319 integer, intent(in) :: location
1320 double precision, intent(in) :: &
1321 x_points(nbr_points(1),nbr_points(2))
1322 double precision, intent(in) :: &
1323 y_points(nbr_points(1),nbr_points(2))
1324 integer, intent(out) :: point_id
1325
1326 end subroutine yac_fdef_points_curve2d_dble
1327
1328 subroutine yac_fdef_points_unstruct_real ( grid_id, &
1329 nbr_points, &
1330 location, &
1331 x_points_real, &
1332 y_points_real, &
1333 point_id )
1334
1335 integer, intent(in) :: grid_id
1336 integer, intent(in) :: nbr_points
1337 integer, intent(in) :: location
1338 real, intent(in) :: x_points_real(nbr_points)
1339 real, intent(in) :: y_points_real(nbr_points)
1340 integer, intent(out) :: point_id
1341
1342 end subroutine yac_fdef_points_unstruct_real
1343
1344 subroutine yac_fdef_points_unstruct_dble ( grid_id, &
1345 nbr_points, &
1346 location, &
1347 x_points, &
1348 y_points, &
1349 point_id )
1350
1351 integer, intent(in) :: grid_id
1352 integer, intent(in) :: nbr_points
1353 integer, intent(in) :: location
1354 double precision, intent(in) :: x_points(nbr_points)
1355 double precision, intent(in) :: y_points(nbr_points)
1356 integer, intent(out) :: point_id
1357
1358 end subroutine yac_fdef_points_unstruct_dble
1359
1360 subroutine yac_fdef_points_reg2d_rot_real ( grid_id, &
1361 nbr_points, &
1362 location, &
1363 x_points_real, &
1364 y_points_real, &
1365 x_north_pole_real, &
1366 y_north_pole_real, &
1367 point_id )
1368
1369 integer, intent(in) :: grid_id
1370 integer, intent(in) :: nbr_points(2)
1371 integer, intent(in) :: location
1372 real, intent(in) :: x_points_real(nbr_points(1))
1373 real, intent(in) :: y_points_real(nbr_points(2))
1374 real, intent(in) :: x_north_pole_real
1375 real, intent(in) :: y_north_pole_real
1376 integer, intent(out) :: point_id
1377
1378 end subroutine yac_fdef_points_reg2d_rot_real
1379
1380 subroutine yac_fdef_points_reg2d_rot_dble ( grid_id, &
1381 nbr_points, &
1382 location, &
1383 x_points, &
1384 y_points, &
1385 x_north_pole, &
1386 y_north_pole, &
1387 point_id )
1388
1389 integer, intent(in) :: grid_id
1390 integer, intent(in) :: nbr_points(2)
1391 integer, intent(in) :: location
1392 double precision, intent(in) :: x_points(nbr_points(1))
1393 double precision, intent(in) :: y_points(nbr_points(2))
1394 double precision, intent(in) :: x_north_pole
1395 double precision, intent(in) :: y_north_pole
1396 integer, intent(out) :: point_id
1397
1398 end subroutine yac_fdef_points_reg2d_rot_dble
1399
1400 !--------------------------------------------------------------
1401 ! Interfaces for named point definitions
1402 !--------------------------------------------------------------
1403
1404 subroutine yac_fdef_points_reg2d_named_real ( grid_id, &
1405 nbr_points, &
1406 location, &
1407 x_points_real, &
1408 y_points_real, &
1409 name, &
1410 point_id )
1411
1412 integer, intent(in) :: grid_id
1413 integer, intent(in) :: nbr_points(2)
1414 integer, intent(in) :: location
1415 real, intent(in) :: x_points_real(nbr_points(1))
1416 real, intent(in) :: y_points_real(nbr_points(2))
1417 character(len=*), intent(in) :: name
1418 integer, intent(out) :: point_id
1419
1421
1422 subroutine yac_fdef_points_reg2d_named_dble ( grid_id, &
1423 nbr_points, &
1424 location, &
1425 x_points, &
1426 y_points, &
1427 name, &
1428 point_id )
1429
1430 integer, intent(in) :: grid_id
1431 integer, intent(in) :: nbr_points(2)
1432 integer, intent(in) :: location
1433 double precision, intent(in) :: x_points(nbr_points(1))
1434 double precision, intent(in) :: y_points(nbr_points(2))
1435 character(len=*), intent(in) :: name
1436 integer, intent(out) :: point_id
1437
1439
1441 nbr_points, &
1442 location, &
1443 x_points_real, &
1444 y_points_real, &
1445 name, &
1446 point_id )
1447
1448 integer, intent(in) :: grid_id
1449 integer, intent(in) :: nbr_points(2)
1450 integer, intent(in) :: location
1451 real, intent(in) :: &
1452 x_points_real(nbr_points(1),nbr_points(2))
1453 real, intent(in) :: &
1454 y_points_real(nbr_points(1),nbr_points(2))
1455 character(len=*), intent(in) :: name
1456 integer, intent(out) :: point_id
1457
1459
1461 nbr_points, &
1462 location, &
1463 x_points, &
1464 y_points, &
1465 name, &
1466 point_id )
1467
1468 integer, intent(in) :: grid_id
1469 integer, intent(in) :: nbr_points(2)
1470 integer, intent(in) :: location
1471 double precision, intent(in) :: &
1472 x_points(nbr_points(1),nbr_points(2))
1473 double precision, intent(in) :: &
1474 y_points(nbr_points(1),nbr_points(2))
1475 character(len=*), intent(in) :: name
1476 integer, intent(out) :: point_id
1477
1479
1481 nbr_points, &
1482 location, &
1483 x_points_real, &
1484 y_points_real, &
1485 name, &
1486 point_id )
1487
1488 integer, intent(in) :: grid_id
1489 integer, intent(in) :: nbr_points
1490 integer, intent(in) :: location
1491 real, intent(in) :: x_points_real(nbr_points)
1492 real, intent(in) :: y_points_real(nbr_points)
1493 character(len=*), intent(in) :: name
1494 integer, intent(out) :: point_id
1495
1497
1499 nbr_points, &
1500 location, &
1501 x_points, &
1502 y_points, &
1503 name, &
1504 point_id )
1505
1506 integer, intent(in) :: grid_id
1507 integer, intent(in) :: nbr_points
1508 integer, intent(in) :: location
1509 double precision, intent(in) :: x_points(nbr_points)
1510 double precision, intent(in) :: y_points(nbr_points)
1511 character(len=*), intent(in) :: name
1512 integer, intent(out) :: point_id
1513
1515
1517 nbr_points, &
1518 location, &
1519 x_points_real, &
1520 y_points_real, &
1521 x_north_pole_real, &
1522 y_north_pole_real, &
1523 name, &
1524 point_id )
1525
1526 integer, intent(in) :: grid_id
1527 integer, intent(in) :: nbr_points(2)
1528 integer, intent(in) :: location
1529 real, intent(in) :: x_points_real(nbr_points(1))
1530 real, intent(in) :: y_points_real(nbr_points(2))
1531 real, intent(in) :: x_north_pole_real
1532 real, intent(in) :: y_north_pole_real
1533 character(len=*), intent(in) :: name
1534 integer, intent(out) :: point_id
1535
1537
1539 nbr_points, &
1540 location, &
1541 x_points, &
1542 y_points, &
1543 x_north_pole, &
1544 y_north_pole, &
1545 name, &
1546 point_id )
1547
1548 integer, intent(in) :: grid_id
1549 integer, intent(in) :: nbr_points(2)
1550 integer, intent(in) :: location
1551 double precision, intent(in) :: x_points(nbr_points(1))
1552 double precision, intent(in) :: y_points(nbr_points(2))
1553 double precision, intent(in) :: x_north_pole
1554 double precision, intent(in) :: y_north_pole
1555 character(len=*), intent(in) :: name
1556 integer, intent(out) :: point_id
1557
1559
1560 end interface yac_fdef_points
1561
1562 !----------------------------------------------------------------------
1566 !----------------------------------------------------------------------
1567
1568 interface
1569
1570 subroutine yac_fset_global_index ( global_index, &
1571 location, &
1572 grid_id )
1573
1574 integer, intent(in) :: global_index(*)
1575 integer, intent(in) :: location
1576 integer, intent(in) :: grid_id
1577
1578 end subroutine yac_fset_global_index
1579
1580 end interface
1581
1582 interface
1583
1584 subroutine yac_fset_global_index_yac_int ( global_index, &
1585 location, &
1586 grid_id )
1587
1588 import :: yac_int_kind
1589
1590 integer(kind=YAC_INT_KIND), intent(in) :: global_index(*)
1591 integer, intent(in) :: location
1592 integer, intent(in) :: grid_id
1593
1594 end subroutine yac_fset_global_index_yac_int
1595
1596 end interface
1597
1598 !----------------------------------------------------------------------
1602 !----------------------------------------------------------------------
1603
1605
1606 subroutine yac_fset_core_imask ( is_core, &
1607 location, &
1608 grid_id )
1609
1610 integer, intent(in) :: is_core(*)
1611 integer, intent(in) :: location
1612 integer, intent(in) :: grid_id
1613
1614 end subroutine yac_fset_core_imask
1615
1616 subroutine yac_fset_core_lmask ( is_core, &
1617 location, &
1618 grid_id )
1619
1620 logical, intent(in) :: is_core(*)
1621 integer, intent(in) :: location
1622 integer, intent(in) :: grid_id
1623
1624 end subroutine yac_fset_core_lmask
1625
1626 end interface yac_fset_core_mask
1627
1628 !----------------------------------------------------------------------
1632 !----------------------------------------------------------------------
1633
1635
1636 subroutine yac_fset_imask ( is_valid, points_id )
1637
1638 integer, intent(in) :: is_valid(*)
1639 integer, intent(in) :: points_id
1640
1641 end subroutine yac_fset_imask
1642
1643 subroutine yac_fset_lmask ( is_valid, points_id )
1644
1645 logical, intent(in) :: is_valid(*)
1646 integer, intent(in) :: points_id
1647
1648 end subroutine yac_fset_lmask
1649
1650 end interface
1651
1652 !----------------------------------------------------------------------
1656 !----------------------------------------------------------------------
1657
1659
1660 subroutine yac_fdef_imask ( grid_id, &
1661 nbr_points, &
1662 location, &
1663 is_valid, &
1664 mask_id )
1665
1666 integer, intent(in) :: grid_id
1667 integer, intent(in) :: nbr_points
1668 integer, intent(in) :: location
1669 integer, intent(in) :: is_valid(*)
1672 integer, intent(out) :: mask_id
1673
1674 end subroutine yac_fdef_imask
1675
1676 subroutine yac_fdef_lmask ( grid_id, &
1677 nbr_points, &
1678 location, &
1679 is_valid, &
1680 mask_id )
1681
1682 integer, intent(in) :: grid_id
1683 integer, intent(in) :: nbr_points
1684 integer, intent(in) :: location
1685 logical, intent(in) :: is_valid(*)
1688 integer, intent(out) :: mask_id
1689
1690 end subroutine yac_fdef_lmask
1691
1692 end interface
1693
1695
1696 subroutine yac_fdef_imask_named ( grid_id, &
1697 nbr_points, &
1698 location, &
1699 is_valid, &
1700 name, &
1701 mask_id )
1702
1703 integer, intent(in) :: grid_id
1704 integer, intent(in) :: nbr_points
1705 integer, intent(in) :: location
1706 integer, intent(in) :: is_valid(*)
1709 character(len=*), intent(in) :: name
1710 integer, intent(out) :: mask_id
1711
1712 end subroutine yac_fdef_imask_named
1713
1714 subroutine yac_fdef_lmask_named ( grid_id, &
1715 nbr_points, &
1716 location, &
1717 is_valid, &
1718 name, &
1719 mask_id )
1720
1721 integer, intent(in) :: grid_id
1722 integer, intent(in) :: nbr_points
1723 integer, intent(in) :: location
1724 logical, intent(in) :: is_valid(*)
1727 character(len=*), intent(in) :: name
1728 integer, intent(out) :: mask_id
1729
1730 end subroutine yac_fdef_lmask_named
1731
1732 end interface
1733
1734 !----------------------------------------------------------------------
1739 !----------------------------------------------------------------------
1740
1741 interface
1742
1743 subroutine yac_fdef_field ( field_name, &
1744 component_id, &
1745 point_ids, &
1746 num_pointsets, &
1747 collection_size,&
1748 timestep, &
1749 time_unit, &
1750 field_id )
1751
1752 character(len=*), intent (in) :: field_name
1753 integer, intent (in) :: component_id
1754 integer, intent (in) :: point_ids(*)
1755 integer, intent (in) :: num_pointsets
1756 integer, intent (in) :: collection_size
1757 character(len=*), intent (in) :: timestep
1758 integer, intent (in) :: time_unit
1759 integer, intent (out) :: field_id
1760
1761 end subroutine yac_fdef_field
1762
1763 end interface
1764
1765 !----------------------------------------------------------------------
1770 !----------------------------------------------------------------------
1771
1772 interface
1773
1774 subroutine yac_fdef_field_mask ( field_name, &
1775 component_id, &
1776 point_ids, &
1777 mask_ids, &
1778 num_pointsets, &
1779 collection_size,&
1780 timestep, &
1781 time_unit, &
1782 field_id )
1783
1784 character(len=*), intent (in) :: field_name
1785 integer, intent (in) :: component_id
1786 integer, intent (in) :: point_ids(*)
1787 integer, intent (in) :: mask_ids(*)
1788 integer, intent (in) :: num_pointsets
1789 integer, intent (in) :: collection_size
1790 character(len=*), intent (in) :: timestep
1791 integer, intent (in) :: time_unit
1792 integer, intent (out) :: field_id
1793
1794 end subroutine yac_fdef_field_mask
1795
1796 end interface
1797
1798 !----------------------------------------------------------------------
1802 !----------------------------------------------------------------------
1803
1804 interface
1805
1806 subroutine yac_fcheck_field_dimensions( field_id, &
1807 collection_size, &
1808 num_interp_fields, &
1809 interp_field_sizes )
1810
1811 integer, intent (in) :: field_id
1812 integer, intent (in) :: collection_size
1813 integer, intent (in) :: num_interp_fields
1815 integer, intent (in) :: interp_field_sizes(num_interp_fields)
1817
1818 end subroutine yac_fcheck_field_dimensions
1819
1820 end interface
1821
1822 !----------------------------------------------------------------------
1826 !----------------------------------------------------------------------
1827
1828 interface
1829
1830 subroutine yac_fcheck_src_field_buffer_size( field_id, &
1831 collection_size, &
1832 src_field_buffer_size )
1833
1834 integer, intent (in) :: field_id
1835 integer, intent (in) :: collection_size
1836 integer, intent (in) :: src_field_buffer_size
1838
1840
1842 num_src_fields, &
1843 collection_size, &
1844 src_field_buffer_sizes )
1845
1846 integer, intent (in) :: field_id
1847 integer, intent (in) :: num_src_fields
1848 integer, intent (in) :: collection_size
1849 integer, intent (in) :: src_field_buffer_sizes(num_src_fields)
1850
1852
1854
1855 end interface
1856
1857 !----------------------------------------------------------------------
1862 !----------------------------------------------------------------------
1863
1864 interface
1865
1896 field_id, &
1897 frac_mask_fallback_value, &
1898 scaling_factor, &
1899 scaling_summand, &
1900 num_fixed_values, &
1901 fixed_values, &
1902 num_tgt_per_fixed_value, &
1903 tgt_idx_fixed, &
1904 num_wgt_tgt, &
1905 wgt_tgt_idx, &
1906 num_src_per_tgt, &
1907 weights, &
1908 src_field_idx, &
1909 src_idx, &
1910 num_src_fields, &
1911 src_field_buffer_sizes )
1912
1913 integer, intent (in) :: field_id
1914 double precision, intent(out) :: frac_mask_fallback_value
1915 double precision, intent(out) :: scaling_factor
1916 double precision, intent(out) :: scaling_summand
1917 integer, intent(out) :: num_fixed_values
1918 double precision, allocatable, intent(out) :: fixed_values(:)
1919 integer, allocatable, intent(out) :: num_tgt_per_fixed_value(:)
1920 integer, allocatable, intent(out) :: tgt_idx_fixed(:)
1921 integer, intent(out) :: num_wgt_tgt
1922 integer, allocatable, intent(out) :: wgt_tgt_idx(:)
1923 integer, allocatable, intent(out) :: num_src_per_tgt(:)
1924 double precision, allocatable, intent(out) :: weights(:)
1925 integer, allocatable, intent(out) :: src_field_idx(:)
1926 integer, allocatable, intent(out) :: src_idx(:)
1927 integer, intent(out) :: num_src_fields
1928 integer, allocatable, intent(out) :: src_field_buffer_sizes(:)
1930
1959 field_id, &
1960 frac_mask_fallback_value, &
1961 scaling_factor, &
1962 scaling_summand, &
1963 num_fixed_values, &
1964 fixed_values, &
1965 num_tgt_per_fixed_value, &
1966 tgt_idx_fixed, &
1967 src_indptr, &
1968 weights, &
1969 src_field_idx, &
1970 src_idx, &
1971 num_src_fields, &
1972 src_field_buffer_sizes )
1973
1974 integer, intent (in) :: field_id
1975 double precision, intent(out) :: frac_mask_fallback_value
1976 double precision, intent(out) :: scaling_factor
1977 double precision, intent(out) :: scaling_summand
1978 integer, intent(out) :: num_fixed_values
1979 double precision, allocatable, intent(out) :: fixed_values(:)
1980 integer, allocatable, intent(out) :: num_tgt_per_fixed_value(:)
1981 integer, allocatable, intent(out) :: tgt_idx_fixed(:)
1982 integer, allocatable, intent(out) :: src_indptr(:)
1983 double precision, allocatable, intent(out) :: weights(:)
1984 integer, allocatable, intent(out) :: src_field_idx(:)
1985 integer, allocatable, intent(out) :: src_idx(:)
1986 integer, intent(out) :: num_src_fields
1987 integer, allocatable, intent(out) :: src_field_buffer_sizes(:)
1989 end interface
1990
1991 !----------------------------------------------------------------------
1995 !----------------------------------------------------------------------
1996
1997 interface yac_fput
1998
1999 subroutine yac_fput_real ( field_id, &
2000 nbr_hor_points, &
2001 nbr_pointsets, &
2002 collection_size, &
2003 send_field, &
2004 info, &
2005 ierror )
2006
2007 integer, intent (in) :: field_id
2008 integer, intent (in) :: nbr_hor_points
2009 integer, intent (in) :: nbr_pointsets
2010 integer, intent (in) :: collection_size
2011 real, intent (in) :: send_field(nbr_hor_points, &
2012 nbr_pointsets, &
2013 collection_size)
2014
2015 integer, intent (out) :: info
2016 integer, intent (out) :: ierror
2017
2018 end subroutine yac_fput_real
2019
2020 subroutine yac_fput_real_ptr ( field_id, &
2021 nbr_pointsets, &
2022 collection_size, &
2023 send_field, &
2024 info, &
2025 ierror )
2026
2027 import :: yac_real_ptr
2028
2029 integer, intent (in) :: field_id
2030 integer, intent (in) :: nbr_pointsets
2031 integer, intent (in) :: collection_size
2032 type(yac_real_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
2033
2034 integer, intent (out) :: info
2035 integer, intent (out) :: ierror
2036
2037 end subroutine yac_fput_real_ptr
2038
2039 subroutine yac_fput_single_pointset_real ( field_id, &
2040 nbr_hor_points, &
2041 collection_size, &
2042 send_field, &
2043 info, &
2044 ierror )
2045
2046 integer, intent (in) :: field_id
2047 integer, intent (in) :: nbr_hor_points
2048 integer, intent (in) :: collection_size
2049 real, intent (in) :: send_field(nbr_hor_points, collection_size)
2050
2051 integer, intent (out) :: info
2052 integer, intent (out) :: ierror
2053
2054 end subroutine yac_fput_single_pointset_real
2055
2056 subroutine yac_fput_dble ( field_id, &
2057 nbr_hor_points, &
2058 nbr_pointsets, &
2059 collection_size, &
2060 send_field, &
2061 info, &
2062 ierror )
2063
2064 integer, intent (in) :: field_id
2065 integer, intent (in) :: nbr_hor_points
2066 integer, intent (in) :: nbr_pointsets
2067 integer, intent (in) :: collection_size
2068 double precision, intent (in) :: send_field(nbr_hor_points, nbr_pointsets, collection_size)
2069
2070 integer, intent (out) :: info
2071 integer, intent (out) :: ierror
2072
2073 end subroutine yac_fput_dble
2074
2075 subroutine yac_fput_dble_ptr ( field_id, &
2076 nbr_pointsets, &
2077 collection_size, &
2078 send_field, &
2079 info, &
2080 ierror )
2081
2082 import :: yac_dble_ptr
2083
2084 integer, intent (in) :: field_id
2085 integer, intent (in) :: nbr_pointsets
2086 integer, intent (in) :: collection_size
2087 type(yac_dble_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
2088
2089 integer, intent (out) :: info
2090 integer, intent (out) :: ierror
2091
2092 end subroutine yac_fput_dble_ptr
2093
2094 subroutine yac_fput_single_pointset_dble ( field_id, &
2095 nbr_hor_points, &
2096 collection_size, &
2097 send_field, &
2098 info, &
2099 ierror )
2100
2101 integer, intent (in) :: field_id
2102 integer, intent (in) :: nbr_hor_points
2103 integer, intent (in) :: collection_size
2104 double precision, intent (in) :: send_field(nbr_hor_points, collection_size)
2105
2106 integer, intent (out) :: info
2107 integer, intent (out) :: ierror
2108
2109 end subroutine yac_fput_single_pointset_dble
2110
2111 subroutine yac_fput_frac_real ( field_id, &
2112 nbr_hor_points, &
2113 nbr_pointsets, &
2114 collection_size, &
2115 send_field, &
2116 send_frac_mask, &
2117 info, &
2118 ierror )
2119
2120 integer, intent (in) :: field_id
2121 integer, intent (in) :: nbr_hor_points
2122 integer, intent (in) :: nbr_pointsets
2123 integer, intent (in) :: collection_size
2124 real, intent (in) :: send_field(nbr_hor_points, &
2125 nbr_pointsets, &
2126 collection_size)
2127
2128 real, intent (in) :: send_frac_mask(nbr_hor_points, &
2129 nbr_pointsets, &
2130 collection_size)
2131
2132 integer, intent (out) :: info
2133 integer, intent (out) :: ierror
2134
2135 end subroutine yac_fput_frac_real
2136
2137 subroutine yac_fput_frac_real_ptr ( field_id, &
2138 nbr_pointsets, &
2139 collection_size, &
2140 send_field, &
2141 send_frac_mask, &
2142 info, &
2143 ierror )
2144
2145 import :: yac_real_ptr
2146
2147 integer, intent (in) :: field_id
2148 integer, intent (in) :: nbr_pointsets
2149 integer, intent (in) :: collection_size
2150 type(yac_real_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
2151
2152 type(yac_real_ptr), intent (in) :: send_frac_mask(nbr_pointsets, collection_size)
2153
2154 integer, intent (out) :: info
2155 integer, intent (out) :: ierror
2156
2157 end subroutine yac_fput_frac_real_ptr
2158
2159 subroutine yac_fput_frac_single_pointset_real ( field_id, &
2160 nbr_hor_points, &
2161 collection_size, &
2162 send_field, &
2163 send_frac_mask, &
2164 info, &
2165 ierror )
2166
2167 integer, intent (in) :: field_id
2168 integer, intent (in) :: nbr_hor_points
2169 integer, intent (in) :: collection_size
2170 real, intent (in) :: send_field(nbr_hor_points, collection_size)
2171
2172 real, intent (in) :: send_frac_mask(nbr_hor_points, collection_size)
2173
2174 integer, intent (out) :: info
2175 integer, intent (out) :: ierror
2176
2178
2179 subroutine yac_fput_frac_dble ( field_id, &
2180 nbr_hor_points, &
2181 nbr_pointsets, &
2182 collection_size, &
2183 send_field, &
2184 send_frac_mask, &
2185 info, &
2186 ierror )
2187
2188 integer, intent (in) :: field_id
2189 integer, intent (in) :: nbr_hor_points
2190 integer, intent (in) :: nbr_pointsets
2191 integer, intent (in) :: collection_size
2192 double precision, intent (in) :: send_field(nbr_hor_points, nbr_pointsets, collection_size)
2193
2194 double precision, intent (in) :: send_frac_mask(nbr_hor_points, nbr_pointsets, collection_size)
2195
2196 integer, intent (out) :: info
2197 integer, intent (out) :: ierror
2198
2199 end subroutine yac_fput_frac_dble
2200
2201 subroutine yac_fput_frac_dble_ptr ( field_id, &
2202 nbr_pointsets, &
2203 collection_size, &
2204 send_field, &
2205 send_frac_mask, &
2206 info, &
2207 ierror )
2208
2209 import :: yac_dble_ptr
2210
2211 integer, intent (in) :: field_id
2212 integer, intent (in) :: nbr_pointsets
2213 integer, intent (in) :: collection_size
2214 type(yac_dble_ptr), intent (in) :: send_field(nbr_pointsets, collection_size)
2215
2216 type(yac_dble_ptr), intent (in) :: send_frac_mask(nbr_pointsets, collection_size)
2217
2218 integer, intent (out) :: info
2219 integer, intent (out) :: ierror
2220
2221 end subroutine yac_fput_frac_dble_ptr
2222
2223 subroutine yac_fput_frac_single_pointset_dble ( field_id, &
2224 nbr_hor_points, &
2225 collection_size, &
2226 send_field, &
2227 send_frac_mask, &
2228 info, &
2229 ierror )
2230
2231 integer, intent (in) :: field_id
2232 integer, intent (in) :: nbr_hor_points
2233 integer, intent (in) :: collection_size
2234 double precision, intent (in) :: send_field(nbr_hor_points, collection_size)
2235
2236 double precision, intent (in) :: send_frac_mask(nbr_hor_points, collection_size)
2237
2238 integer, intent (out) :: info
2239 integer, intent (out) :: ierror
2240
2242
2243 end interface yac_fput
2244
2245 !----------------------------------------------------------------------
2249 !----------------------------------------------------------------------
2250
2251 interface yac_fget
2252
2253 subroutine yac_fget_real ( field_id, &
2254 nbr_hor_points, &
2255 collection_size, &
2256 recv_field, &
2257 info, &
2258 ierror )
2259
2260 integer, intent (in) :: field_id
2261 integer, intent (in) :: nbr_hor_points
2262 integer, intent (in) :: collection_size
2263 real, intent (inout) :: recv_field(nbr_hor_points, collection_size)
2264 integer, intent (out) :: info
2265 integer, intent (out) :: ierror
2266
2267 end subroutine yac_fget_real
2268
2269 subroutine yac_fget_real_ptr ( field_id, &
2270 collection_size, &
2271 recv_field, &
2272 info, &
2273 ierror )
2274
2275 import :: yac_real_ptr
2276
2277 integer, intent (in) :: field_id
2278 integer, intent (in) :: collection_size
2279 type(yac_real_ptr) :: recv_field(collection_size)
2280 integer, intent (out) :: info
2281 integer, intent (out) :: ierror
2282
2283 end subroutine yac_fget_real_ptr
2284
2285 subroutine yac_fget_dble ( field_id, &
2286 nbr_hor_points, &
2287 collection_size, &
2288 recv_field, &
2289 info, &
2290 ierror )
2291
2292 integer, intent (in) :: field_id
2293 integer, intent (in) :: nbr_hor_points
2294 integer, intent (in) :: collection_size
2295 double precision, intent (inout) :: &
2296 recv_field(nbr_hor_points, collection_size)
2297 integer, intent (out) :: info
2298 integer, intent (out) :: ierror
2299
2300 end subroutine yac_fget_dble
2301
2302 subroutine yac_fget_dble_ptr ( field_id, &
2303 collection_size, &
2304 recv_field, &
2305 info, &
2306 ierror )
2307
2308 import :: yac_dble_ptr
2309
2310 integer, intent (in) :: field_id
2311 integer, intent (in) :: collection_size
2312 type(yac_dble_ptr) :: recv_field(collection_size)
2313 integer, intent (out) :: info
2314 integer, intent (out) :: ierror
2315
2316 end subroutine yac_fget_dble_ptr
2317
2318 end interface yac_fget
2319
2320 !----------------------------------------------------------------------
2324 !----------------------------------------------------------------------
2325
2327
2328 subroutine yac_fget_raw_real ( field_id, &
2329 src_field_buffer_size, &
2330 collection_size, &
2331 src_field_buffer, &
2332 info, &
2333 ierror )
2334
2335 integer, intent (in) :: field_id
2336 integer, intent (in) :: src_field_buffer_size
2338 integer, intent (in) :: collection_size
2339 real, intent (out) :: &
2340 src_field_buffer(src_field_buffer_size, collection_size)
2341
2342 integer, intent (out) :: info
2343 integer, intent (out) :: ierror
2344
2345 end subroutine yac_fget_raw_real
2346
2347 subroutine yac_fget_raw_real_ptr ( field_id, &
2348 num_src_fields, &
2349 collection_size, &
2350 src_field_buffer, &
2351 info, &
2352 ierror )
2353
2354 import :: yac_real_ptr
2355
2356 integer, intent (in) :: field_id
2357 integer, intent (in) :: num_src_fields
2358 integer, intent (in) :: collection_size
2359 type(yac_real_ptr), intent(inout) :: &
2360 src_field_buffer(num_src_fields, collection_size)
2361
2362 integer, intent (out) :: info
2363 integer, intent (out) :: ierror
2364
2365 end subroutine yac_fget_raw_real_ptr
2366
2367 subroutine yac_fget_raw_dble ( field_id, &
2368 src_field_buffer_size, &
2369 collection_size, &
2370 src_field_buffer, &
2371 info, &
2372 ierror )
2373
2374 integer, intent (in) :: field_id
2375 integer, intent (in) :: src_field_buffer_size
2377 integer, intent (in) :: collection_size
2378 double precision, intent (out) :: &
2379 src_field_buffer(src_field_buffer_size, collection_size)
2380
2381 integer, intent (out) :: info
2382 integer, intent (out) :: ierror
2383
2384 end subroutine yac_fget_raw_dble
2385
2386 subroutine yac_fget_raw_dble_ptr ( field_id, &
2387 num_src_fields, &
2388 collection_size, &
2389 src_field_buffer, &
2390 info, &
2391 ierror )
2392
2393 import :: yac_dble_ptr
2394
2395 integer, intent (in) :: field_id
2396 integer, intent (in) :: num_src_fields
2397 integer, intent (in) :: collection_size
2398 type(yac_dble_ptr), intent(inout) :: &
2399 src_field_buffer(num_src_fields, collection_size)
2400
2401 integer, intent (out) :: info
2402 integer, intent (out) :: ierror
2403
2404 end subroutine yac_fget_raw_dble_ptr
2405
2406 subroutine yac_fget_raw_frac_real ( field_id, &
2407 src_field_buffer_size, &
2408 collection_size, &
2409 src_field_buffer, &
2410 src_frac_mask_buffer, &
2411 info, &
2412 ierror )
2413
2414 integer, intent (in) :: field_id
2415 integer, intent (in) :: src_field_buffer_size
2417 integer, intent (in) :: collection_size
2418 real, intent (out) :: &
2419 src_field_buffer(src_field_buffer_size, collection_size)
2420
2421 real, intent (out) :: &
2422 src_frac_mask_buffer(src_field_buffer_size, collection_size)
2423
2424 integer, intent (out) :: info
2425 integer, intent (out) :: ierror
2426
2427 end subroutine yac_fget_raw_frac_real
2428
2429 subroutine yac_fget_raw_frac_real_ptr ( field_id, &
2430 num_src_fields, &
2431 collection_size, &
2432 src_field_buffer, &
2433 src_frac_mask_buffer, &
2434 info, &
2435 ierror )
2436
2437 import :: yac_real_ptr
2438
2439 integer, intent (in) :: field_id
2440 integer, intent (in) :: num_src_fields
2441 integer, intent (in) :: collection_size
2442 type(yac_real_ptr), intent(inout) :: &
2443 src_field_buffer(num_src_fields, collection_size)
2444
2445 type(yac_real_ptr), intent(inout) :: &
2446 src_frac_mask_buffer(num_src_fields, collection_size)
2447
2448 integer, intent (out) :: info
2449 integer, intent (out) :: ierror
2450
2451 end subroutine yac_fget_raw_frac_real_ptr
2452
2453 subroutine yac_fget_raw_frac_dble ( field_id, &
2454 src_field_buffer_size, &
2455 collection_size, &
2456 src_field_buffer, &
2457 src_frac_mask_buffer, &
2458 info, &
2459 ierror )
2460
2461 integer, intent (in) :: field_id
2462 integer, intent (in) :: src_field_buffer_size
2464 integer, intent (in) :: collection_size
2465 double precision, intent (out) :: &
2466 src_field_buffer(src_field_buffer_size, collection_size)
2467
2468 double precision, intent (out) :: &
2469 src_frac_mask_buffer(src_field_buffer_size, collection_size)
2470
2471 integer, intent (out) :: info
2472 integer, intent (out) :: ierror
2473
2474 end subroutine yac_fget_raw_frac_dble
2475
2476 subroutine yac_fget_raw_frac_dble_ptr ( field_id, &
2477 num_src_fields, &
2478 collection_size, &
2479 src_field_buffer, &
2480 src_frac_mask_buffer, &
2481 info, &
2482 ierror )
2483
2484 import :: yac_dble_ptr
2485
2486 integer, intent (in) :: field_id
2487 integer, intent (in) :: num_src_fields
2488 integer, intent (in) :: collection_size
2489 type(yac_dble_ptr), intent(inout) :: &
2490 src_field_buffer(num_src_fields, collection_size)
2491
2492 type(yac_dble_ptr), intent(inout) :: &
2493 src_frac_mask_buffer(num_src_fields, collection_size)
2494
2495 integer, intent (out) :: info
2496 integer, intent (out) :: ierror
2497
2498 end subroutine yac_fget_raw_frac_dble_ptr
2499
2500 end interface yac_fget_raw
2501
2502 !----------------------------------------------------------------------
2506 !----------------------------------------------------------------------
2507
2509
2510 subroutine yac_fget_async_dble_ptr ( field_id, &
2511 collection_size, &
2512 recv_field, &
2513 info, &
2514 ierror )
2515
2516 import :: yac_dble_ptr
2517
2518 integer, intent (in) :: field_id
2519 integer, intent (in) :: collection_size
2520 type(yac_dble_ptr) :: recv_field(collection_size)
2521 integer, intent (out) :: info
2522 integer, intent (out) :: ierror
2523
2524 end subroutine yac_fget_async_dble_ptr
2525
2526 end interface yac_fget_async
2527
2528 !----------------------------------------------------------------------
2533 !----------------------------------------------------------------------
2534
2536
2537 subroutine yac_fget_raw_async_dble_ptr ( field_id, &
2538 num_src_fields, &
2539 collection_size, &
2540 src_field_buffer, &
2541 info, &
2542 ierror )
2543
2544 import :: yac_dble_ptr
2545
2546 integer, intent (in) :: field_id
2547 integer, intent (in) :: num_src_fields
2548 integer, intent (in) :: collection_size
2549 type(yac_dble_ptr), intent(inout) :: &
2550 src_field_buffer(num_src_fields, collection_size)
2551
2552 integer, intent (out) :: info
2553 integer, intent (out) :: ierror
2554
2555 end subroutine yac_fget_raw_async_dble_ptr
2556
2557 subroutine yac_fget_raw_frac_async_dble_ptr ( field_id, &
2558 num_src_fields, &
2559 collection_size, &
2560 src_field_buffer, &
2561 src_frac_mask_buffer, &
2562 info, &
2563 ierror )
2564
2565 import :: yac_dble_ptr
2566
2567 integer, intent (in) :: field_id
2568 integer, intent (in) :: num_src_fields
2569 integer, intent (in) :: collection_size
2570 type(yac_dble_ptr), intent(inout) :: &
2571 src_field_buffer(num_src_fields, collection_size)
2572
2573 type(yac_dble_ptr), intent(inout) :: &
2574 src_frac_mask_buffer(num_src_fields, collection_size)
2575
2576 integer, intent (out) :: info
2577 integer, intent (out) :: ierror
2578
2580
2581 end interface yac_fget_raw_async
2582
2583 !----------------------------------------------------------------------
2587 !----------------------------------------------------------------------
2588
2590
2591 subroutine yac_fexchange_real ( send_field_id, &
2592 recv_field_id, &
2593 send_nbr_hor_points, &
2594 send_nbr_pointsets, &
2595 recv_nbr_hor_points, &
2596 collection_size, &
2597 send_field, &
2598 recv_field, &
2599 send_info, &
2600 recv_info, &
2601 ierror )
2602
2603 integer, intent (in) :: send_field_id
2604 integer, intent (in) :: recv_field_id
2605 integer, intent (in) :: send_nbr_hor_points
2606 integer, intent (in) :: send_nbr_pointsets
2607 integer, intent (in) :: recv_nbr_hor_points
2608 integer, intent (in) :: collection_size
2609 real, intent (in) :: send_field(send_nbr_hor_points, &
2610 send_nbr_pointsets, &
2611 collection_size)
2612
2613 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2614 collection_size)
2615
2616 integer, intent (out) :: send_info
2617 integer, intent (out) :: recv_info
2618 integer, intent (out) :: ierror
2619
2620 end subroutine yac_fexchange_real
2621
2622 subroutine yac_fexchange_real_ptr ( send_field_id, &
2623 recv_field_id, &
2624 send_nbr_pointsets, &
2625 collection_size, &
2626 send_field, &
2627 recv_field, &
2628 send_info, &
2629 recv_info, &
2630 ierror )
2631
2632 import :: yac_real_ptr
2633
2634 integer, intent (in) :: send_field_id
2635 integer, intent (in) :: recv_field_id
2636 integer, intent (in) :: send_nbr_pointsets
2637 integer, intent (in) :: collection_size
2638 type(yac_real_ptr), intent (in) :: &
2639 send_field(send_nbr_pointsets, &
2640 collection_size)
2641
2642 type(yac_real_ptr) :: recv_field(collection_size)
2643
2644 integer, intent (out) :: send_info
2645 integer, intent (out) :: recv_info
2646 integer, intent (out) :: ierror
2647
2648 end subroutine yac_fexchange_real_ptr
2649
2650 subroutine yac_fexchange_single_pointset_real ( send_field_id, &
2651 recv_field_id, &
2652 send_nbr_hor_points, &
2653 recv_nbr_hor_points, &
2654 collection_size, &
2655 send_field, &
2656 recv_field, &
2657 send_info, &
2658 recv_info, &
2659 ierror )
2660
2661 integer, intent (in) :: send_field_id
2662 integer, intent (in) :: recv_field_id
2663 integer, intent (in) :: send_nbr_hor_points
2664 integer, intent (in) :: recv_nbr_hor_points
2665 integer, intent (in) :: collection_size
2666 real, intent (in) :: send_field(send_nbr_hor_points, &
2667 collection_size)
2668
2669 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2670 collection_size)
2671
2672 integer, intent (out) :: send_info
2673 integer, intent (out) :: recv_info
2674 integer, intent (out) :: ierror
2675
2677
2678 subroutine yac_fexchange_dble ( send_field_id, &
2679 recv_field_id, &
2680 send_nbr_hor_points, &
2681 send_nbr_pointsets, &
2682 recv_nbr_hor_points, &
2683 collection_size, &
2684 send_field, &
2685 recv_field, &
2686 send_info, &
2687 recv_info, &
2688 ierror )
2689
2690 integer, intent (in) :: send_field_id
2691 integer, intent (in) :: recv_field_id
2692 integer, intent (in) :: send_nbr_hor_points
2693 integer, intent (in) :: send_nbr_pointsets
2694 integer, intent (in) :: recv_nbr_hor_points
2695 integer, intent (in) :: collection_size
2696 double precision, intent (in) :: &
2697 send_field(send_nbr_hor_points, &
2698 send_nbr_pointsets, &
2699 collection_size)
2700
2701 double precision, intent (inout):: &
2702 recv_field(recv_nbr_hor_points, &
2703 collection_size)
2704
2705 integer, intent (out) :: send_info
2706 integer, intent (out) :: recv_info
2707 integer, intent (out) :: ierror
2708
2709 end subroutine yac_fexchange_dble
2710
2711 subroutine yac_fexchange_dble_ptr ( send_field_id, &
2712 recv_field_id, &
2713 send_nbr_pointsets, &
2714 collection_size, &
2715 send_field, &
2716 recv_field, &
2717 send_info, &
2718 recv_info, &
2719 ierror )
2720
2721 import :: yac_dble_ptr
2722
2723 integer, intent (in) :: send_field_id
2724 integer, intent (in) :: recv_field_id
2725 integer, intent (in) :: send_nbr_pointsets
2726 integer, intent (in) :: collection_size
2727 type(yac_dble_ptr), intent (in) :: &
2728 send_field(send_nbr_pointsets, &
2729 collection_size)
2730
2731 type(yac_dble_ptr) :: recv_field(collection_size)
2732
2733 integer, intent (out) :: send_info
2734 integer, intent (out) :: recv_info
2735 integer, intent (out) :: ierror
2736
2737 end subroutine yac_fexchange_dble_ptr
2738
2739 subroutine yac_fexchange_single_pointset_dble ( send_field_id, &
2740 recv_field_id, &
2741 send_nbr_hor_points, &
2742 recv_nbr_hor_points, &
2743 collection_size, &
2744 send_field, &
2745 recv_field, &
2746 send_info, &
2747 recv_info, &
2748 ierror )
2749
2750 integer, intent (in) :: send_field_id
2751 integer, intent (in) :: recv_field_id
2752 integer, intent (in) :: send_nbr_hor_points
2753 integer, intent (in) :: recv_nbr_hor_points
2754 integer, intent (in) :: collection_size
2755 double precision, intent (in) :: &
2756 send_field(send_nbr_hor_points, &
2757 collection_size)
2758
2759 double precision, intent (inout):: &
2760 recv_field(recv_nbr_hor_points, &
2761 collection_size)
2762
2763 integer, intent (out) :: send_info
2764 integer, intent (out) :: recv_info
2765 integer, intent (out) :: ierror
2766
2768
2769 subroutine yac_fexchange_frac_real ( send_field_id, &
2770 recv_field_id, &
2771 send_nbr_hor_points, &
2772 send_nbr_pointsets, &
2773 recv_nbr_hor_points, &
2774 collection_size, &
2775 send_field, &
2776 send_frac_mask, &
2777 recv_field, &
2778 send_info, &
2779 recv_info, &
2780 ierror )
2781
2782 integer, intent (in) :: send_field_id
2783 integer, intent (in) :: recv_field_id
2784 integer, intent (in) :: send_nbr_hor_points
2785 integer, intent (in) :: send_nbr_pointsets
2786 integer, intent (in) :: recv_nbr_hor_points
2787 integer, intent (in) :: collection_size
2788 real, intent (in) :: send_field(send_nbr_hor_points, &
2789 send_nbr_pointsets, &
2790 collection_size)
2791
2792 real, intent (in) :: send_frac_mask(send_nbr_hor_points, &
2793 send_nbr_pointsets, &
2794 collection_size)
2795
2796 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2797 collection_size)
2798
2799 integer, intent (out) :: send_info
2800 integer, intent (out) :: recv_info
2801 integer, intent (out) :: ierror
2802
2803 end subroutine yac_fexchange_frac_real
2804
2805 subroutine yac_fexchange_frac_real_ptr ( send_field_id, &
2806 recv_field_id, &
2807 send_nbr_pointsets, &
2808 collection_size, &
2809 send_field, &
2810 send_frac_mask, &
2811 recv_field, &
2812 send_info, &
2813 recv_info, &
2814 ierror )
2815
2816 import :: yac_real_ptr
2817
2818 integer, intent (in) :: send_field_id
2819 integer, intent (in) :: recv_field_id
2820 integer, intent (in) :: send_nbr_pointsets
2821 integer, intent (in) :: collection_size
2822 type(yac_real_ptr), intent (in) :: &
2823 send_field(send_nbr_pointsets, &
2824 collection_size)
2825
2826 type(yac_real_ptr), intent (in) :: &
2827 send_frac_mask(send_nbr_pointsets, &
2828 collection_size)
2829
2830 type(yac_real_ptr) :: recv_field(collection_size)
2831
2832 integer, intent (out) :: send_info
2833 integer, intent (out) :: recv_info
2834 integer, intent (out) :: ierror
2835
2836 end subroutine yac_fexchange_frac_real_ptr
2837
2838 subroutine yac_fexchange_frac_single_pointset_real ( send_field_id, &
2839 recv_field_id, &
2840 send_nbr_hor_points, &
2841 recv_nbr_hor_points, &
2842 collection_size, &
2843 send_field, &
2844 send_frac_mask, &
2845 recv_field, &
2846 send_info, &
2847 recv_info, &
2848 ierror )
2849
2850 integer, intent (in) :: send_field_id
2851 integer, intent (in) :: recv_field_id
2852 integer, intent (in) :: send_nbr_hor_points
2853 integer, intent (in) :: recv_nbr_hor_points
2854 integer, intent (in) :: collection_size
2855 real, intent (in) :: send_field(send_nbr_hor_points, &
2856 collection_size)
2857
2858 real, intent (in) :: send_frac_mask(send_nbr_hor_points, &
2859 collection_size)
2860
2861 real, intent (inout) :: recv_field(recv_nbr_hor_points, &
2862 collection_size)
2863
2864 integer, intent (out) :: send_info
2865 integer, intent (out) :: recv_info
2866 integer, intent (out) :: ierror
2867
2869
2870 subroutine yac_fexchange_frac_dble ( send_field_id, &
2871 recv_field_id, &
2872 send_nbr_hor_points, &
2873 send_nbr_pointsets, &
2874 recv_nbr_hor_points, &
2875 collection_size, &
2876 send_field, &
2877 send_frac_mask, &
2878 recv_field, &
2879 send_info, &
2880 recv_info, &
2881 ierror )
2882
2883 integer, intent (in) :: send_field_id
2884 integer, intent (in) :: recv_field_id
2885 integer, intent (in) :: send_nbr_hor_points
2886 integer, intent (in) :: send_nbr_pointsets
2887 integer, intent (in) :: recv_nbr_hor_points
2888 integer, intent (in) :: collection_size
2889 double precision, intent (in) :: &
2890 send_field(send_nbr_hor_points, &
2891 send_nbr_pointsets, &
2892 collection_size)
2893
2894 double precision, intent (in) :: &
2895 send_frac_mask(send_nbr_hor_points, &
2896 send_nbr_pointsets, &
2897 collection_size)
2898
2899 double precision, intent (inout):: &
2900 recv_field(recv_nbr_hor_points, &
2901 collection_size)
2902
2903 integer, intent (out) :: send_info
2904 integer, intent (out) :: recv_info
2905 integer, intent (out) :: ierror
2906
2907 end subroutine yac_fexchange_frac_dble
2908
2909 subroutine yac_fexchange_frac_dble_ptr ( send_field_id, &
2910 recv_field_id, &
2911 send_nbr_pointsets, &
2912 collection_size, &
2913 send_field, &
2914 send_frac_mask, &
2915 recv_field, &
2916 send_info, &
2917 recv_info, &
2918 ierror )
2919
2920 import :: yac_dble_ptr
2921
2922 integer, intent (in) :: send_field_id
2923 integer, intent (in) :: recv_field_id
2924 integer, intent (in) :: send_nbr_pointsets
2925 integer, intent (in) :: collection_size
2926 type(yac_dble_ptr), intent (in) :: &
2927 send_field(send_nbr_pointsets, &
2928 collection_size)
2929
2930 type(yac_dble_ptr), intent (in) :: &
2931 send_frac_mask(send_nbr_pointsets, &
2932 collection_size)
2933
2934 type(yac_dble_ptr) :: recv_field(collection_size)
2935
2936 integer, intent (out) :: send_info
2937 integer, intent (out) :: recv_info
2938 integer, intent (out) :: ierror
2939
2940 end subroutine yac_fexchange_frac_dble_ptr
2941
2942 subroutine yac_fexchange_frac_single_pointset_dble ( send_field_id, &
2943 recv_field_id, &
2944 send_nbr_hor_points, &
2945 recv_nbr_hor_points, &
2946 collection_size, &
2947 send_field, &
2948 send_frac_mask, &
2949 recv_field, &
2950 send_info, &
2951 recv_info, &
2952 ierror )
2953
2954 integer, intent (in) :: send_field_id
2955 integer, intent (in) :: recv_field_id
2956 integer, intent (in) :: send_nbr_hor_points
2957 integer, intent (in) :: recv_nbr_hor_points
2958 integer, intent (in) :: collection_size
2959 double precision, intent (in) :: &
2960 send_field(send_nbr_hor_points, &
2961 collection_size)
2962
2963 double precision, intent (in) :: &
2964 send_frac_mask(send_nbr_hor_points, &
2965 collection_size)
2966
2967 double precision, intent (inout):: &
2968 recv_field(recv_nbr_hor_points, &
2969 collection_size)
2970
2971 integer, intent (out) :: send_info
2972 integer, intent (out) :: recv_info
2973 integer, intent (out) :: ierror
2974
2976
2977 end interface yac_fexchange
2978
2979 !----------------------------------------------------------------------
2984 !----------------------------------------------------------------------
2985
2987
2988 subroutine yac_fexchange_raw_real ( send_field_id, &
2989 recv_field_id, &
2990 send_nbr_hor_points, &
2991 send_nbr_pointsets, &
2992 src_field_buffer_size, &
2993 collection_size, &
2994 send_field, &
2995 src_field_buffer, &
2996 send_info, &
2997 recv_info, &
2998 ierror )
2999
3000 integer, intent (in) :: send_field_id
3001 integer, intent (in) :: recv_field_id
3002 integer, intent (in) :: send_nbr_hor_points
3003 integer, intent (in) :: send_nbr_pointsets
3004 integer, intent (in) :: src_field_buffer_size
3006 integer, intent (in) :: collection_size
3007 real, intent (in) :: &
3008 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3009
3010 real, intent (out) :: &
3011 src_field_buffer(src_field_buffer_size, collection_size)
3012
3013 integer, intent (out) :: send_info
3014 integer, intent (out) :: recv_info
3015 integer, intent (out) :: ierror
3016
3017 end subroutine yac_fexchange_raw_real
3018
3019 subroutine yac_fexchange_raw_real_ptr ( send_field_id, &
3020 recv_field_id, &
3021 send_nbr_pointsets, &
3022 collection_size, &
3023 send_field, &
3024 src_field_buffer, &
3025 send_info, &
3026 recv_info, &
3027 ierror )
3028
3029 import :: yac_real_ptr
3030
3031 integer, intent (in) :: send_field_id
3032 integer, intent (in) :: recv_field_id
3033 integer, intent (in) :: send_nbr_pointsets
3034 integer, intent (in) :: collection_size
3035 type(yac_real_ptr), intent (in) :: &
3036 send_field(send_nbr_pointsets, collection_size)
3037 type(yac_real_ptr), intent (inout) :: &
3038 src_field_buffer(send_nbr_pointsets, collection_size)
3039 integer, intent (out) :: send_info
3040 integer, intent (out) :: recv_info
3041 integer, intent (out) :: ierror
3042
3043 end subroutine yac_fexchange_raw_real_ptr
3044
3045 subroutine yac_fexchange_raw_single_pointset_real ( send_field_id, &
3046 recv_field_id, &
3047 send_nbr_hor_points, &
3048 src_field_buffer_size, &
3049 collection_size, &
3050 send_field, &
3051 src_field_buffer, &
3052 send_info, &
3053 recv_info, &
3054 ierror )
3055
3056 integer, intent (in) :: send_field_id
3057 integer, intent (in) :: recv_field_id
3058 integer, intent (in) :: send_nbr_hor_points
3059 integer, intent (in) :: src_field_buffer_size
3060 integer, intent (in) :: collection_size
3061 real, intent (in) :: send_field(send_nbr_hor_points, &
3062 collection_size)
3063
3064 real, intent (out) :: &
3065 src_field_buffer(src_field_buffer_size, collection_size)
3066
3067 integer, intent (out) :: send_info
3068 integer, intent (out) :: recv_info
3069 integer, intent (out) :: ierror
3070
3072
3073 subroutine yac_fexchange_raw_dble ( send_field_id, &
3074 recv_field_id, &
3075 send_nbr_hor_points, &
3076 send_nbr_pointsets, &
3077 src_field_buffer_size, &
3078 collection_size, &
3079 send_field, &
3080 src_field_buffer, &
3081 send_info, &
3082 recv_info, &
3083 ierror )
3084
3085 integer, intent (in) :: send_field_id
3086 integer, intent (in) :: recv_field_id
3087 integer, intent (in) :: send_nbr_hor_points
3088 integer, intent (in) :: send_nbr_pointsets
3089 integer, intent (in) :: src_field_buffer_size
3091 integer, intent (in) :: collection_size
3092 double precision, intent (in) :: &
3093 send_field(send_nbr_hor_points, &
3094 send_nbr_pointsets, &
3095 collection_size)
3096
3097 double precision, intent (out) :: &
3098 src_field_buffer(src_field_buffer_size, collection_size)
3099
3100 integer, intent (out) :: send_info
3101 integer, intent (out) :: recv_info
3102 integer, intent (out) :: ierror
3103
3104 end subroutine yac_fexchange_raw_dble
3105
3106 subroutine yac_fexchange_raw_dble_ptr ( send_field_id, &
3107 recv_field_id, &
3108 send_nbr_pointsets, &
3109 collection_size, &
3110 send_field, &
3111 src_field_buffer, &
3112 send_info, &
3113 recv_info, &
3114 ierror )
3115
3116 import :: yac_dble_ptr
3117
3118 integer, intent (in) :: send_field_id
3119 integer, intent (in) :: recv_field_id
3120 integer, intent (in) :: send_nbr_pointsets
3121 integer, intent (in) :: collection_size
3122 type(yac_dble_ptr), intent (in) :: &
3123 send_field(send_nbr_pointsets, collection_size)
3124 type(yac_dble_ptr), intent (inout) :: &
3125 src_field_buffer(send_nbr_pointsets, collection_size)
3126 integer, intent (out) :: send_info
3127 integer, intent (out) :: recv_info
3128 integer, intent (out) :: ierror
3129
3130 end subroutine yac_fexchange_raw_dble_ptr
3131
3132 subroutine yac_fexchange_raw_single_pointset_dble ( send_field_id, &
3133 recv_field_id, &
3134 send_nbr_hor_points, &
3135 src_field_buffer_size, &
3136 collection_size, &
3137 send_field, &
3138 src_field_buffer, &
3139 send_info, &
3140 recv_info, &
3141 ierror )
3142
3143 integer, intent (in) :: send_field_id
3144 integer, intent (in) :: recv_field_id
3145 integer, intent (in) :: send_nbr_hor_points
3146 integer, intent (in) :: src_field_buffer_size
3147 integer, intent (in) :: collection_size
3148 double precision, intent (in) :: &
3149 send_field(send_nbr_hor_points, collection_size)
3150 double precision, intent (out) :: &
3151 src_field_buffer(src_field_buffer_size, collection_size)
3152
3153 integer, intent (out) :: send_info
3154 integer, intent (out) :: recv_info
3155 integer, intent (out) :: ierror
3156
3158
3159 subroutine yac_fexchange_raw_frac_real ( send_field_id, &
3160 recv_field_id, &
3161 send_nbr_hor_points, &
3162 send_nbr_pointsets, &
3163 src_field_buffer_size, &
3164 collection_size, &
3165 send_field, &
3166 send_frac_mask, &
3167 src_field_buffer, &
3168 src_frac_mask_buffer, &
3169 send_info, &
3170 recv_info, &
3171 ierror )
3172
3173 integer, intent (in) :: send_field_id
3174 integer, intent (in) :: recv_field_id
3175 integer, intent (in) :: send_nbr_hor_points
3176 integer, intent (in) :: send_nbr_pointsets
3177 integer, intent (in) :: src_field_buffer_size
3179 integer, intent (in) :: collection_size
3180 real, intent (in) :: &
3181 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3182
3183 real, intent (in) :: &
3184 send_frac_mask(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3185
3186 real, intent (out) :: &
3187 src_field_buffer(src_field_buffer_size, collection_size)
3188
3189 real, intent (out) :: &
3190 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3191
3192 integer, intent (out) :: send_info
3193 integer, intent (out) :: recv_info
3194 integer, intent (out) :: ierror
3195
3196 end subroutine yac_fexchange_raw_frac_real
3197
3198 subroutine yac_fexchange_raw_frac_real_ptr ( send_field_id, &
3199 recv_field_id, &
3200 send_nbr_pointsets, &
3201 collection_size, &
3202 send_field, &
3203 send_frac_mask, &
3204 src_field_buffer, &
3205 src_frac_mask_buffer, &
3206 send_info, &
3207 recv_info, &
3208 ierror )
3209
3210 import :: yac_real_ptr
3211
3212 integer, intent (in) :: send_field_id
3213 integer, intent (in) :: recv_field_id
3214 integer, intent (in) :: send_nbr_pointsets
3215 integer, intent (in) :: collection_size
3216 type(yac_real_ptr), intent (in) :: &
3217 send_field(send_nbr_pointsets, collection_size)
3218 type(yac_real_ptr), intent (in) :: &
3219 send_frac_mask(send_nbr_pointsets, collection_size)
3220 type(yac_real_ptr), intent(inout) :: &
3221 src_field_buffer(send_nbr_pointsets, collection_size)
3222 type(yac_real_ptr), intent(inout) :: &
3223 src_frac_mask_buffer(send_nbr_pointsets, collection_size)
3224
3225 integer, intent (out) :: send_info
3226 integer, intent (out) :: recv_info
3227 integer, intent (out) :: ierror
3228
3229 end subroutine yac_fexchange_raw_frac_real_ptr
3230
3232 recv_field_id, &
3233 send_nbr_hor_points, &
3234 src_field_buffer_size, &
3235 collection_size, &
3236 send_field, &
3237 send_frac_mask, &
3238 src_field_buffer, &
3239 src_frac_mask_buffer, &
3240 send_info, &
3241 recv_info, &
3242 ierror )
3243
3244 integer, intent (in) :: send_field_id
3245 integer, intent (in) :: recv_field_id
3246 integer, intent (in) :: send_nbr_hor_points
3247 integer, intent (in) :: src_field_buffer_size
3249 integer, intent (in) :: collection_size
3250 real, intent (in) :: &
3251 send_field(send_nbr_hor_points, collection_size)
3252
3253 real, intent (in) :: &
3254 send_frac_mask(send_nbr_hor_points, collection_size)
3255
3256 real, intent (out) :: &
3257 src_field_buffer(src_field_buffer_size, collection_size)
3258
3259 real, intent (out) :: &
3260 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3261
3262 integer, intent (out) :: send_info
3263 integer, intent (out) :: recv_info
3264 integer, intent (out) :: ierror
3265
3267
3268 subroutine yac_fexchange_raw_frac_dble ( send_field_id, &
3269 recv_field_id, &
3270 send_nbr_hor_points, &
3271 send_nbr_pointsets, &
3272 src_field_buffer_size, &
3273 collection_size, &
3274 send_field, &
3275 send_frac_mask, &
3276 src_field_buffer, &
3277 src_frac_mask_buffer, &
3278 send_info, &
3279 recv_info, &
3280 ierror )
3281
3282 integer, intent (in) :: send_field_id
3283 integer, intent (in) :: recv_field_id
3284 integer, intent (in) :: send_nbr_hor_points
3285 integer, intent (in) :: send_nbr_pointsets
3286 integer, intent (in) :: src_field_buffer_size
3288 integer, intent (in) :: collection_size
3289 double precision, intent (in) :: &
3290 send_field(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3291
3292 double precision, intent (in) :: &
3293 send_frac_mask(send_nbr_hor_points, send_nbr_pointsets, collection_size)
3294
3295 double precision, intent (out):: &
3296 src_field_buffer(src_field_buffer_size, collection_size)
3297
3298 double precision, intent (out):: &
3299 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3300
3301 integer, intent (out) :: send_info
3302 integer, intent (out) :: recv_info
3303 integer, intent (out) :: ierror
3304
3305 end subroutine yac_fexchange_raw_frac_dble
3306
3307 subroutine yac_fexchange_raw_frac_dble_ptr ( send_field_id, &
3308 recv_field_id, &
3309 send_nbr_pointsets, &
3310 collection_size, &
3311 send_field, &
3312 send_frac_mask, &
3313 src_field_buffer, &
3314 src_frac_mask_buffer, &
3315 send_info, &
3316 recv_info, &
3317 ierror )
3318
3319 import :: yac_dble_ptr
3320
3321 integer, intent (in) :: send_field_id
3322 integer, intent (in) :: recv_field_id
3323 integer, intent (in) :: send_nbr_pointsets
3324 integer, intent (in) :: collection_size
3325 type(yac_dble_ptr), intent (in) :: &
3326 send_field(send_nbr_pointsets, collection_size)
3327 type(yac_dble_ptr), intent (in) :: &
3328 send_frac_mask(send_nbr_pointsets, collection_size)
3329 type(yac_dble_ptr), intent(inout) :: &
3330 src_field_buffer(send_nbr_pointsets, collection_size)
3331 type(yac_dble_ptr), intent(inout) :: &
3332 src_frac_mask_buffer(send_nbr_pointsets, collection_size)
3333
3334 integer, intent (out) :: send_info
3335 integer, intent (out) :: recv_info
3336 integer, intent (out) :: ierror
3337
3338 end subroutine yac_fexchange_raw_frac_dble_ptr
3339
3341 recv_field_id, &
3342 send_nbr_hor_points, &
3343 src_field_buffer_size, &
3344 collection_size, &
3345 send_field, &
3346 send_frac_mask, &
3347 src_field_buffer, &
3348 src_frac_mask_buffer, &
3349 send_info, &
3350 recv_info, &
3351 ierror )
3352
3353 integer, intent (in) :: send_field_id
3354 integer, intent (in) :: recv_field_id
3355 integer, intent (in) :: send_nbr_hor_points
3356 integer, intent (in) :: src_field_buffer_size
3358 integer, intent (in) :: collection_size
3359 double precision, intent (in) :: &
3360 send_field(send_nbr_hor_points, collection_size)
3361 double precision, intent (in) :: &
3362 send_frac_mask(send_nbr_hor_points, collection_size)
3363 double precision, intent (out) :: &
3364 src_field_buffer(src_field_buffer_size, collection_size)
3365
3366 double precision, intent (out) :: &
3367 src_frac_mask_buffer(src_field_buffer_size, collection_size)
3368
3369 integer, intent (out) :: send_info
3370 integer, intent (out) :: recv_info
3371 integer, intent (out) :: ierror
3372
3374
3375 end interface yac_fexchange_raw
3376
3377 !----------------------------------------------------------------------
3381 !----------------------------------------------------------------------
3382
3383 interface yac_ftest
3384
3385 subroutine yac_ftest_i ( field_id, flag )
3386
3387 integer, intent (in) :: field_id
3388 integer, intent (out) :: flag
3391
3392 end subroutine yac_ftest_i
3393
3394 subroutine yac_ftest_l ( field_id, flag )
3395
3396 integer, intent (in) :: field_id
3397 logical, intent (out) :: flag
3400
3401 end subroutine yac_ftest_l
3402
3403 end interface yac_ftest
3404
3405 !----------------------------------------------------------------------
3409 !----------------------------------------------------------------------
3410
3411 interface yac_fwait
3412
3413 subroutine yac_fwait ( field_id )
3414
3415 integer, intent (in) :: field_id
3416
3417 end subroutine yac_fwait
3418
3419 end interface yac_fwait
3420
3421 !----------------------------------------------------------------------
3425 !----------------------------------------------------------------------
3426
3427 interface
3428
3429 subroutine yac_fget_comp_comm ( comp_id, comp_comm )
3430
3431 integer, intent (in) :: comp_id
3432 integer, intent (out) :: comp_comm
3433
3434 end subroutine yac_fget_comp_comm
3435
3436 end interface
3437
3438 !----------------------------------------------------------------------
3443 !----------------------------------------------------------------------
3444
3446
3447 subroutine yac_fget_comps_comm ( comp_names, &
3448 num_comps, &
3449 comps_comm)
3450
3451 use, intrinsic :: iso_c_binding, only : c_char
3452 import :: yac_max_charlen
3453
3454 integer, intent(in) :: num_comps
3455 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3456 comp_names(num_comps)
3457 integer, intent (out) :: comps_comm
3458
3459 end subroutine yac_fget_comps_comm
3460
3461 subroutine yac_fget_comps_comm_instance ( yac_instance_id, &
3462 comp_names, &
3463 num_comps, &
3464 comps_comm)
3465
3466 use, intrinsic :: iso_c_binding, only : c_char
3467 import :: yac_max_charlen
3468
3469 integer, intent(in) :: yac_instance_id
3470 integer, intent(in) :: num_comps
3471 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3472 comp_names(num_comps)
3473 integer, intent (out) :: comps_comm
3474
3475 end subroutine yac_fget_comps_comm_instance
3476
3477 end interface yac_fget_comps_comm
3478
3479
3480 !----------------------------------------------------------------------
3484 !----------------------------------------------------------------------
3485
3487
3488 subroutine yac_fsync_def ( )
3489
3490 end subroutine yac_fsync_def
3491
3492 subroutine yac_fsync_def_instance ( yac_instance_id )
3493
3494 integer, intent(in) :: yac_instance_id
3495
3496 end subroutine yac_fsync_def_instance
3497
3498 end interface yac_fsync_def
3499
3501
3502 subroutine yac_fsync_def_comps ( comp_names, num_comps )
3503
3504 use, intrinsic :: iso_c_binding, only : c_char
3505 import :: yac_max_charlen
3506
3507 integer, intent(in) :: num_comps
3508 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3509 comp_names(num_comps)
3510
3511 end subroutine yac_fsync_def_comps
3512
3513 subroutine yac_fsync_def_comps_instance ( yac_instance_id, comp_names, num_comps )
3514
3515 use, intrinsic :: iso_c_binding, only : c_char
3516 import :: yac_max_charlen
3517
3518 integer, intent(in) :: yac_instance_id
3519 integer, intent(in) :: num_comps
3520 character(kind=c_char, len=YAC_MAX_CHARLEN), intent(in) :: &
3521 comp_names(num_comps)
3522
3523 end subroutine yac_fsync_def_comps_instance
3524
3525 end interface yac_fsync_def_comps
3526
3527 !----------------------------------------------------------------------
3531 !----------------------------------------------------------------------
3532
3533 interface
3534
3535 subroutine yac_fget_interp_stack_config(interp_stack_config_id)
3536 integer, intent(out) :: interp_stack_config_id
3537 end subroutine yac_fget_interp_stack_config
3538
3539 subroutine yac_ffree_interp_stack_config(interp_stack_config_id)
3540 integer, intent(in) :: interp_stack_config_id
3541 end subroutine yac_ffree_interp_stack_config
3542
3543 subroutine yac_fadd_interp_stack_config_average(interp_stack_config_id, &
3544 reduction_type, partial_coverage)
3545 integer, intent(in) :: interp_stack_config_id
3546 integer, intent(in) :: reduction_type
3547 integer, intent(in) :: partial_coverage
3549
3550 subroutine yac_fadd_interp_stack_config_ncc(interp_stack_config_id, &
3551 weight_type, partial_coverage)
3552 integer, intent(in) :: interp_stack_config_id
3553 integer, intent(in) :: weight_type
3554 integer, intent(in) :: partial_coverage
3556
3557 subroutine yac_fadd_interp_stack_config_nnn(interp_stack_config_id, &
3558 type, n, max_search_distance, scale)
3559 integer, intent(in) :: interp_stack_config_id
3560 integer, intent(in) :: type
3561 integer, intent(in) :: n
3562 double precision, intent(in) :: max_search_distance
3563 double precision, intent(in) :: scale
3565
3566 subroutine yac_fadd_interp_stack_config_dnn(interp_stack_config_id, &
3567 weight_type, search_distance_type, search_distance, scale)
3568 integer, intent(in) :: interp_stack_config_id
3569 integer, intent(in) :: weight_type
3570 integer, intent(in) :: search_distance_type
3571 double precision, intent(in) :: search_distance
3572 double precision, intent(in) :: scale
3574
3575 subroutine yac_fadd_interp_stack_config_rbf(interp_stack_config_id, &
3576 n, max_search_distance, scale)
3577 integer, intent(in) :: interp_stack_config_id
3578 integer, optional, intent(in) :: n
3579 double precision, optional, intent(in) :: max_search_distance
3580 double precision, optional, intent(in) :: scale
3582
3583 subroutine yac_fadd_interp_stack_config_conservative(interp_stack_config_id, &
3584 order, enforced_conserv, partial_coverage, normalization)
3585 integer, intent(in) :: interp_stack_config_id
3586 integer, intent(in) :: order
3587 integer, intent(in) :: enforced_conserv
3588 integer, intent(in) :: partial_coverage
3589 integer, intent(in) :: normalization
3591
3593 center_lon, center_lat, inc_angle, spmap_overwrite_config_id, &
3594 spread_distance, max_search_distance, weight_type )
3595 double precision, intent(in) :: center_lon
3596 double precision, intent(in) :: center_lat
3597 double precision, intent(in) :: inc_angle
3598 integer, intent(out) :: spmap_overwrite_config_id
3599 double precision, optional, intent(in) :: spread_distance
3600 double precision, optional, intent(in) :: max_search_distance
3601 integer, optional, intent(in) :: weight_type
3603
3605 spmap_overwrite_config_id )
3606 integer, intent(in) :: spmap_overwrite_config_id
3608
3609 subroutine yac_fadd_interp_stack_config_spmap(interp_stack_config_id, &
3610 search_distance, max_search_distance, weight_type, scale_type, &
3611 src_sphere_radius, src_filename, src_varname, src_min_global_id, &
3612 tgt_sphere_radius, tgt_filename, tgt_varname, tgt_min_global_id, &
3613 spmap_overwrite_config_ids)
3614 integer, intent(in) :: interp_stack_config_id
3615 double precision, intent(in) :: search_distance
3616 double precision, intent(in) :: max_search_distance
3617 integer, intent(in) :: weight_type
3618 integer, intent(in) :: scale_type
3619 double precision, intent(in) :: src_sphere_radius
3620 character (len=*), intent(in) :: src_filename
3621 character (len=*), intent(in) :: src_varname
3622 integer, intent(in) :: src_min_global_id
3623 double precision, intent(in) :: tgt_sphere_radius
3624 character (len=*), intent(in) :: tgt_filename
3625 character (len=*), intent(in) :: tgt_varname
3626 integer, intent(in) :: tgt_min_global_id
3627 integer, optional, intent(in) :: spmap_overwrite_config_ids(:)
3629
3630 subroutine yac_fadd_interp_stack_config_hcsbb(interp_stack_config_id)
3631 integer, intent(in) :: interp_stack_config_id
3633
3635 interp_stack_config_id, filename, on_missing_file, on_success)
3636 integer, intent(in) :: interp_stack_config_id
3637 character (len=*), intent(in) :: filename
3638 integer, optional, intent(in) :: on_missing_file
3639 integer, optional, intent(in) :: on_success
3641
3642 subroutine yac_fadd_interp_stack_config_fixed(interp_stack_config_id, &
3643 val)
3644 integer, intent(in) :: interp_stack_config_id
3645 double precision, intent(in) :: val
3647
3648 subroutine yac_fadd_interp_stack_config_creep(interp_stack_config_id, &
3649 creep_distance)
3650 integer, intent(in) :: interp_stack_config_id
3651 integer, intent(in) :: creep_distance
3653
3655 interp_stack_config, interp_stack_config_id)
3656 character ( len=* ), intent(in) :: interp_stack_config
3657 integer, intent(out) :: interp_stack_config_id
3659
3661 interp_stack_config, interp_stack_config_id)
3662 character ( len=* ), intent(in) :: interp_stack_config
3663 integer, intent(out) :: interp_stack_config_id
3665
3666 end interface
3667
3668 !----------------------------------------------------------------------
3672 !----------------------------------------------------------------------
3673
3675
3676 subroutine yac_fdef_couple ( &
3677 src_comp_name, src_grid_name, src_field_name, &
3678 tgt_comp_name, tgt_grid_name, tgt_field_name, &
3679 coupling_timestep, time_unit, time_reduction, &
3680 interp_stack_config_id, src_lag, tgt_lag, &
3681 weight_file, weight_file_on_existing, &
3682 mapping_side, scale_factor, scale_summand, &
3683 src_mask_names, tgt_mask_name, &
3684 yaxt_exchanger_name, collection_indices, &
3685 use_raw_exchange )
3686
3687 import :: yac_string
3688 character ( len=* ), intent(in) :: src_comp_name
3689 character ( len=* ), intent(in) :: src_grid_name
3690 character ( len=* ), intent(in) :: src_field_name
3691 character ( len=* ), intent(in) :: tgt_comp_name
3692 character ( len=* ), intent(in) :: tgt_grid_name
3693 character ( len=* ), intent(in) :: tgt_field_name
3694 character ( len=* ), intent(in) :: coupling_timestep
3695 integer, intent(in) :: time_unit
3696 integer, intent(in) :: time_reduction
3697 integer, intent(in) :: interp_stack_config_id
3698 integer, intent(in), optional :: src_lag
3699 integer, intent(in), optional :: tgt_lag
3700 character ( len=* ), intent(in), optional :: weight_file
3701 integer, intent(in), optional :: weight_file_on_existing
3702 integer, intent(in), optional :: mapping_side
3703 double precision, intent(in), optional :: scale_factor
3704 double precision, intent(in), optional :: scale_summand
3705 type(yac_string), intent(in), optional :: src_mask_names(:)
3706 character ( len=* ), intent(in), optional :: tgt_mask_name
3707 character ( len=* ), intent(in), optional :: yaxt_exchanger_name
3708 integer, intent(in), optional :: collection_indices(:)
3709 logical, intent(in), optional :: use_raw_exchange
3710 end subroutine yac_fdef_couple
3711
3712 subroutine yac_fdef_couple_instance ( instance_id, &
3713 src_comp_name, src_grid_name, src_field_name, &
3714 tgt_comp_name, tgt_grid_name, tgt_field_name, &
3715 coupling_timestep, time_unit, time_reduction, &
3716 interp_stack_config_id, src_lag, tgt_lag, &
3717 weight_file, weight_file_on_existing, &
3718 mapping_side, scale_factor, scale_summand, &
3719 src_mask_names, tgt_mask_name, &
3720 yaxt_exchanger_name, collection_indices, &
3721 use_raw_exchange )
3722
3723 import :: yac_string
3724 integer, intent(in) :: instance_id
3725 character ( len=* ), intent(in) :: src_comp_name
3726 character ( len=* ), intent(in) :: src_grid_name
3727 character ( len=* ), intent(in) :: src_field_name
3728 character ( len=* ), intent(in) :: tgt_comp_name
3729 character ( len=* ), intent(in) :: tgt_grid_name
3730 character ( len=* ), intent(in) :: tgt_field_name
3731 character ( len=* ), intent(in) :: coupling_timestep
3732 integer, intent(in) :: time_unit
3733 integer, intent(in) :: time_reduction
3734 integer, intent(in) :: interp_stack_config_id
3735 integer, intent(in), optional :: src_lag
3736 integer, intent(in), optional :: tgt_lag
3737 character ( len=* ), intent(in), optional :: weight_file
3738 integer, intent(in), optional :: weight_file_on_existing
3739 integer, intent(in), optional :: mapping_side
3740 double precision, intent(in), optional :: scale_factor
3741 double precision, intent(in), optional :: scale_summand
3742 type(yac_string), intent(in), optional :: src_mask_names(:)
3743 character ( len=* ), intent(in), optional :: tgt_mask_name
3744 character ( len=* ), intent(in), optional :: yaxt_exchanger_name
3745 integer, intent(in), optional :: collection_indices(:)
3746 logical, intent(in), optional :: use_raw_exchange
3747 end subroutine yac_fdef_couple_instance
3748
3749 end interface yac_fdef_couple
3750
3751 !----------------------------------------------------------------------
3755 !----------------------------------------------------------------------
3756
3757 interface yac_fenddef
3758
3759 subroutine yac_fenddef ( )
3760
3761 end subroutine yac_fenddef
3762
3763 subroutine yac_fenddef_instance ( yac_instance_id )
3764
3765 integer, intent(in) :: yac_instance_id
3766
3767 end subroutine yac_fenddef_instance
3768
3769 subroutine yac_fenddef_and_emit_config(emit_flags, config)
3770
3771 integer, intent (in) :: emit_flags
3772 character (len=:), ALLOCATABLE :: config
3773
3774 end subroutine yac_fenddef_and_emit_config
3775
3777 yac_instance_id, emit_flags, config)
3778
3779 integer, intent (in) :: yac_instance_id
3780 integer, intent (in) :: emit_flags
3781 character (len=:), ALLOCATABLE :: config
3782
3784
3785 end interface yac_fenddef
3786
3787 !----------------------------------------------------------------------
3791 !----------------------------------------------------------------------
3792
3794
3795 function yac_fget_grid_size( location, grid_id ) result (grid_size)
3796
3797 integer, intent(in) :: location
3798 integer, intent(in) :: grid_id
3799 integer :: grid_size
3800
3801 end function yac_fget_grid_size
3802
3803 end interface yac_fget_grid_size
3804
3805 ! ---------------------------------------------------------------------
3806
3808
3810 grid_id, nbr_cells, cell_areas )
3811
3812 integer, intent(in) :: grid_id
3813 integer, intent(in) :: nbr_cells
3814 real, intent(out) :: cell_areas(nbr_cells)
3816
3818 grid_id, nbr_cells, cell_areas )
3819
3820 integer, intent(in) :: grid_id
3821 integer, intent(in) :: nbr_cells
3822 double precision, intent(out) :: cell_areas(nbr_cells)
3824
3825 end interface
3826
3827 ! ---------------------------------------------------------------------
3828
3830
3831 function yac_fget_points_size( point_id ) result (points_size)
3832
3833 integer, intent(in) :: point_id
3834 integer :: points_size
3835
3836 end function yac_fget_points_size
3837
3838 end interface yac_fget_points_size
3839
3840 ! ---------------------------------------------------------------------
3841
3843
3844 function yac_fget_comp_id(comp_name) result(comp_id)
3845
3846 character(len=*), intent(in) :: comp_name
3847 integer :: comp_id
3848
3849 end function yac_fget_comp_id
3850
3851 function yac_fget_comp_id_instance(yac_id, comp_name) result(comp_id)
3852
3853 integer, intent(in) :: yac_id
3854 character(len=*), intent(in) :: comp_name
3855 integer :: comp_id
3856
3857 end function yac_fget_comp_id_instance
3858 end interface yac_fget_comp_id
3859
3861
3862 function yac_fget_grid_id(grid_name) result(grid_id)
3863
3864 character(len=*), intent(in) :: grid_name
3865 integer :: grid_id
3866
3867 end function yac_fget_grid_id
3868
3869 end interface yac_fget_grid_id
3870
3872
3873 function yac_fget_points_id(grid_id, location, point_name) &
3874 result(point_id)
3875
3876 integer, intent(in) :: grid_id
3877 integer, intent(in) :: location
3878 character(len=*), intent(in) :: point_name
3879 integer :: point_id
3880
3881 end function yac_fget_points_id
3882
3883 end interface yac_fget_points_id
3884
3886
3887 function yac_fget_mask_id(grid_id, location, mask_name) result(mask_id)
3888
3889 integer, intent(in) :: grid_id
3890 integer, intent(in) :: location
3891 character(len=*), intent(in) :: mask_name
3892 integer :: mask_id
3893
3894 end function yac_fget_mask_id
3895
3896 end interface yac_fget_mask_id
3897
3898 ! ---------------------------------------------------------------------
3899
3901
3902 function yac_fget_field_is_defined ( comp_name, grid_name, field_name ) &
3903 result(field_is_defined)
3904
3905 character(len=*), intent(in) :: comp_name
3906 character(len=*), intent(in) :: grid_name
3907 character(len=*), intent(in) :: field_name
3908 logical :: field_is_defined
3909
3910 end function yac_fget_field_is_defined
3911
3913 comp_name, &
3914 grid_name, &
3915 field_name ) &
3916 result(field_is_defined)
3917
3918 integer, intent(in) :: yac_id
3919 character(len=*), intent(in) :: comp_name
3920 character(len=*), intent(in) :: grid_name
3921 character(len=*), intent(in) :: field_name
3922 logical :: field_is_defined
3923
3925 end interface yac_fget_field_is_defined
3926
3927 ! ---------------------------------------------------------------------
3928
3930
3931 function yac_fget_field_id ( comp_name, grid_name, field_name ) result(field_id)
3932
3933 character(len=*), intent(in) :: comp_name
3934 character(len=*), intent(in) :: grid_name
3935 character(len=*), intent(in) :: field_name
3936 integer :: field_id
3937
3938 end function yac_fget_field_id
3939
3940 function yac_fget_field_id_instance ( yac_id, &
3941 comp_name, &
3942 grid_name, &
3943 field_name ) result(field_id)
3944
3945 integer, intent(in) :: yac_id
3946 character(len=*), intent(in) :: comp_name
3947 character(len=*), intent(in) :: grid_name
3948 character(len=*), intent(in) :: field_name
3949 integer :: field_id
3950
3951 end function yac_fget_field_id_instance
3952 end interface yac_fget_field_id
3953
3954 ! ---------------------------------------------------------------------
3955
3957
3959 result( comp_name )
3960
3961 integer, intent (in) :: field_id
3962 character(len=:), ALLOCATABLE :: comp_name
3963
3965
3966 end interface yac_fget_component_name
3967
3969
3970 function yac_fget_grid_name_from_field_id ( field_id ) &
3971 result( grid_name )
3972
3973 integer, intent (in) :: field_id
3974 character(len=:), ALLOCATABLE :: grid_name
3975
3977
3978 end interface yac_fget_grid_name
3979
3981
3983 result( field_name )
3984
3985 integer, intent (in) :: field_id
3986 character(len=:), ALLOCATABLE :: field_name
3987
3989
3990 end interface yac_fget_field_name
3991
3992 ! ---------------------------------------------------------------------
3993
3995
3996 function yac_fget_comp_names( ) result(comp_names)
3997 import :: yac_string
3998 type(yac_string), allocatable :: comp_names(:)
3999 end function yac_fget_comp_names
4000
4001 function yac_fget_comp_names_instance( yac_instance_id) &
4002 result( comp_names )
4003 import :: yac_string
4004 integer, intent(in) :: yac_instance_id
4005 type(yac_string), allocatable :: comp_names(:)
4006 end function yac_fget_comp_names_instance
4007
4008 end interface yac_fget_comp_names
4009
4011
4012 function yac_fget_grid_names( ) result( grid_names )
4013 import :: yac_string
4014 type(yac_string), allocatable :: grid_names(:)
4015 end function yac_fget_grid_names
4016
4017 function yac_fget_grid_names_instance( yac_instance_id ) &
4018 result( grid_names )
4019 import :: yac_string
4020 integer, intent(in) :: yac_instance_id
4021 type(yac_string), allocatable :: grid_names(:)
4022 end function yac_fget_grid_names_instance
4023
4024 end interface yac_fget_grid_names
4025
4027
4028 function yac_fget_comp_grid_names( comp_name ) result( grid_names )
4029 import :: yac_string
4030 character(len=*), intent(in) :: comp_name
4031 type(yac_string), allocatable :: grid_names(:)
4032 end function yac_fget_comp_grid_names
4033
4034 function yac_fget_comp_grid_names_instance( yac_instance_id, comp_name ) &
4035 result( grid_names )
4036 import :: yac_string
4037 integer, intent(in) :: yac_instance_id
4038 character(len=*), intent(in) :: comp_name
4039 type(yac_string), allocatable :: grid_names(:)
4041
4042 end interface yac_fget_comp_grid_names
4043
4045
4046 function yac_fget_field_names( comp_name, grid_name ) result ( field_names )
4047 import :: yac_string
4048 character(len=*), intent(in) :: comp_name
4049 character(len=*), intent(in) :: grid_name
4050 type(yac_string), allocatable :: field_names(:)
4051 end function yac_fget_field_names
4052
4053 function yac_fget_field_names_instance( yac_instance_id, &
4054 comp_name, &
4055 grid_name ) &
4056 result( field_names )
4057 import :: yac_string
4058 integer, intent(in) :: yac_instance_id
4059 character(len=*), intent(in) :: comp_name
4060 character(len=*), intent(in) :: grid_name
4061 type(yac_string), allocatable :: field_names(:)
4063
4064 end interface yac_fget_field_names
4065
4066 ! ---------------------------------------------------------------------
4067
4069
4070 function yac_fget_role_from_field_id ( field_id )
4071
4072 integer, intent (in) :: field_id
4074
4075 end function yac_fget_role_from_field_id
4076
4077 function yac_fget_field_role ( comp_name, grid_name, field_name )
4078 character(len=*), intent(in) :: comp_name
4079 character(len=*), intent(in) :: grid_name
4080 character(len=*), intent(in) :: field_name
4081 integer :: yac_fget_field_role
4082 end function yac_fget_field_role
4083
4084 function yac_fget_field_role_instance ( yac_instance_id, &
4085 comp_name, &
4086 grid_name, &
4087 field_name )
4088 integer, intent(in) :: yac_instance_id
4089 character(len=*), intent(in) :: comp_name
4090 character(len=*), intent(in) :: grid_name
4091 character(len=*), intent(in) :: field_name
4093 end function yac_fget_field_role_instance
4094
4095 end interface yac_fget_field_role
4096
4097 ! ---------------------------------------------------------------------
4098
4100
4101 subroutine yac_fget_field_source ( tgt_comp_name, &
4102 tgt_grid_name, &
4103 tgt_field_name, &
4104 src_comp_name, &
4105 src_grid_name, &
4106 src_field_name )
4107 character(len=*), intent(in) :: tgt_comp_name
4108 character(len=*), intent(in) :: tgt_grid_name
4109 character(len=*), intent(in) :: tgt_field_name
4110 character(len=:), ALLOCATABLE :: src_comp_name
4111 character(len=:), ALLOCATABLE :: src_grid_name
4112 character(len=:), ALLOCATABLE :: src_field_name
4113 end subroutine yac_fget_field_source
4114
4115 subroutine yac_fget_field_source_instance ( yac_instance_id, &
4116 tgt_comp_name, &
4117 tgt_grid_name, &
4118 tgt_field_name, &
4119 src_comp_name, &
4120 src_grid_name, &
4121 src_field_name )
4122 integer, intent(in) :: yac_instance_id
4123 character(len=*), intent(in) :: tgt_comp_name
4124 character(len=*), intent(in) :: tgt_grid_name
4125 character(len=*), intent(in) :: tgt_field_name
4126 character(len=:), ALLOCATABLE :: src_comp_name
4127 character(len=:), ALLOCATABLE :: src_grid_name
4128 character(len=:), ALLOCATABLE :: src_field_name
4129 end subroutine yac_fget_field_source_instance
4130
4131 end interface yac_fget_field_source
4132
4133 ! ---------------------------------------------------------------------
4134
4136
4137
4138 function yac_fget_timestep_from_field_id ( field_id ) result( timestep )
4139 integer, intent (in) :: field_id
4140 character(len=:), ALLOCATABLE :: timestep
4141
4143
4144 function yac_fget_field_timestep ( comp_name, grid_name, field_name ) &
4145 result( timestep )
4146
4147 character(len=*), intent(in) :: comp_name
4148 character(len=*), intent(in) :: grid_name
4149 character(len=*), intent(in) :: field_name
4150 character(len=:), ALLOCATABLE :: timestep
4151
4152 end function yac_fget_field_timestep
4153
4154 function yac_fget_field_timestep_instance ( yac_instance_id, &
4155 comp_name, &
4156 grid_name, &
4157 field_name ) &
4158 result( timestep )
4159
4160 integer, intent(in) :: yac_instance_id
4161 character(len=*), intent(in) :: comp_name
4162 character(len=*), intent(in) :: grid_name
4163 character(len=*), intent(in) :: field_name
4164 character(len=:), ALLOCATABLE :: timestep
4165
4167
4168 end interface yac_fget_field_timestep
4169
4170 ! ---------------------------------------------------------------------
4171
4173
4174 function yac_fget_field_datetime ( field_id ) &
4175 result( datetime )
4176 integer, intent(in) :: field_id
4177 character(len=:), allocatable :: datetime
4178 end function yac_fget_field_datetime
4179
4180 end interface yac_fget_field_datetime
4181
4182 ! ---------------------------------------------------------------------
4183
4185
4187 comp_name, grid_name, field_name, frac_mask_fallback_value )
4188 character(len=*), intent(in) :: comp_name
4189 character(len=*), intent(in) :: grid_name
4190 character(len=*), intent(in) :: field_name
4191 double precision, intent(in) :: frac_mask_fallback_value
4192 end subroutine yac_fenable_field_frac_mask
4193
4195 yac_instance_id, comp_name, grid_name, field_name, &
4196 frac_mask_fallback_value )
4197 integer, intent(in) :: yac_instance_id
4198 character(len=*), intent(in) :: comp_name
4199 character(len=*), intent(in) :: grid_name
4200 character(len=*), intent(in) :: field_name
4201 double precision, intent(in) :: frac_mask_fallback_value
4203
4204 end interface yac_fenable_field_frac_mask
4205
4206 ! ---------------------------------------------------------------------
4207
4209
4211 comp_name, grid_name, field_name )
4212 character(len=*), intent(in) :: comp_name
4213 character(len=*), intent(in) :: grid_name
4214 character(len=*), intent(in) :: field_name
4215 double precision :: yac_fget_field_frac_mask_fallback_value
4217
4219 yac_instance_id, comp_name, grid_name, field_name )
4220 integer, intent(in) :: yac_instance_id
4221 character(len=*), intent(in) :: comp_name
4222 character(len=*), intent(in) :: grid_name
4223 character(len=*), intent(in) :: field_name
4226
4228
4229 ! ---------------------------------------------------------------------
4230
4232
4234 result(collection_size)
4235
4236 integer, intent (in) :: field_id
4237 integer :: collection_size
4238
4240
4241 function yac_fget_field_collection_size ( comp_name, grid_name, field_name )
4242 character(len=*), intent(in) :: comp_name
4243 character(len=*), intent(in) :: grid_name
4244 character(len=*), intent(in) :: field_name
4247
4248 function yac_fget_field_collection_size_instance ( yac_instance_id, &
4249 comp_name, &
4250 grid_name, &
4251 field_name )
4252 integer, intent(in) :: yac_instance_id
4253 character(len=*), intent(in) :: comp_name
4254 character(len=*), intent(in) :: grid_name
4255 character(len=*), intent(in) :: field_name
4258
4259 end interface yac_fget_field_collection_size
4260
4261 ! ---------------------------------------------------------------------
4262
4264 subroutine yac_fdef_component_metadata(comp_name, metadata)
4265 character(len=*), intent(in) :: comp_name
4266 character(len=*), intent(in) :: metadata
4267 end subroutine yac_fdef_component_metadata
4268
4269 subroutine yac_fdef_component_metadata_instance(yac_instance_id, comp_name, &
4270 metadata)
4271 integer, intent(in) :: yac_instance_id
4272 character(len=*), intent(in) :: comp_name
4273 character(len=*), intent(in) :: metadata
4275 end interface yac_fdef_component_metadata
4276
4278 function yac_fcomponent_has_metadata(comp_name) result( has_metadata )
4279 character(len=*), intent(in) :: comp_name
4280 logical :: has_metadata
4281 end function yac_fcomponent_has_metadata
4282
4283 function yac_fcomponent_has_metadata_instance(yac_instance_id, comp_name) &
4284 result( has_metadata )
4285 integer, intent(in) :: yac_instance_id
4286 character(len=*), intent(in) :: comp_name
4287 logical :: has_metadata
4289 end interface yac_fcomponent_has_metadata
4290
4292 function yac_fget_component_metadata(comp_name) result( metadata )
4293 character(len=*), intent(in) :: comp_name
4294 character(len=:), allocatable :: metadata
4295 end function yac_fget_component_metadata
4296
4297 function yac_fget_component_metadata_instance(yac_instance_id, comp_name) &
4298 result( metadata )
4299 integer, intent(in) :: yac_instance_id
4300 character(len=*), intent(in) :: comp_name
4301 character(len=:), allocatable :: metadata
4303 end interface yac_fget_component_metadata
4304
4306 subroutine yac_fdef_grid_metadata(grid_name, metadata)
4307 character(len=*), intent(in) :: grid_name
4308 character(len=*), intent(in) :: metadata
4309 end subroutine yac_fdef_grid_metadata
4310
4311 subroutine yac_fdef_grid_metadata_instance(yac_instance_id, grid_name, metadata)
4312 integer, intent(in) :: yac_instance_id
4313 character(len=*), intent(in) :: grid_name
4314 character(len=*), intent(in) :: metadata
4315 end subroutine yac_fdef_grid_metadata_instance
4316 end interface yac_fdef_grid_metadata
4317
4319 function yac_fgrid_has_metadata(grid_name) result( has_metadata )
4320 character(len=*), intent(in) :: grid_name
4321 logical :: has_metadata
4322 end function yac_fgrid_has_metadata
4323
4324 function yac_fgrid_has_metadata_instance(yac_instance_id, grid_name) &
4325 result( has_metadata )
4326 integer, intent(in) :: yac_instance_id
4327 character(len=*), intent(in) :: grid_name
4328 logical :: has_metadata
4330 end interface yac_fgrid_has_metadata
4331
4333 function yac_fget_grid_metadata(grid_name) result( metadata )
4334 character(len=*), intent(in) :: grid_name
4335 character(len=:), allocatable :: metadata
4336 end function yac_fget_grid_metadata
4337
4338 function yac_fget_grid_metadata_instance(yac_instance_id, grid_name) &
4339 result( metadata )
4340 integer, intent(in) :: yac_instance_id
4341 character(len=*), intent(in) :: grid_name
4342 character(len=:), allocatable :: metadata
4344 end interface yac_fget_grid_metadata
4345
4347 subroutine yac_fdef_field_metadata(comp_name, grid_name, field_name, metadata)
4348 character(len=*), intent(in) :: comp_name
4349 character(len=*), intent(in) :: grid_name
4350 character(len=*), intent(in) :: field_name
4351 character(len=*), intent(in) :: metadata
4352 end subroutine yac_fdef_field_metadata
4353
4354 subroutine yac_fdef_field_metadata_instance(yac_instance_id, comp_name, &
4355 grid_name, field_name, metadata)
4356 integer, intent(in) :: yac_instance_id
4357 character(len=*), intent(in) :: comp_name
4358 character(len=*), intent(in) :: grid_name
4359 character(len=*), intent(in) :: field_name
4360 character(len=*), intent(in) :: metadata
4362 end interface yac_fdef_field_metadata
4363
4365 function yac_ffield_has_metadata(comp_name, grid_name, field_name) &
4366 result( has_metadata )
4367 character(len=*), intent(in) :: comp_name
4368 character(len=*), intent(in) :: grid_name
4369 character(len=*), intent(in) :: field_name
4370 logical :: has_metadata
4371 end function yac_ffield_has_metadata
4372
4374 yac_instance_id, comp_name, grid_name, field_name) &
4375 result( has_metadata )
4376 integer, intent(in) :: yac_instance_id
4377 character(len=*), intent(in) :: comp_name
4378 character(len=*), intent(in) :: grid_name
4379 character(len=*), intent(in) :: field_name
4380 logical :: has_metadata
4382 end interface yac_ffield_has_metadata
4383
4385 function yac_fget_field_metadata(comp_name, grid_name, field_name) &
4386 result( metadata )
4387 character(len=*), intent(in) :: comp_name
4388 character(len=*), intent(in) :: grid_name
4389 character(len=*), intent(in) :: field_name
4390 character(len=:), allocatable :: metadata
4391 end function yac_fget_field_metadata
4392
4393 function yac_fget_field_metadata_instance(yac_instance_id, comp_name, &
4394 grid_name, field_name) &
4395 result( metadata )
4396 integer, intent(in) :: yac_instance_id
4397 character(len=*), intent(in) :: comp_name
4398 character(len=*), intent(in) :: grid_name
4399 character(len=*), intent(in) :: field_name
4400 character(len=:), allocatable :: metadata
4402 end interface yac_fget_field_metadata
4403
4404 ! ---------------------------------------------------------------------
4405
4406 interface
4407
4408 subroutine yac_fget_action ( field_id, action )
4409
4410 integer, intent (in) :: field_id
4411 integer, intent (out) :: action
4417
4418 end subroutine yac_fget_action
4419
4420 end interface
4421
4422 ! ---------------------------------------------------------------------
4423
4424 interface
4425
4426 subroutine yac_fupdate ( field_id )
4427
4428 integer, intent (in) :: field_id
4429
4430 end subroutine yac_fupdate
4431
4432 end interface
4433
4434! --- ISO_C interface -------------------------------------------------
4435
4436 interface
4437
4438 subroutine yac_abort_message ( text, file, line ) &
4439 bind( c, name='yac_abort_message' )
4440
4441 use, intrinsic :: iso_c_binding, only : c_int, c_char
4442
4443 character ( kind=c_char ), dimension(*) :: text
4444 character ( kind=c_char ), dimension(*) :: file
4445 integer ( kind=c_int ), value :: line
4446
4447 end subroutine yac_abort_message
4448
4449 end interface
4450
4451end 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 enabling/disabling of coordinate checks.
Fortran interface for enabling/disabling of coordinates mismatch fatality.
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 writing of grid files for all grids.
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_grids_output_file_instance(yac_instance_id, filename)
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_fdef_points_curve2d_named_dble(grid_id, nbr_points, location, x_points, y_points, name, point_id)
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_points_reg2d_rot_named_real(grid_id, nbr_points, location, x_points_real, y_points_real, x_north_pole_real, y_north_pole_real, name, point_id)
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_fset_coordinates_check_instance(yac_instance_id, apply_check)
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)
integer function yac_fget_comp_id_instance(yac_id, comp_name)
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_points_curve2d_named_real(grid_id, nbr_points, location, x_points_real, y_points_real, name, point_id)
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_fdef_points_unstruct_named_real(grid_id, nbr_points, location, x_points_real, y_points_real, name, point_id)
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_fdef_points_unstruct_named_dble(grid_id, nbr_points, location, x_points, y_points, name, 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_fset_coordinates_mismatch_is_fatal_instance(yac_instance_id, is_fatal)
subroutine yac_finit_comm_dummy(world_comm)
type(yac_string) function, dimension(:), allocatable yac_fget_grid_names_instance(yac_instance_id)
subroutine yac_fdef_points_reg2d_named_real(grid_id, nbr_points, location, x_points_real, y_points_real, name, point_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_fdef_points_reg2d_named_dble(grid_id, nbr_points, location, x_points, y_points, name, point_id)
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_points_reg2d_rot_named_dble(grid_id, nbr_points, location, x_points, y_points, x_north_pole, y_north_pole, name, point_id)
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)