68 INTEGER :: myid, numprocs, ierror
69 CHARACTER(*),
INTENT(IN) :: surfin
70 INTEGER,
INTENT(IN) :: obtain_attr
72 INTEGER,
POINTER,
DIMENSION(:) :: paneids
74 CHARACTER*9 :: timelevel
75 CHARACTER*120 :: frachdffname, meshfile
77 INTEGER,
POINTER ::
zero, one, two
79 integer :: numeltypes2d
80 character(LEN=1),
POINTER,
DIMENSION(:) :: names
81 character(LEN=4) :: chreltype
82 integer :: endpt, startpt, chrlngth
83 integer ::
pane, bcflag
85 CALL mpi_comm_rank( glb%MPI_COMM_ROCFRAC, myid, ierror)
86 CALL mpi_comm_size( glb%MPI_COMM_ROCFRAC, numprocs, ierror)
90 WRITE (*,*)
' Calling RocFrac Register...'
93 WRITE (*,*)
'Propellant density rho(1) is ', glb%rho(1)
96 CALL com_new_window(surwin)
99 CALL com_new_attribute(surwin//
'.rhos',
'w', com_double, 1,
'kg/m^3')
100 CALL com_set_array( surwin//
'.rhos', 0, glb%rho,1 )
102 CALL com_new_attribute(surwin//
'.u',
'n', com_double, 3,
'm')
103 CALL com_new_attribute(surwin//
'.vs',
'n', com_double, 3,
'm/s')
104 CALL com_new_attribute(surwin//
'.uhat',
'n', com_double, 3,
'm')
105 CALL com_new_attribute(surwin//
'.accel',
'n', com_double, 3,
'm/s^2')
107 CALL com_new_attribute(surwin//
'.ts_alp',
'e', com_double, 1,
'Pa')
108 CALL com_new_attribute(surwin//
'.bv',
'n',com_integer, 1,
'')
109 CALL com_new_attribute( surwin//
'.bf2c',
'e', com_integer, 1,
'')
110 CALL com_new_attribute( surwin//
'.bcflag',
'p', com_integer, 1,
'')
112 IF (glb%HeatTransSoln)
THEN
113 CALL com_new_attribute(surwin//
'.qs',
'e', com_double, 1,
'W/m^2')
114 CALL com_new_attribute(surwin//
'.Ts',
'n', com_double, 1,
'K')
120 IF ( glb%ALEenabled) CALL com_new_attribute( surwin//
'.vbar_alp',
'n', com_double, 3,
'm/s')
122 CALL com_get_panes( surfin, npanes, paneids)
130 CALL com_copy_array( surfin//
'.bcflag',
pane, bcflag)
135 CALL com_get_size( surfin//
".nc",
pane, glb%InterfaceSFNumNodes)
136 CALL com_set_size( surwin//
".nc",
pane, glb%InterfaceSFNumNodes)
137 CALL com_set_size( surwin//
'.bcflag',
pane, 1)
138 CALL com_resize_array(surwin//
'.bcflag',
pane)
140 CALL com_get_connectivities(surfin,
pane,numeltypes2d,names)
143 DO i = 1, numeltypes2d
147 DO WHILE (endpt .LE. ubound(names,1))
148 IF (names(endpt) .NE.
' ')
THEN
149 chrlngth = chrlngth + 1
150 chreltype(chrlngth:chrlngth) = names(endpt)
159 IF(chreltype(1:chrlngth).EQ.
':t6')
THEN
160 CALL com_get_size( surfin//
".:t6",
pane, glb%InterfaceSFNumElems)
161 CALL com_set_size( surwin//
".:t6",
pane, glb%InterfaceSFNumElems)
163 ELSE IF(chreltype(1:chrlngth).EQ.
':t3')
THEN
164 CALL com_get_size( surfin//
".:t3",
pane, glb%InterfaceSFNumElems)
165 CALL com_set_size( surwin//
".:t3",
pane, glb%InterfaceSFNumElems)
167 ELSE IF(chreltype(1:chrlngth).EQ.
':q4')
THEN
168 CALL com_get_size( surfin//
".:q4",
pane, glb%InterfaceSFNumElems)
169 CALL com_set_size( surwin//
".:q4",
pane, glb%InterfaceSFNumElems)
172 print*,
'ROCFRAC ERROR: Surface mesh type element not supported'
173 print*,
'Read in Element Type :: ', chreltype(1:chrlngth)
174 CALL mpi_finalize(glb%MPI_COMM_ROCFRAC,ierr)
177 print*,
'Element type', glb%iElType2D
180 CALL com_free_buffer(names)
183 ALLOCATE(glb%InterfaceSFNodalCoors(1:3,1:glb%InterfaceSFNumNodes))
184 ALLOCATE(glb%MapNodeSF(1:glb%InterfaceSFNumNodes))
186 ALLOCATE(glb%InterfaceSFElemConn(1:glb%iElType2D,1:glb%InterfaceSFNumElems))
187 ALLOCATE(glb%MapSFElVolEl(1:glb%InterfaceSFNumElems))
192 ALLOCATE(glb%InterfaceSFNodalDisps(1:3,1:glb%InterfaceSFNumNodes))
193 ALLOCATE(glb%InterfaceSFNodalAccel(1:3,1:glb%InterfaceSFNumNodes))
194 ALLOCATE(glb%InterfaceSFTotalNodalDisps(1:3,1:glb%InterfaceSFNumNodes))
195 ALLOCATE(glb%InterfaceSFNodalVels(1:3,1:glb%InterfaceSFNumNodes))
197 ALLOCATE(glb%InterfaceSFElemTract(1:glb%InterfaceSFNumElems))
199 ALLOCATE(glb%InterfaceSFVbar(1:3,1:glb%InterfaceSFNumNodes))
201 IF(glb%HeatTransSoln)
THEN
202 ALLOCATE(glb%InterfaceSFHeatFlux(1:glb%InterfaceSFNumElems))
203 glb%InterfaceSFHeatFlux(:) = glb%DummyFlux
205 ALLOCATE(glb%InterfaceSFNodalTemp(1:glb%InterfaceSFNumNodes))
206 glb%InterfaceSFNodalTemp(:) = glb%Temperature0
211 ALLOCATE(glb%pstatic(1:3,1:glb%InterfaceSFNumElems))
212 glb%pstatic(1:3,1:glb%InterfaceSFNumElems) = 0.d0
214 glb%InterfaceSFNodalDisps(:,:) = 0.d0
215 glb%InterfaceSFNodalAccel(:,:) = 0.d0
216 glb%InterfaceSFTotalNodalDisps(:,:) = 0.d0
217 glb%InterfaceSFNodalVels(:,:) = 0.d0
218 glb%InterfaceSFElemTract(:) = 0.d0
220 glb%InterfaceSFVbar = 0.d0
222 IF ( glb%InterfaceSFNumNodes > 0)
THEN
231 CALL com_set_array( surwin//
'.nc',
pane, glb%InterfaceSFNodalCoors,3 )
235 IF(glb%iElType2D.EQ.3)
THEN
239 CALL com_set_array( surwin//
'.:t3',
pane, glb%InterfaceSFElemConn,3)
241 ELSE IF(glb%iElType2D.EQ.6)
THEN
243 CALL com_set_array( surwin//
'.:t6',
pane, glb%InterfaceSFElemConn,6)
245 ELSE IF(glb%iElType2D.EQ.4)
THEN
248 CALL com_set_array( surwin//
'.:q4',
pane, glb%InterfaceSFElemConn,4)
252 CALL com_set_array( surwin//
'.bv',
pane, glb%MapNodeSF,1)
253 CALL com_set_array(surwin//
'.bf2c',
pane, glb%MapSFElVolEl, 1)
255 CALL com_set_array( surwin//
'.accel',
pane, glb%InterfaceSFNodalAccel,3)
256 CALL com_set_array( surwin//
'.u',
pane, glb%InterfaceSFNodalDisps,3)
257 CALL com_set_array( surwin//
'.vs',
pane, glb%InterfaceSFNodalVels,3)
258 CALL com_set_array( surwin//
'.uhat',
pane, glb%InterfaceSFTotalNodalDisps,3)
260 CALL com_set_array( surwin//
'.ts_alp',
pane, glb%InterfaceSFElemTract, 1)
262 IF (glb%ALEenabled) CALL com_set_array( surwin//
'.vbar_alp',
pane, glb%InterfaceSFVbar,3)
264 IF (glb%HeatTransSoln)
THEN
265 CALL com_set_array( surwin//
'.qs',
pane, glb%InterfaceSFHeatFlux, 1)
266 CALL com_set_array( surwin//
'.Ts',
pane, glb%InterfaceSFNodalTemp, 1)
272 ELSE IF(bcflag.EQ.2)
THEN
274 CALL com_get_size( surfin//
".nc",
pane, glb%InterfaceSNumNodes)
275 CALL com_set_size( surwin//
".nc",
pane, glb%InterfaceSNumNodes)
277 CALL com_set_size( surwin//
'.bcflag',
pane, 1)
278 CALL com_resize_array(surwin//
'.bcflag',
pane)
280 CALL com_get_connectivities(surfin,
pane,numeltypes2d,names)
282 DO i = 1, numeltypes2d
286 DO WHILE (endpt .LE. ubound(names,1))
287 IF (names(endpt) .NE.
' ')
THEN
288 chrlngth = chrlngth + 1
289 chreltype(chrlngth:chrlngth) = names(endpt)
298 IF(chreltype(1:chrlngth).EQ.
':t6')
THEN
299 CALL com_get_size( surfin//
".:t6",
pane, glb%InterfaceSNumElems)
300 CALL com_set_size( surwin//
".:t6",
pane, glb%InterfaceSNumElems)
302 ELSE IF(chreltype(1:chrlngth).EQ.
':t3')
THEN
303 CALL com_get_size( surfin//
".:t3",
pane, glb%InterfaceSNumElems)
304 CALL com_set_size( surwin//
".:t3",
pane, glb%InterfaceSNumElems)
306 ELSE IF(chreltype(1:chrlngth).EQ.
':q4')
THEN
307 CALL com_get_size( surfin//
".:q4",
pane, glb%InterfaceSNumElems)
308 CALL com_set_size( surwin//
".:q4",
pane, glb%InterfaceSNumElems)
311 print*,
'ROCFRAC ERROR: Surface mesh type element not supported'
312 print*,
'Read in Element Type :: ', chreltype(1:chrlngth)
313 CALL mpi_finalize(glb%MPI_COMM_ROCFRAC,ierr)
320 CALL com_free_buffer(names)
322 ALLOCATE(glb%InterfaceSNodalCoors(1:3,1:glb%InterfaceSNumNodes))
323 ALLOCATE(glb%MapNodeS(1:glb%InterfaceSNumNodes))
325 ALLOCATE(glb%InterfaceSVbar(1:3,1:glb%InterfaceSNumNodes))
326 glb%InterfaceSVbar = 0.d0
328 ALLOCATE(glb%InterfaceSElemConn(1:glb%iElType2D,1:glb%InterfaceSNumElems))
329 IF(glb%EnforceTractionS)
THEN
330 ALLOCATE(glb%MapSElVolEl(1:glb%InterfaceSNumElems))
333 IF ( glb%InterfaceSNumNodes > 0)
THEN
337 CALL com_set_array( surwin//
'.nc',
pane, glb%InterfaceSNodalCoors,3)
338 IF(glb%iElType2D.EQ.3)
THEN
340 CALL com_set_array( surwin//
'.:t3',
pane, glb%InterfaceSElemConn,3)
342 ELSE IF(glb%iElType2D.EQ.6)
THEN
344 CALL com_set_array( surwin//
'.:t6',
pane, glb%InterfaceSElemConn,6)
346 ELSE IF(glb%iElType2D.EQ.4)
THEN
348 CALL com_set_array( surwin//
'.:q4',
pane, glb%InterfaceSElemConn,4)
355 IF(glb%EnforceTractionS)
THEN
356 CALL com_set_array(surwin//
'.bf2c',
pane, glb%MapSElVolEl, 1)
363 CALL com_set_array( surwin//
'.bv',
pane, glb%MapNodeS,1)
365 IF( glb%ALEenabled) CALL com_set_array( surwin//
'.vbar_alp',
pane, glb%InterfaceSVbar,3)
371 else if ( bcflag.eq.0 )
THEN
373 CALL com_get_size( surfin//
".nc",
pane, glb%InterfaceSFnbNumNodes)
374 CALL com_set_size( surwin//
".nc",
pane, glb%InterfaceSFnbNumNodes)
376 CALL com_set_size( surwin//
'.bcflag',
pane, 1)
377 CALL com_resize_array(surwin//
'.bcflag',
pane)
379 CALL com_get_connectivities(surfin,
pane,numeltypes2d,names)
382 DO i = 1, numeltypes2d
386 DO WHILE (endpt .LE. ubound(names,1))
387 IF (names(endpt) .NE.
' ')
THEN
388 chrlngth = chrlngth + 1
389 chreltype(chrlngth:chrlngth) = names(endpt)
398 IF(chreltype(1:chrlngth).EQ.
':t6')
THEN
399 CALL com_get_size( surfin//
".:t6",
pane, glb%InterfaceSFnbNumElems)
400 CALL com_set_size( surwin//
".:t6",
pane, glb%InterfaceSFnbNumElems)
402 ELSE IF(chreltype(1:chrlngth).EQ.
':t3')
THEN
403 CALL com_get_size( surfin//
".:t3",
pane, glb%InterfaceSFnbNumElems)
404 CALL com_set_size( surwin//
".:t3",
pane, glb%InterfaceSFnbNumElems)
406 ELSE IF(chreltype(1:chrlngth).EQ.
':q4')
THEN
407 CALL com_get_size( surfin//
".:q4",
pane, glb%InterfaceSFnbNumElems)
408 CALL com_set_size( surwin//
".:q4",
pane, glb%InterfaceSFnbNumElems)
411 print*,
'ROCFRAC ERROR: Surface mesh type element not supported'
412 print*,
'Read in Element Type :: ', chreltype(1:chrlngth)
413 CALL mpi_finalize(glb%MPI_COMM_ROCFRAC,ierr)
418 CALL com_free_buffer(names)
421 ALLOCATE(glb%InterfaceSFnbNodalCoors(1:3,1:glb%InterfaceSFnbNumNodes))
422 ALLOCATE(glb%MapNodeSFnb(1:glb%InterfaceSFnbNumNodes))
424 ALLOCATE(glb%InterfaceSFnbElemConn(1:glb%iElType2D,1:glb%InterfaceSFnbNumElems))
425 ALLOCATE(glb%MapSFnbElVolEl(1:glb%InterfaceSFnbNumElems))
430 ALLOCATE(glb%InterfaceSFnbNodalDisps(1:3,1:glb%InterfaceSFnbNumNodes))
431 ALLOCATE(glb%InterfaceSFnbTotalNodalDisps(1:3,1:glb%InterfaceSFnbNumNodes))
432 ALLOCATE(glb%InterfaceSFnbNodalAccel(1:3,1:glb%InterfaceSFnbNumNodes))
433 ALLOCATE(glb%InterfaceSFnbNodalVels(1:3,1:glb%InterfaceSFnbNumNodes))
435 ALLOCATE(glb%InterfaceSFnbElemTract(1:glb%InterfaceSFnbNumElems))
437 ALLOCATE(glb%InterfaceSFnbVbar(1:3,1:glb%InterfaceSFnbNumNodes))
440 IF(glb%HeatTransSoln)
THEN
441 ALLOCATE(glb%InterfaceSFnbHeatFlux(1:glb%InterfaceSFnbNumElems))
442 glb%InterfaceSFnbHeatFlux(:) = glb%DummyFlux
444 ALLOCATE(glb%InterfaceSFnbNodalTemp(1:glb%InterfaceSFnbNumNodes))
445 glb%InterfaceSFnbNodalTemp(:) = glb%Temperature0
449 ALLOCATE(glb%pstatic(1:3,1:glb%InterfaceSFNumElems))
450 glb%pstatic(1:3,1:glb%InterfaceSFNumElems) = 0.d0
451 ALLOCATE(glb%pstaticnb(1:3,1:glb%InterfaceSFnbNumElems))
452 glb%pstaticnb(1:3,1:glb%InterfaceSFnbNumElems) = 0.d0
455 glb%InterfaceSFnbNodalAccel(:,:) = 0.d0
456 glb%InterfaceSFnbNodalDisps(:,:) = 0.d0
457 glb%InterfaceSFnbTotalNodalDisps(:,:) = 0.d0
458 glb%InterfaceSFnbNodalVels(:,:) = 0.d0
459 glb%InterfaceSFnbElemTract(:) = 0.d0
461 glb%InterfaceSFnbVbar = 0.d0
463 IF ( glb%InterfaceSFnbNumNodes > 0)
THEN
472 CALL com_set_array(surwin//
'.nc',
pane, glb%InterfaceSFnbNodalCoors,3 )
476 IF(glb%iElType2D.EQ.3)
THEN
480 CALL com_set_array( surwin//
'.:t3',
pane, glb%InterfaceSFnbElemConn,3)
482 ELSE IF(glb%iElType2D.EQ.6)
THEN
484 CALL com_set_array( surwin//
'.:t6',
pane, glb%InterfaceSFnbElemConn,6)
486 ELSE IF(glb%iElType2D.EQ.4)
THEN
489 CALL com_set_array( surwin//
'.:q4',
pane, glb%InterfaceSFnbElemConn,4)
493 CALL com_set_array( surwin//
'.bv',
pane, glb%MapNodeSFnb,1)
494 CALL com_set_array(surwin//
'.bf2c',
pane, glb%MapSFnbElVolEl, 1)
496 CALL com_set_array( surwin//
'.accel',
pane, glb%InterfaceSFnbNodalAccel,3)
497 CALL com_set_array( surwin//
'.u',
pane, glb%InterfaceSFnbNodalDisps,3)
498 CALL com_set_array( surwin//
'.vs',
pane, glb%InterfaceSFnbNodalVels,3)
499 CALL com_set_array( surwin//
'.uhat',
pane, glb%InterfaceSFnbTotalNodalDisps,3)
501 CALL com_set_array( surwin//
'.ts_alp',
pane, glb%InterfaceSFnbElemTract, 1)
503 IF (glb%HeatTransSoln)
THEN
504 CALL com_set_array( surwin//
'.qs',
pane, glb%InterfaceSFnbHeatFlux, 1)
505 CALL com_set_array( surwin//
'.Ts',
pane, glb%InterfaceSFnbNodalTemp, 1)
509 IF ( glb%ALEenabled) CALL com_set_array( surwin//
'.vbar_alp',
pane, glb%InterfaceSFnbVbar,3)
514 WRITE(*,*)
'Rocfrac: Invalid bcflag',bcflag,
' on surface pane',
pane
553 CALL com_window_init_done( surwin)
555 CALL com_free_buffer(paneids)
557 CALL com_call_function( obtain_attr, 2, &
558 com_get_attribute_handle_const( surfin//
".all"), &
559 com_get_attribute_handle( surwin//
".all"))
562 WRITE (*,*)
' Calling RocFrac Register... Done'
563 11
FORMAT(
a,
'_',
a,a1)
571 currenttimestep, man_update_inbuff)
575 REAL*8,
INTENT(IN) :: currenttime, currenttimestep
576 INTEGER,
INTENT(IN) :: man_update_inbuff
583 REAL*8 :: solidsdisp, solidscoor
585 INTEGER :: iinterfacenode, solidsnodenum
591 DO iinterfacenode = 1, glb%InterfaceSFNumNodes
593 solidsnodenum = abs(glb%MapNodeSF(iinterfacenode))
595 glb%InterfaceSFNodalCoors(1,iinterfacenode) = glb%MeshCoor(1,solidsnodenum )
596 glb%InterfaceSFNodalCoors(2,iinterfacenode) = glb%MeshCoor(2,solidsnodenum )
597 glb%InterfaceSFNodalCoors(3,iinterfacenode) = glb%MeshCoor(3,solidsnodenum )
603 DO iinterfacenode = 1, glb%InterfaceSFnbNumNodes
605 solidsnodenum = abs(glb%MapNodeSFnb(iinterfacenode))
607 glb%InterfaceSFnbNodalCoors(1,iinterfacenode) = glb%MeshCoor(1,solidsnodenum )
608 glb%InterfaceSFnbNodalCoors(2,iinterfacenode) = glb%MeshCoor(2,solidsnodenum )
609 glb%InterfaceSFnbNodalCoors(3,iinterfacenode) = glb%MeshCoor(3,solidsnodenum )
615 DO iinterfacenode = 1, glb%InterfaceSNumNodes
617 solidsnodenum = abs(glb%MapNodeS(iinterfacenode))
619 glb%InterfaceSNodalCoors(1,iinterfacenode) = glb%MeshCoor(1,solidsnodenum )
620 glb%InterfaceSNodalCoors(2,iinterfacenode) = glb%MeshCoor(2,solidsnodenum )
621 glb%InterfaceSNodalCoors(3,iinterfacenode) = glb%MeshCoor(3,solidsnodenum )
633 include
'roccomf90.h'
643 INTEGER :: hdl_read, hdl_obtain, hdl_all
645 CHARACTER(*),
PARAMETER :: overlaywin =
"Overlay"
646 CHARACTER(*),
PARAMETER :: overlaywin2 =
"Overlay2"
650 CHARACTER(*),
PARAMETER :: prefix1 =
"A"
651 CHARACTER(*),
PARAMETER :: prefix2 =
"B"
653 CHARACTER(LEN=5) :: sdv_material
654 CHARACTER(LEN=12) :: sdv_wname
655 CHARACTER(LEN=27) :: fname1, fname2
656 CHARACTER(LEN=3) :: ichr3
660 INTEGER,
POINTER,
DIMENSION(:) :: mapfaceel2vol1a, faceofvolel1a
662 INTEGER :: iprocs,ios, iaux
668 pid = (myid+1)*100 + 3
671 WRITE(ichr3,
'(I3.3)') pid
673 fname1 =
'Rocfrac/Rocin/A_'//ichr3//
'_sdv.hdf'
674 fname2 =
'Rocfrac/Rocin/B_'//ichr3//
'_sdv.hdf'
677 CALL rocin_load_module(
"SDV_IN")
679 hdl_read = com_get_function_handle(
'SDV_IN.read_windows')
680 hdl_obtain = com_get_function_handle(
'SDV_IN.obtain_attribute')
687 sdv_material = prefix1//
'_sdv'
688 sdv_wname = overlaywin//sdv_material
689 CALL com_new_window( overlaywin )
693 comm_self = mpi_comm_self
694 CALL com_call_function( hdl_read, 4, fname1, overlaywin, &
695 sdv_material, comm_self)
696 hdl_all = com_get_attribute_handle( sdv_wname//
".all")
697 CALL com_call_function( hdl_obtain, 3, hdl_all, hdl_all, pid)
700 CALL com_get_size( sdv_wname//
'.sn_parent_fcID', pid, glb%nsubn1)
704 CALL com_get_size( sdv_wname//
'.:t3', pid, glb%nsubf1)
708 ALLOCATE(glb%Sthresh1(1:3, 1:glb%nsubf1))
709 glb%Sthresh1(1:3, 1:glb%nsubf1) = glb%Sinit(1)
714 ALLOCATE( glb%sd_subfaces1(1:3,1:glb%nsubf1) )
716 CALL com_copy_array( sdv_wname//
".:t3", pid, glb%sd_subfaces1, 3)
722 ALLOCATE(glb%sd_coor1(1:3,1:glb%nsubn1))
724 CALL com_copy_array( sdv_wname//
".nc", pid, glb%sd_coor1, 3)
730 ALLOCATE(glb%sd_subface_parents1(1:glb%nsubf1))
732 CALL com_copy_array( sdv_wname//
".sf_parent", pid, glb%sd_subface_parents1)
739 ALLOCATE(glb%sd_subface_nat_coors1(1:6,1:glb%nsubf1))
743 CALL com_copy_array( sdv_wname//
".sf_ncs", pid, &
744 glb%sd_subface_nat_coors1, 6)
754 ALLOCATE(glb%sd_subface_counterparts1(1:glb%nsubf1) )
757 CALL com_copy_array( sdv_wname//
".sf_cntpt_fcID", pid, glb%sd_subface_counterparts1)
783 sdv_material = prefix2//
'_sdv'
784 sdv_wname = overlaywin//sdv_material
794 comm_self = mpi_comm_self
795 CALL com_call_function( hdl_read, 4, fname2, overlaywin, &
796 sdv_material, comm_self)
797 hdl_all = com_get_attribute_handle( sdv_wname//
".all")
798 CALL com_call_function( hdl_obtain, 3, hdl_all, hdl_all, pid)
799 CALL com_get_size( sdv_wname//
'.sn_parent_fcID', pid, glb%nsubn2)
806 CALL com_get_size( sdv_wname//
'.:t3', pid, glb%nsubf2)
812 ALLOCATE(glb%sd_subface_counterparts2(1:glb%nsubf2) )
814 CALL com_copy_array( sdv_wname//
".sf_cntpt_fcID", pid, glb%sd_subface_counterparts2)
819 ALLOCATE( glb%sd_subfaces2(1:3,1:glb%nsubf1) )
824 CALL com_copy_array( sdv_wname//
".:t3", pid, glb%sd_subfaces2, 3)
830 ALLOCATE(glb%sd_coor2(1:3,1:glb%nsubn2))
831 CALL com_copy_array( sdv_wname//
".nc", pid, glb%sd_coor2, 3)
841 ALLOCATE(glb%sd_subface_nat_coors2(1:6,1:glb%nsubf2))
843 CALL com_copy_array( sdv_wname//
".sf_ncs", pid, &
844 glb%sd_subface_nat_coors2, 6)
864 ALLOCATE(glb%sd_subface_parents2(1:glb%nsubf2))
866 CALL com_copy_array( sdv_wname//
".sf_parent", pid, glb%sd_subface_parents2)
874 CALL com_delete_window( sdv_wname)
879 CALL rocin_unload_module(
"SDV_IN")
void zero()
Sets all entries to zero (more efficient than assignement).
subroutine, public rocfracinterfaceupdate(glb, CurrentTime, CurrentTimeStep, MAN_update_inbuff)
const Pane * pane() const
Obtain a constant pointer to the owner pane of the attribute.
subroutine, public rocfracinterfaceinitial(glb, obtain_attr, surfIn)