@@ -83,9 +83,16 @@ module boundary_conditions
83
83
end interface extract_scalar_surface_field
84
84
85
85
interface has_surface_field
86
- module procedure has_scalar_surface_field_specific, &
87
- has_vector_surface_field_specific
86
+ module procedure has_scalar_surface_field_by_bc_number, &
87
+ has_vector_surface_field_by_bc_number, &
88
+ has_scalar_surface_field_by_bc_name, &
89
+ has_vector_surface_field_by_bc_name
88
90
end interface
91
+
92
+ interface has_scalar_surface_field
93
+ module procedure vector_has_scalar_surface_field_by_bc_number, &
94
+ vector_has_scalar_surface_field_by_bc_name
95
+ end interface has_scalar_surface_field
89
96
90
97
interface get_boundary_condition_count
91
98
module procedure get_scalar_boundary_condition_count, &
@@ -792,9 +799,9 @@ function extract_vector_scalar_surface_field_by_name(field, bc_name, name, stat)
792
799
793
800
end function extract_vector_scalar_surface_field_by_name
794
801
795
- function has_scalar_surface_field_specific (field , n , name )
802
+ function has_scalar_surface_field_by_bc_number (field , n , name )
796
803
! !< Tells whether a surface_field with the given is present
797
- logical :: has_scalar_surface_field_specific
804
+ logical :: has_scalar_surface_field_by_bc_number
798
805
type (scalar_field), intent (in ):: field
799
806
integer , intent (in ):: n
800
807
character (len=* ), intent (in ):: name
@@ -808,19 +815,19 @@ function has_scalar_surface_field_specific(field, n, name)
808
815
if (associated (bc% surface_fields)) then
809
816
do i= 1 , size (bc% surface_fields)
810
817
if (bc% surface_fields(i)% name== name) then
811
- has_scalar_surface_field_specific = .true.
818
+ has_scalar_surface_field_by_bc_number = .true.
812
819
return
813
820
end if
814
821
end do
815
822
end if
816
823
817
- has_scalar_surface_field_specific = .false.
824
+ has_scalar_surface_field_by_bc_number = .false.
818
825
819
- end function has_scalar_surface_field_specific
826
+ end function has_scalar_surface_field_by_bc_number
820
827
821
- function has_vector_surface_field_specific (field , n , name )
828
+ function has_vector_surface_field_by_bc_number (field , n , name )
822
829
! !< Tells whether a surface_field with the given is present
823
- logical :: has_vector_surface_field_specific
830
+ logical :: has_vector_surface_field_by_bc_number
824
831
type (vector_field), intent (in ):: field
825
832
integer , intent (in ):: n
826
833
character (len=* ), intent (in ):: name
@@ -834,19 +841,19 @@ function has_vector_surface_field_specific(field, n, name)
834
841
if (associated (bc% surface_fields)) then
835
842
do i= 1 , size (bc% surface_fields)
836
843
if (bc% surface_fields(i)% name== name) then
837
- has_vector_surface_field_specific = .true.
844
+ has_vector_surface_field_by_bc_number = .true.
838
845
return
839
846
end if
840
847
end do
841
848
end if
842
849
843
- has_vector_surface_field_specific = .false.
850
+ has_vector_surface_field_by_bc_number = .false.
844
851
845
- end function has_vector_surface_field_specific
852
+ end function has_vector_surface_field_by_bc_number
846
853
847
- function has_scalar_surface_field (field , n , name )
854
+ function vector_has_scalar_surface_field_by_bc_number (field , n , name )
848
855
! !< Tells whether a surface_field with the given is present
849
- logical :: has_scalar_surface_field
856
+ logical :: vector_has_scalar_surface_field_by_bc_number
850
857
type (vector_field), intent (in ):: field
851
858
integer , intent (in ):: n
852
859
character (len=* ), intent (in ):: name
@@ -860,16 +867,79 @@ function has_scalar_surface_field(field, n, name)
860
867
if (associated (bc% scalar_surface_fields)) then
861
868
do i= 1 , size (bc% scalar_surface_fields)
862
869
if (bc% scalar_surface_fields(i)% name== name) then
863
- has_scalar_surface_field = .true.
870
+ vector_has_scalar_surface_field_by_bc_number = .true.
864
871
return
865
872
end if
866
873
end do
867
874
end if
868
875
869
- has_scalar_surface_field = .false.
876
+ vector_has_scalar_surface_field_by_bc_number = .false.
870
877
871
- end function has_scalar_surface_field
878
+ end function vector_has_scalar_surface_field_by_bc_number
879
+
880
+ function has_scalar_surface_field_by_bc_name (field , bc_name , name )
881
+ ! !< Tells whether a surface_field with the given name is present
882
+ ! !< If the bc_name does not exist an error is given
883
+ logical :: has_scalar_surface_field_by_bc_name
884
+ type (scalar_field), intent (in ):: field
885
+ character (len=* ), intent (in ):: bc_name, name
872
886
887
+ integer i
888
+
889
+ do i= 1 , size (field% bc% boundary_condition)
890
+ if (field% bc% boundary_condition(i)% name== bc_name) then
891
+ has_scalar_surface_field_by_bc_name = has_scalar_surface_field_by_bc_number(field, i, name)
892
+ return
893
+ end if
894
+ end do
895
+
896
+ ewrite(- 1 ,* ) ' Unknown boundary condition: ' , name
897
+ FLAbort(" Sorry!" )
898
+
899
+ end function has_scalar_surface_field_by_bc_name
900
+
901
+ function has_vector_surface_field_by_bc_name (field , bc_name , name )
902
+ ! !< Tells whether a surface_field with the given name is present
903
+ ! !< If the bc_name does not exist an error is given
904
+ logical :: has_vector_surface_field_by_bc_name
905
+ type (vector_field), intent (in ):: field
906
+ character (len=* ), intent (in ):: bc_name, name
907
+
908
+ integer i
909
+
910
+ do i= 1 , size (field% bc% boundary_condition)
911
+ if (field% bc% boundary_condition(i)% name== bc_name) then
912
+ has_vector_surface_field_by_bc_name = has_vector_surface_field_by_bc_number(field, i, name)
913
+ return
914
+ end if
915
+ end do
916
+
917
+ ewrite(- 1 ,* ) ' Unknown boundary condition: ' , name
918
+ FLAbort(" Sorry!" )
919
+
920
+ end function has_vector_surface_field_by_bc_name
921
+
922
+ function vector_has_scalar_surface_field_by_bc_name (field , bc_name , name )
923
+ ! !< Tells whether a scalar surface_field with the given name is present under a vector field bc
924
+ ! !< If the bc_name does not exist an error is given
925
+ logical :: vector_has_scalar_surface_field_by_bc_name
926
+ type (vector_field), intent (in ):: field
927
+ character (len=* ), intent (in ):: bc_name, name
928
+
929
+ integer i
930
+
931
+ do i= 1 , size (field% bc% boundary_condition)
932
+ if (field% bc% boundary_condition(i)% name== bc_name) then
933
+ vector_has_scalar_surface_field_by_bc_name = vector_has_scalar_surface_field_by_bc_number(field, i, name)
934
+ return
935
+ end if
936
+ end do
937
+
938
+ ewrite(- 1 ,* ) ' Unknown boundary condition: ' , name
939
+ FLAbort(" Sorry!" )
940
+
941
+ end function vector_has_scalar_surface_field_by_bc_name
942
+
873
943
integer function get_scalar_boundary_condition_count (field )
874
944
! !< Get number of boundary conditions of a scalar field
875
945
type (scalar_field), intent (in ):: field
0 commit comments