37 use user_source_term,
only: user_source_term_t
38 use source_term,
only: source_term_t
39 use source_term_handler,
only: source_term_handler_t
40 use field,
only: field_t
41 use field_list,
only: field_list_t
42 use coefs,
only: coef_t
43 use user_intf,
only: user_t
57 procedure,
nopass :: init_user_source => adjoint_init_user_source
67 type(field_t),
pointer,
intent(in) :: f_x, f_y, f_z
68 type(coef_t),
target,
intent(in) :: coef
69 type(user_t),
target,
intent(in) :: user
70 character(len=*),
intent(in) :: scheme_name
72 type(field_list_t) :: rhs_fields
75 call rhs_fields%init(3)
76 call rhs_fields%assign(1, f_x)
77 call rhs_fields%assign(2, f_y)
78 call rhs_fields%assign(3, f_z)
81 call this%init_base(rhs_fields, coef, user, scheme_name)
90 subroutine adjoint_init_user_source(source_term, rhs_fields, coef, user, &
92 class(source_term_t),
allocatable,
intent(inout) :: source_term
93 type(field_list_t) :: rhs_fields
94 type(coef_t),
intent(in) :: coef
95 type(user_t),
intent(in) :: user
96 character(len=*),
intent(in) :: scheme_name
98 allocate(user_source_term_t::source_term)
100 select type (source_term)
101 type is (user_source_term_t)
102 call source_term%init_from_components(rhs_fields, coef, &
103 user%source_term, scheme_name)
105 end subroutine adjoint_init_user_source
Implements the adjoint_source_term_t type.
subroutine adjoint_source_term_init(this, f_x, f_y, f_z, coef, user, scheme_name)
Constructor.
Wrapper contaning and executing the adjoint source terms.