48 . X , V , ITAB , IPART_STATE, NODTAG ,
49 . IPART , IPARTS , IPARTQ, IPARTTG , MAT_PARAM ,
50 . IGEO , IPARG , IXS , IXQ , IXTG ,
51 . ELBUF_TAB, MULTI_FVM, BUFMAT, IPM)
68 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
69 USE matparam_def_mod,
ONLY : matparam_struct_
70 use element_mod ,
only : nixs,nixq,nixtg
74#include "implicit_f.inc"
90 INTEGER,
INTENT(IN) :: ITAB(NUMNOD), IPART(LIPART1,*),IGEO(NPROPGI,NUMGEO), IXS(NIXS,NUMELS), IPART_STATE(NPART),
91 . IPARG(NPARG,*),IXQ(NIXQ,NUMELQ),IXTG(NIXTG,NUMELTG)
92 INTEGER,
INTENT(INOUT) :: NODTAG(NUMNOD),
94 INTEGER,
TARGET :: IPARTS(*),IPARTQ(*),IPARTTG(*)
95 my_real,
INTENT(IN) :: X(3,NUMNOD),V(3,NUMNOD)
96 my_real,
INTENT(IN),
TARGET :: bufmat(*)
97 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET,
INTENT(IN) :: ELBUF_TAB
98 TYPE(multi_fvm_struct),
INTENT(IN) :: MULTI_FVM
99 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
103 INTEGER I, N, JJ,J, IPRT, K, KK
104 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ,NPT
105 INTEGER NUM_CENTROIDS, ,MLW,NBMAT,NB2,ISUBMAT,NNOD,NNOD2
107 TYPE(g_bufel_) ,
POINTER :: GBUF
108 my_real p0(3),p0_inf(3),p0_sup(3),shift_c,shift_n,length
109 my_real max_xc,max_yc,max_zc,min_xc,min_yc,min_zc
112 my_real dotprod,tol,xyz(3),vel(3),dist,vect(3)
113 CHARACTER FILNAM*2048, SHORTNAME*128, CHSTAT*4
114 INTEGER XMIN_CELL_ID,YMIN_CELL_ID,ZMIN_CELL_ID,,YMAX_CELL_ID,ZMAX_CELL_ID
115 INTEGER IS_ITY_1, IS_ITY_2, IS_ITY_7, LAST_CELL,FIRST_CELL,IMAT,NPAR,IADBUF
116 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IDX
117 INTEGER,
POINTER,
DIMENSION(:) :: IPART_PTR
118 my_real,
POINTER,
DIMENSION(:) :: uparam
119 TYPE(buf_mat_) ,
POINTER :: MBUF
120 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: map_nodes
121 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: GET_CELL_FOM_CENTROID
122 INTEGER NPTS(NSPMD),NCELL(NSPMD),NPTS_TOT,NCELL_TOT
123 my_real,
DIMENSION(:,:),
ALLOCATABLE :: work
124 INTEGER,
DIMENSION(:),
ALLOCATABLE :: WORK_INDX
125 my_real :: len_(nspmd),len_tot,shift_c_min,shift_n_min
126 INTEGER :: LEN, LEN_TMP_NAME
127 CHARACTER :: TMP_NAME*2048
128 INTEGER :: IFILNAM(2048)
164 isolnod = iparg(28,ng)
167 gbuf => elbuf_tab(ng)%GBUF
176 ipart_ptr => iparts(1:numels)
181 ipart_ptr => ipartq(1:numelq)
182 ELSEIF(ity == 7 .AND. n2d /= 0)
THEN
186 ipart_ptr => iparttg(1:numeltg)
193 IF(ipart_state(iprt)==0)cycle
194 num_centroids = num_centroids +1
196 p0(1) = sum( x(1,ixs(2:9,n)) ) / npt
197 p0(2) = sum( x(2,ixs(2:9,n)) ) / npt
198 p0(3) = sum( x(3,ixs(2:9,n)) ) /
199 ELSEIF(is_ity_2==1)
THEN
200 p0(1) = sum( x(1,ixq(2:5,n)) ) / npt
201 p0(2) = sum( x(2,ixq(2:5,n)) ) / npt
202 p0(3) = sum( x(3,ixq(2:5,n)) ) / npt
236 state_inimap_buf(1)%NUM_CENTROIDS = num_centroids
237 state_inimap_buf(1)%NUM_POINTS = 0
241 IF(nodtag(i) == 1)
THEN
248 IF(.NOT.
ALLOCATED(map_nodes))
ALLOCATE(map_nodes(3,nnod))
249 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_CENTROIDS))
ALLOCATE(state_inimap_buf(1)%POS_CENTROIDS(num_centroids))
250 IF(.NOT.
ALLOCATED(get_cell_fom_centroid))
THEN
251 ALLOCATE(get_cell_fom_centroid(2,num_centroids))
254 IF(num_centroids > 0)
THEN
260 vect(1:3)=(/lx,ly,lz/)
262 ipos = maxloc(vect(1:3),1)
265 first_cell = xmin_cell_id
266 last_cell = xmax_cell_id
268 first_cell = ymin_cell_id
269 last_cell = ymax_cell_id
271 first_cell = zmin_cell_id
272 last_cell = zmax_cell_id
276 p0_inf(1) = sum( x(1,ixs(2:9,first_cell)) ) / npt
277 p0_inf(2) = sum( x(2,ixs(2:9,first_cell)) ) / npt
278 p0_inf(3) = sum( x(3,ixs(2:9,first_cell)) ) / npt
279 p0_sup(1) = sum( x(1,ixs(2:9,last_cell)) ) / npt
280 p0_sup(2) = sum( x(2,ixs(2:9,last_cell)) ) / npt
281 p0_sup(3) = sum( x(3,ixs(2:9,last_cell)) ) / npt
282 ELSEIF(is_ity_2==1)
THEN
283 p0_inf(1) = sum( x(1,ixq(2:5,first_cell)) ) / npt
284 p0_inf(2) = sum( x(2,ixq(2:5,first_cell)) ) / npt
285 p0_inf(3) = sum( x(3,ixq(2:5,first_cell)) ) / npt
286 p0_sup(1) = sum( x(1,ixq(2:5,last_cell)) ) / npt
287 p0_sup(2) = sum( x(2,ixq(2:5,last_cell)) ) / npt
288 p0_sup(3) = sum( x(3,ixq(2:5,last_cell)) ) / npt
291 vect(1:3)=(/p0_sup(1)-p0_inf(1),p0_sup(2)-p0_inf(2),p0_sup(3)-p0_inf(3)/)
295 length = sqrt(vect(1)*vect(1) + vect(2)*vect(2) + vect(3)*vect(3))
297 IF(length > zero)shift_c = (p0_inf(1)*lx + p0_inf(2)*ly + p0_inf(3)*lz) / length
298 state_inimap_buf(1)%SHIFT_Cy = shift_c
299 state_inimap_buf(1)%SHIFT_Cz = zero
300 state_inimap_buf(1)%LENGTH = length
302 state_inimap_buf(1)%SHIFT_Cy = zero
303 state_inimap_buf(1)%SHIFT_Cz = zero
304 state_inimap_buf(1)%LENGTH = zero
309 CALL ancmsg(msgid=284,anmode=aninfo,c1=
" -- 1D DOMAIN MUST BE MESHED WITH BRICKS OR QUADS ONLY")
314 ! shift_n : nodal posisiton(first node along axis)
319 dx = x(1,ixs(2,first_cell))
320 dy = x(2,ixs(2,first_cell))
321 dz = x(3,ixs(2,first_cell))
323 IF(x(1,ixs(jj,first_cell)) < dx)dx=x(1,ixs(jj,first_cell))
324 IF(x(2,ixs(jj,first_cell)) < dy)dy=x(2,ixs(jj,first_cell))
325 IF(x(3,ixs(jj,first_cell)) < dz)dz=x(3,ixs(jj,first_cell))
327 ELSEIF(is_ity_2==1)
THEN
328 dx = x(1,ixq(2,first_cell))
329 dy = x(2,ixq(2,first_cell))
330 dz = x(3,ixq(2,first_cell))
332 IF(x(1,ixq(jj,first_cell)) < dx)dx=x(1,ixq(jj,first_cell))
333 IF(x(2,ixq(jj,first_cell)) < dx)dy=x(2,ixq(jj,first_cell))
334 IF(x(3,ixq(jj,first_cell)) < dx)dz=x(3,ixq(jj,first_cell))
339 IF(length > zero)shift_n=(dx*lx + dy*ly + dz*lz) / length
340 state_inimap_buf(1)%SHIFT_Ny = shift_n
341 state_inimap_buf(1)%SHIFT_Nz = zero
348 isolnod = iparg(28,ng)
351 gbuf => elbuf_tab(ng)%GBUF
359 IF(ipart_state(iprt)==0)cycle
361 p0(1) = sum( x(1,ixs(2:9,n)) ) / npt
362 p0(2) = sum( x(2,ixs(2:9,n)) ) / npt
363 p0(3) = sum( x(3,ixs(2:9,n)) ) / npt
364 ELSEIF(is_ity_2==1)
THEN
365 p0(1) = sum( x(1,ixq(2:5,n)) ) / npt
366 p0(2) = sum( x(2,ixq(2:5,n)) ) / npt
367 p0(3) = sum( x(3,ixq(2:5,n)) ) / npt
374 IF(length > zero)dotprod = (lx*dx + ly*dy + lz*dz) / length
375 state_inimap_buf(1)%POS_CENTROIDS(k
376 get_cell_fom_centroid(1,k) = ng
377 get_cell_fom_centroid(2,k) = i
383 IF(.NOT.
ALLOCATED(idx))
ALLOCATE(idx(num_centroids))
384 DO k=1,num_centroids ; idx(k)=k;
ENDDO
385 IF(num_centroids>0)
CALL quicksort(state_inimap_buf(1)%POS_CENTROIDS(:), idx, 1, num_centroids)
390 IF(num_centroids > 0)
THEN
392 nbmat = multi_fvm%NBMAT
398 state_inimap_buf(1)%MLW = mlw
399 state_inimap_buf(1)%NSUBMAT = nbmat
400 ALLOCATE(state_inimap_buf(1)%SUBMAT(nbmat))
402 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%VFRAC(num_centroids))
403 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%RHO(num_centroids))
404 ALLOCATE(state_inimap_buf
405 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%PRES(num_centroids))
409 state_inimap_buf(1)%NUM_POINTS = num_centroids
410 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_NODES))
ALLOCATE(state_inimap_buf(1)%POS_NODES(num_centroids)
411 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
ALLOCATE
412 DO k=1, num_centroids
413 ng = get_cell_fom_centroid(1,idx(k))
414 i = get_cell_fom_centroid(2,idx(k))
416 state_inimap_buf(1)%POS_NODES(k) = state_inimap_buf(1)%POS_CENTROIDS(k)
417 xyz(1:3) = multi_fvm%VEL(1:3,i+nft)
419 IF(length > zero)dotprod =
420 state_inimap_buf(1)%VEL_NODES(k) = dotprod
424 DO k=1, num_centroids
425 ng = get_cell_fom_centroid(1,idx(k))
426 i = get_cell_fom_centroid(2,idx(k))
428 state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(k) = multi_fvm%PHASE_ALPHA
429 state_inimap_buf(1)%SUBMAT(isubmat)%RHO(k) = multi_fvm%PHASE_RHO(isubmat,i+nft)
430 state_inimap_buf(1)%SUBMAT(isubmat)%E(k) = multi_fvm%PHASE_EINT(isubmat,i+nft)
431 state_inimap_buf(1)%SUBMAT(isubmat)%PRES(k) = multi_fvm%PRES(i+nft)
437 DO k=1, num_centroids
438 ng = get_cell_fom_centroid(1,idx(k))
439 i = get_cell_fom_centroid(2,idx(k))
445 IF(mat_param(imat)%MULTIMAT%MID(isubmat) == 0)
EXIT
446 nb2=
max(nb2,ipm(5,imat))
450 uparam => bufmat(iadbuf:iadbuf+npar-1)
451 kk = m51_n0phas + (uparam(276+isubmat)-1)*m51_nvphas
452 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
453 state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(k) = mbuf%VAR(nel*(01+kk-1)+i)
454 state_inimap_buf(1)%SUBMAT(isubmat)%RHO(k) = mbuf%VAR(nel*(1
455 state_inimap_buf(1)%SUBMAT(isubmat)%E(k) = mbuf%VAR(nel*(08+kk-1)+i)
456 state_inimap_buf(1)%SUBMAT(isubmat)%PRES(k) = mbuf%VAR(nel*(18+kk-1)+i)
459 state_inimap_buf(1)%NSUBMAT = nb2
461 DO k=1, num_centroids
462 ng = get_cell_fom_centroid(1,idx(k))
463 i = get_cell_fom_centroid(2,idx(k))
464 gbuf => elbuf_tab(ng)%GBUF
465 state_inimap_buf(1)%SUBMAT(1)%VFRAC(k) = 1.d00
466 state_inimap_buf(1)%SUBMAT(1)%RHO(k) = gbuf%RHO(i)
467 state_inimap_buf(1)%SUBMAT(1)%E(k) = gbuf%EINT(i)
468 state_inimap_buf(1)%SUBMAT(1)%PRES(k) = -third * (gbuf%SIG(i) + gbuf%SIG(i + nel) + gbuf%SIG(i + 2
480 IF(num_centroids > 0)
THEN
484 IF(nodtag(i) == 1)
THEN
488 IF(length > zero)dotprod = (lx*xyz(1) + ly*xyz(2) + lz*xyz(3)) / length
489 map_nodes(2,k)=dotprod
493 IF(
ALLOCATED(idx))
DEALLOCATE(idx)
495 DO k=1,nnod ; idx(k)=k;
ENDDO
496 CALL quicksort(map_nodes(2,:), idx, 1, nnod)
501 dist = abs(map_nodes(2,i)-map_nodes(2,i-1))
502 IF(dist <= tol) map_nodes(1,idx(i)) = zero
506 IF(map_nodes(1,idx(i)) /= zero)
THEN
511 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_NODES))
ALLOCATE(state_inimap_buf(1)%POS_NODES
512 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
ALLOCATE(state_inimap_buf(1)%VEL_NODES(k))
515 IF(map_nodes(1,idx(i)) /= zero)
THEN
517 state_inimap_buf(1)%POS_NODES(k) = map_nodes(2,i)
518 vel(1:3)=v(1:3,int(map_nodes(1,idx(i))))
520 IF(length > zero)dotprod = (lx*vel(1) + ly*vel(2) + lz*vel(3)) / length
521 state_inimap_buf(1)%VEL_NODES(k)=dotprod
524 state_inimap_buf(1)%NUM_POINTS=k
538 shift_c_min = state_inimap_buf(1)%SHIFT_Cy
539 shift_n_min = state_inimap_buf(1)%SHIFT_Ny
541 IF(state_inimap_buf(i)%NUM_CENTROIDS==0)cycle
542 shift_c_min =
min(shift_c_min, state_inimap_buf(i)%SHIFT_Cy)
543 shift_n_min =
min(shift_n_min, state_inimap_buf(i)%SHIFT_Ny)
545 state_inimap_buf(1)%SHIFT_Cy = shift_c_min
546 state_inimap_buf(1)%SHIFT_Ny = shift_n_min
553 ncell_tot = state_inimap_buf(1)%NUM_CENTROIDS
554 len_tot = state_inimap_buf(1)%LENGTH
555 IF(ispmd == 0 .AND. nspmd > 1)
THEN
562 IF(state_inimap_buf(i)%NUM_CENTROIDS==0)
THEN
568 npts(i)= state_inimap_buf(i)%NUM_POINTS ;
569 npts_tot=npts_tot+npts(i)
570 len_(i)=state_inimap_buf(i)%LENGTH ;
571 len_tot=len_tot+len_(i)
572 ncell(i)= state_inimap_buf(i)%NUM_CENTROIDS ;
573 ncell_tot = ncell_tot + ncell(i)
575 ALLOCATE(work(npts_tot,3),work_indx(npts_tot))
583 work(j,1) = state_inimap_buf(i)%POS_NODES(k)
584 work(j,3) = state_inimap_buf(i)%VEL_NODES(k)
590 work_indx(1:npts_tot) = (/(j,j=1,npts_tot)/)
591 CALL quicksort(work(:,1), work_indx, 1, npts_tot)
594 work(i,2)=work(work_indx(i),3)
597 work_indx(1:npts_tot) = 0
604 dist = abs(work(i,1)-work(i-1,1))
611 IF(work_indx(i) ==0 )
THEN
617 DO i=k+1,npts_tot ; work(i,1:2)=zero ;
ENDDO
623 IF(
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
DEALLOCATE(state_inimap_buf(1)%VEL_NODES)
624 IF(
ALLOCATED(state_inimap_buf(1)%POS_NODES))
DEALLOCATE(state_inimap_buf(1)%POS_NODES)
625 ALLOCATE(state_inimap_buf(1)%VEL_NODES(npts_tot))
626 ALLOCATE(state_inimap_buf(1)%POS_NODES(npts_tot))
627 state_inimap_buf(1)%NUM_POINTS=npts_tot
628 state_inimap_buf(1)%POS_NODES(1:npts_tot)=work(1:npts_tot,1)
629 state_inimap_buf(1)%VEL_NODES(1:npts_tot)=work(1:npts_tot,2)
630 IF(
ALLOCATED(work))
DEALLOCATE(work)
631 IF(
ALLOCATED(work_indx))
DEALLOCATE(work_indx)
634 nbmat=state_inimap_buf(1)%NSUBMAT
635 ALLOCATE(work(ncell_tot,1+4*nbmat))
636 ALLOCATE(work_indx(ncell_tot))
644 work(j,1) = state_inimap_buf(i)%POS_CENTROIDS(k)
645 nbmat = state_inimap_buf(i)%NSUBMAT
647 work(j,1+ 4*(jj-1)+1) = state_inimap_buf(i)%SUBMAT(jj)%VFRAC(k)
648 work(j,1+ 4*(jj-1)+2) = state_inimap_buf(i)%SUBMAT(jj)%RHO(k)
649 work(j,1+ 4*(jj-1)+3) = state_inimap_buf(i)%SUBMAT(jj)%E(k)
650 work(j,1+ 4*(jj-1)+4) = state_inimap_buf(i)%SUBMAT(jj)%PRES(k)
657 work_indx(1:ncell_tot) = (/(j,j=1,ncell_tot)/)
662 IF(
ALLOCATED(state_inimap_buf(1)%POS_CENTROIDS))
DEALLOCATE(state_inimap_buf(1)%POS_CENTROIDS)
663 nbmat = state_inimap_buf(1)%NSUBMAT
665 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%VFRAC))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%VFRAC)
666 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%RHO))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%RHO
667 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%E))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%E)
668 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%PRES))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%PRES)
670 ALLOCATE(state_inimap_buf(1)%POS_CENTROIDS(ncell_tot))
672 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%VFRAC(ncell_tot))
673 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%RHO(ncell_tot))
674 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%E(ncell_tot))
675 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%PRES(ncell_tot))
678 state_inimap_buf(1)%POS_CENTROIDS(j)=work(j,1)
680 state_inimap_buf(1)%SUBMAT(jj)%VFRAC(j)=work(work_indx(j),1+ 4*(jj-1)+1)
681 state_inimap_buf(1)%SUBMAT(jj)%RHO(j) =work(work_indx(j),1+ 4*(jj-1)+2)
682 state_inimap_buf(1)%SUBMAT(jj)%E(j) =work(work_indx(j),1+ 4*(jj-1)+3)
683 state_inimap_buf(1)%SUBMAT(jj)%PRES(j)=work(work_indx(j),1+ 4*(jj-1)+4)
686 state_inimap_buf(1)%NUM_CENTROIDS = ncell_tot
687 state_inimap_buf(1)%LENGTH = len_tot
693 IF(ncell_tot == 0 .OR. len_tot == zero)
THEN
694 print *,
"** ERROR WITH /STATE/INIMAP"
695 print *,
" -- SITUATION NOT EXPECTED"
696 print *,
" -- 1D DOMAIN IS NOT DETECTED."
706 nbmat = state_inimap_buf(1)%NSUBMAT
707 WRITE(chstat,
'(I4.4)')state_inimap_call_number
708 filnam=rootnam(1:rootlen)//
'_1D_'//chstat//
'.inimap'
709 shortname=rootnam(1:rootlen)//
'_1D_'//chstat//
'.inimap'
711 len_tmp_name = outfile_name_len + len
712 tmp_name=outfile_name(1:outfile_name_len)//filnam(1:len)
714 ifilnam(i)=ichar(tmp_name(i:i))
717 CALL open_c(ifilnam,len_tmp_name,6)
723 CALL write_i_c(state_inimap_buf(1)%NUM_POINTS,1)
729 nbmat = state_inimap_buf(1)%NSUBMAT
730 shift_c = state_inimap_buf(1)%SHIFT_Cy
731 shift_n = state_inimap_buf(1)%SHIFT_Ny
732 num_centroids = state_inimap_buf(1)%NUM_CENTROIDS
734 CALL write_db(state_inimap_buf(1)%POS_CENTROIDS(1) ,num_centroids)
740 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(1) ,num_centroids)
744 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%RHO(1) ,num_centroids)
748 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%PRES(1) ,num_centroids)
751 IF(state_inimap_buf(1)%NUM_POINTS == state_inimap_buf(1)%NUM_CENTROIDS)
THEN
752 CALL write_db(state_inimap_buf(1)%VEL_NODES(1) ,state_inimap_buf(1)%NUM_POINTS)
754 CALL write_db(state_inimap_buf(1)%POS_NODES(1) ,state_inimap_buf(1)%NUM_POINTS)
755 CALL write_db(state_inimap_buf(1)%VEL_NODES(1) ,state_inimap_buf(1)%NUM_POINTS
764 shortname=shortname//
'.gz'
765 WRITE (iout,500) shortname(1:len_trim(trim(shortname)))
766 WRITE (istdo,500) shortname(1:len_trim(trim(shortname)))
769 IF(
ALLOCATED(map_nodes))
DEALLOCATE(map_nodes)
770 IF(
ALLOCATED(get_cell_fom_centroid))
DEALLOCATE(get_cell_fom_centroid)
771 IF(
ALLOCATED(idx))
DEALLOCATE(idx)
773 nbmat = state_inimap_buf(jj)%NSUBMAT
774 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT))
THEN
776 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%VFRAC))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%VFRAC)
777 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%RHO))
DEALLOCATE(state_inimap_buf
778 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%E))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%E)
779 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%PRES))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%PRES)
782 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT ))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT)
783 IF(
ALLOCATED(state_inimap_buf(jj)%POS_NODES ))
DEALLOCATE(state_inimap_buf(jj)%POS_NODES
784 IF(
ALLOCATED(state_inimap_buf(jj)%VEL_NODES ))
DEALLOCATE(state_inimap_buf(jj)%VEL_NODES)
785 IF(
ALLOCATED(state_inimap_buf(jj)%POS_CENTROIDS))
DEALLOCATE(state_inimap_buf(jj)%POS_CENTROIDS
786 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT)
790 IF(
ALLOCATED(state_inimap_buf))
DEALLOCATE(state_inimap_buf)
795 500
FORMAT (4x,
' STATE FILE:',1x,a,
' WRITTEN')