45 SUBROUTINE com_set_data( attr, ptr) ! Must be explicitly declared here
47 CHARACTER(*),
INTENT(IN) ::
attr
62 CHARACTER(*),
INTENT(IN) :: mname
66 CALL com_set_external( mname//
".finalize_0d", 0,
finalize_0d)
73 CHARACTER(*),
INTENT(IN) :: mname
77 CALL com_set_external( mname//
".finalize_0d", 0,
finalize_0d)
86 CHARACTER(*),
INTENT(IN) :: mname
90 CALL com_set_external( mname//
".finalize_0d", 0,
finalize_0d)
104 CHARACTER(*),
INTENT(IN) :: module_name
109 SUBROUTINE com_set_pointer( attr, ptr, asso)
111 CHARACTER(*),
INTENT(IN) ::
attr
114 END SUBROUTINE com_set_pointer
118 g_b%mname = module_name
119 g_b%TBL_flag = no_tbl
120 IF ( module_name ==
"RocburnAPN")
THEN
121 g_b%burn_model = model_apn
122 ELSE IF ( module_name ==
"RocburnPY")
THEN
123 g_b%burn_model = model_py
124 ELSE IF ( module_name ==
"RocburnZN")
THEN
125 g_b%burn_model = model_zn
127 print *,
"Rocburn-2D: Unknown module name", module_name
128 print *,
"Rocburn-2D: Use APN instead", module_name
129 g_b%burn_model = model_apn
132 CALL com_new_window( module_name)
134 CALL com_new_attribute( module_name//
".global",
'w', com_f90pointer, 1,
'')
135 CALL com_resize_array( module_name//
".global")
137 CALL com_new_attribute( module_name//
".init_0d",
'w', com_void, 1,
'')
138 CALL com_new_attribute( module_name//
".init_1d",
'w', com_void, 1,
'')
139 CALL com_new_attribute( module_name//
".finalize_0d",
'w', com_void, 1,
'')
140 CALL com_new_attribute( module_name//
".get_film_coeff",
'w', com_void, 1,
'')
141 CALL com_new_attribute( module_name//
".get_time_step",
'w', com_void, 1,
'')
142 CALL com_new_attribute( module_name//
".get_burn_rate",
'w', com_void, 1,
'')
144 CALL com_resize_array( module_name//
".init_0d")
145 CALL com_resize_array( module_name//
".init_1d")
146 CALL com_resize_array( module_name//
".finalize_0d")
147 CALL com_resize_array( module_name//
".get_film_coeff")
148 CALL com_resize_array( module_name//
".get_time_step")
149 CALL com_resize_array( module_name//
".get_burn_rate")
153 IF ( g_b%burn_model == model_py)
THEN
155 ELSE IF ( g_b%burn_model == model_zn)
THEN
161 types(1) = com_f90pointer
162 types(2) = com_double_precision
163 types(3) = com_mpi_comm
164 types(4) = com_integer
165 types(5) = com_string
166 types(6) = com_string
167 types(7) = com_integer
169 CALL com_set_member_function( module_name//
".initialize", &
172 types(1) = com_f90pointer
173 types(2) = com_integer
174 types(3) = com_string
175 types(4) = com_string
176 types(5) = com_rawdata
177 types(6) = com_rawdata
178 types(7) = com_integer
180 CALL com_set_member_function( module_name//
".init_internal", &
181 initialize, module_name//
".global",
"biiiiii", types)
183 types(1) = com_f90pointer
184 types(2) = com_double_precision
185 types(3) = com_double_precision
186 types(4) = com_integer
188 CALL com_set_member_function( module_name//
".update_solution", &
191 types(1) = com_f90pointer
192 types(2) = com_double_precision
193 types(3) = com_double_precision
194 types(4) = com_integer
195 types(5) = com_rawdata
196 types(6) = com_rawdata
197 types(7) = com_rawdata
199 CALL com_set_member_function( module_name//
".update_internal", &
200 update, module_name//
".global",
"biiiiii", types)
203 types(1) = com_f90pointer
204 types(2) = com_rawdata
205 CALL com_set_member_function( module_name//
".finalize", &
206 finalize, module_name//
".global",
"b", types)
208 CALL com_window_init_done( module_name)
210 g_b%INIT = com_get_function_handle(module_name//
".init_internal")
211 g_b%UPDATE = com_get_function_handle(module_name//
".update_internal")
212 g_b%INIT_1D = com_get_attribute_handle(module_name//
".init_1d")
213 g_b%INIT_0D = com_get_attribute_handle(module_name//
".init_0d")
214 g_b%GET_FILM_COEFF = com_get_attribute_handle(module_name//
".get_film_coeff")
215 g_b%GET_BURN_RATE = com_get_attribute_handle(module_name//
".get_burn_rate")
216 g_b%GET_TIME_STEP = com_get_attribute_handle(module_name//
".get_time_step")
225 CHARACTER(*),
INTENT(IN) :: module_name
230 SUBROUTINE com_get_pointer( attr, ptr, asso)
232 CHARACTER(*),
INTENT(IN) ::
attr
235 END SUBROUTINE com_get_pointer
241 CALL com_delete_window( module_name)
subroutine get_burning_rate_1d(G_APN, delt, P_mks, To, Tn, qc_mks, qc_old_mks, qr_mks, qr_old_mks, rhoc_mks, Toa, rb_mks, fr, bflag, Tnp1, Tflame, p_coor)
subroutine initialize(G_b, MAN_INIT, inSurf, inInt, INIT_0D, INIT_1D, IN_obt_attr)
subroutine update_wrapper(G_b, timestamp, dt, MAN_UPDATE)
subroutine get_time_step_1d(bp, rb, Toa, dt_max)
subroutine initialize_0d(G_APN, comm, Indir, nxmax, To_read)
subroutine initialize_1d(G_APN, bflag, P_mks, To, rhoc_mks, p_coor, rb_mks, Toa, fr, Tn, Tflame)
subroutine rocburn_init_funcs_zn(mname)
subroutine get_film_coeff_1d(G_ZN, p_coor, Ts, T_euler, P, qc, qcPrime)
const COM::Attribute * attr(const COM::Attribute *a) const
Obtain the attribute on the parent pane of the node.
subroutine rocburn_init_funcs_apn(mname)
subroutine rocburn_init_funcs_py(mname)
subroutine associate_pointer(attr, ptr)
subroutine update(G_b, timestamp, dt, MAN_UPDATE, GET_FILM_COEFF_1D, GET_TIME_STEP_1D, GET_BURNING_RATE_1D)
subroutine rocburn_load_module(module_name)
subroutine com_set_data(attr, ptr)
subroutine finalize_0d(G_APN)
subroutine init_wrapper(G_b, initial_time, comm, MAN_INIT, inSurf, inInt, IN_obt_attr)
subroutine rocburn_unload_module(module_name)