47 . X , V , ITAB , IPART_STATE, NODTAG ,
48 . IPART , IPARTS , IPARTQ, IPARTTG , MAT_PARAM ,
49 . IGEO , IPARG , IXS , IXQ , IXTG ,
50 . ELBUF_TAB, MULTI_FVM, BUFMAT, IPM)
67 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
68 USE matparam_def_mod,
ONLY : matparam_struct_
72#include "implicit_f.inc"
88 INTEGER,
INTENT(IN) :: ITAB(NUMNOD), IPART(LIPART1,*),IGEO(NPROPGI,NUMGEO), IXS(NIXS,NUMELS)
90 INTEGER,
INTENT(INOUT) :: NODTAG(NUMNOD),
92 INTEGER,
TARGET :: IPARTS(*),IPARTQ(*),IPARTTG(*)
93 my_real,
INTENT(IN) :: X(3,NUMNOD),V(3,NUMNOD)
94 my_real,
INTENT(IN),
TARGET :: bufmat(*)
95 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET,
INTENT(IN) :: ELBUF_TAB
96 TYPE(multi_fvm_struct),
INTENT(IN) :: MULTI_FVM
97 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
101 INTEGER I, N, JJ,J, IPRT0, IPRT, K, STAT_NUMELS_1, KK, INOD
102 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ISOLNOD, IOFF,NPT
103 INTEGER NUM_CENTROIDS, IPOS,MLW,IFORM,NBMAT,NB2,ISUBMAT,NNOD,NNOD2
104 INTEGER NUVAR,NUM_CELL
105 TYPE(g_bufel_) ,
POINTER :: GBUF
106 my_real p0(3),p0_inf(3),p0_sup(3),shift_c,shift_n,length
107 my_real max_xc,max_yc,max_zc,min_xc,min_yc,min_zc
110 my_real dotprod,tol,xyz(3),vel(3),dist,vect(3)
111 CHARACTER FILNAM*2048, SHORTNAME*128, CHSTAT*4
112 INTEGER XMIN_CELL_ID,YMIN_CELL_ID,ZMIN_CELL_ID,XMAX_CELL_ID,YMAX_CELL_ID,ZMAX_CELL_ID
113 INTEGER IS_ITY_1, IS_ITY_2, IS_ITY_7, LAST_CELL,FIRST_CELL,IMAT,NPAR,IADBUF
114 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IDX
115 INTEGER,
POINTER,
DIMENSION(:) :: IPART_PTR
116 my_real,
POINTER,
DIMENSION(:) :: uparam
117 TYPE(buf_mat_) ,
POINTER :: MBUF
118 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: map_nodes
119 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: GET_CELL_FOM_CENTROID
120 INTEGER NPTS(NSPMD),NCELL(NSPMD),NPTS_TOT,NCELL_TOT
121 my_real,
DIMENSION(:,:),
ALLOCATABLE :: work
122 INTEGER,
DIMENSION(:),
ALLOCATABLE :: WORK_INDX
123 my_real :: len_(nspmd),len_tot,shift_c_min,shift_n_min
124 INTEGER :: LEN, LEN_TMP_NAME
125 CHARACTER :: TMP_NAME*2048
126 INTEGER :: IFILNAM(2048)
162 isolnod = iparg(28,ng)
165 gbuf => elbuf_tab(ng)%GBUF
174 ipart_ptr => iparts(1:numels)
179 ipart_ptr => ipartq(1:numelq)
180 ELSEIF(ity == 7 .AND. n2d /= 0)
THEN
184 ipart_ptr => iparttg(1:numeltg)
191 IF(ipart_state(iprt)==0)cycle
192 num_centroids = num_centroids +1
194 p0(1) = sum( x(1,ixs(2:9,n)) ) / npt
195 p0(2) = sum( x(2,ixs(2:9,n)) ) / npt
196 p0(3) = sum( x(3,ixs(2:9,n)) ) / npt
197 ELSEIF(is_ity_2==1)
THEN
199 p0(2) = sum( x(2,ixq(2:5,n)) ) / npt
200 p0(3) = sum( x(3,ixq(2:5,n)) ) / npt
234 state_inimap_buf(1)%NUM_CENTROIDS = num_centroids
235 state_inimap_buf(1)%NUM_POINTS = 0
239 IF(nodtag(i) == 1)
THEN
246 IF(.NOT.
ALLOCATED(map_nodes))
ALLOCATE(map_nodes(3,nnod))
247 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_CENTROIDS))
ALLOCATE(state_inimap_buf(1)%POS_CENTROIDS(num_centroids))
248 IF(.NOT.
ALLOCATED(get_cell_fom_centroid))
THEN
249 ALLOCATE(get_cell_fom_centroid(2,num_centroids))
252 IF(num_centroids > 0)
THEN
258 vect(1:3)=(/lx,ly,lz/)
260 ipos = maxloc(vect(1:3),1)
263 first_cell = xmin_cell_id
264 last_cell = xmax_cell_id
266 first_cell = ymin_cell_id
267 last_cell = ymax_cell_id
269 first_cell = zmin_cell_id
270 last_cell = zmax_cell_id
274 p0_inf(1) = sum( x(1,ixs(2:9,first_cell)) ) / npt
275 p0_inf(2) = sum( x(2,ixs(2:9,first_cell)) ) / npt
276 p0_inf(3) = sum( x(3,ixs(2:9,first_cell)) ) / npt
277 p0_sup(1) = sum( x(1,ixs(2:9,last_cell)) ) / npt
278 p0_sup(2) = sum( x(2,ixs(2:9,last_cell)) ) / npt
279 p0_sup(3) = sum( x(3,ixs(2:9,last_cell)) ) / npt
280 ELSEIF(is_ity_2==1)
THEN
281 p0_inf(1) = sum( x(1,ixq(2:5,first_cell)) ) / npt
282 p0_inf(2) = sum( x(2,ixq(2:5,first_cell)) ) / npt
283 p0_inf(3) = sum( x(3,ixq(2:5,first_cell)) ) / npt
284 p0_sup(1) = sum( x(1,ixq(2:5,last_cell)) ) / npt
285 p0_sup(2) = sum( x(2,ixq(2:5,last_cell)) ) / npt
286 p0_sup(3) = sum( x(3,ixq(2:5,last_cell)) ) / npt
289 vect(1:3)=(/p0_sup(1)-p0_inf(1),p0_sup(2)-p0_inf(2),p0_sup(3)-p0_inf(3)/)
293 length = sqrt(vect(1)*vect(1) + vect(2)*vect(2) + vect(3)*vect(3))
295 IF(length > zero)shift_c = (p0_inf(1)*lx + p0_inf(2)*ly + p0_inf(3)*lz) / length
296 state_inimap_buf(1)%SHIFT_Cy = shift_c
297 state_inimap_buf(1)%SHIFT_Cz = zero
298 state_inimap_buf(1)%LENGTH = length
300 state_inimap_buf(1)%SHIFT_Cy = zero
301 state_inimap_buf(1)%SHIFT_Cz = zero
302 state_inimap_buf(1)%LENGTH = zero
307 CALL ancmsg(msgid=284,anmode=aninfo,c1=
" -- 1D DOMAIN MUST BE MESHED WITH BRICKS OR QUADS ONLY")
317 dx = x(1,ixs(2,first_cell))
318 dy = x(2,ixs(2,first_cell))
319 dz = x(3,ixs(2,first_cell))
321 IF(x(1,ixs(jj,first_cell)) < dx)dx=x(1,ixs(jj,first_cell))
322 IF(x(2,ixs(jj,first_cell)) < dy)dy=x(2,ixs(jj,first_cell))
323 IF(x(3,ixs(jj,first_cell)) < dz)dz=x(3,ixs(jj,first_cell))
325 ELSEIF(is_ity_2==1)
THEN
326 dx = x(1,ixq(2,first_cell))
327 dy = x(2,ixq(2,first_cell))
328 dz = x(3,ixq(2,first_cell))
330 IF(x(1,ixq(jj,first_cell)) < dx)dx=x(1,ixq(jj,first_cell))
331 IF(x(2,ixq(jj,first_cell)) < dx)dy=x(2,ixq(jj,first_cell))
332 IF(x(3,ixq(jj,first_cell)) < dx)dz=x(3,ixq(jj,first_cell))
337 IF(length > zero)shift_n=(dx*lx + dy*ly + dz*lz) / length
338 state_inimap_buf(1)%SHIFT_Ny = shift_n
339 state_inimap_buf(1)%SHIFT_Nz = zero
346 isolnod = iparg(28,ng)
349 gbuf => elbuf_tab(ng)%GBUF
357 IF(ipart_state(iprt)==0)cycle
359 p0(1) = sum( x(1,ixs(2:9,n)) ) / npt
360 p0(2) = sum( x(2,ixs(2:9,n)) ) / npt
361 p0(3) = sum( x(3,ixs(2:9,n)) ) / npt
362 ELSEIF(is_ity_2==1)
THEN
363 p0(1) = sum( x(1,ixq(2:5,n)) ) / npt
364 p0(2) = sum( x(2,ixq(2:5,n)) ) / npt
365 p0(3) = sum( x(3,ixq(2:5,n)) ) / npt
372 IF(length > zero)dotprod = (lx*dx + ly*dy + lz*dz) / length
373 state_inimap_buf(1)%POS_CENTROIDS(k) = dotprod + state_inimap_buf(1)%SHIFT_Cy
374 get_cell_fom_centroid(1,k) = ng
375 get_cell_fom_centroid(2,k) = i
381 IF(.NOT.
ALLOCATED(idx))
ALLOCATE(idx(num_centroids))
382 DO k=1,num_centroids ; idx(k)=k;
ENDDO
383 IF(num_centroids>0)
CALL quicksort(state_inimap_buf(1)%POS_CENTROIDS(:), idx, 1, num_centroids)
388 IF(num_centroids > 0)
THEN
390 nbmat = multi_fvm%NBMAT
396 state_inimap_buf(1)%MLW = mlw
397 state_inimap_buf(1)%NSUBMAT = nbmat
398 ALLOCATE(state_inimap_buf(1)%SUBMAT(nbmat))
400 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%VFRAC(num_centroids))
401 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%RHO(num_centroids))
402 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%E(num_centroids))
403 ALLOCATE(state_inimap_buf(1)%SUBMAT(i)%PRES(num_centroids))
407 state_inimap_buf(1)%NUM_POINTS = num_centroids
408 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_NODES))
ALLOCATE(state_inimap_buf(1)%POS_NODES(num_centroids))
409 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
ALLOCATE(state_inimap_buf(1)%VEL_NODES(num_centroids))
410 DO k=1, num_centroids
411 ng = get_cell_fom_centroid(1,idx(k))
412 i = get_cell_fom_centroid(2,idx(k))
414 state_inimap_buf(1)%POS_NODES(k) = state_inimap_buf(1)%POS_CENTROIDS(k)
415 xyz(1:3) = multi_fvm%VEL(1:3,i+nft)
417 IF(length > zero)dotprod = (lx*xyz(1) + ly*xyz(2) + lz*xyz(3)) / length
418 state_inimap_buf(1)%VEL_NODES(k) = dotprod
422 DO k=1, num_centroids
423 ng = get_cell_fom_centroid(1,idx(k))
424 i = get_cell_fom_centroid(2,idx(k))
426 state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(k) = multi_fvm%PHASE_ALPHA(isubmat,i+nft)
427 state_inimap_buf(1)%SUBMAT(isubmat)%RHO(k) = multi_fvm%PHASE_RHO(isubmat,i+nft)
428 state_inimap_buf(1)%SUBMAT(isubmat)%E(k) = multi_fvm%PHASE_EINT(isubmat,i+nft)
429 state_inimap_buf(1)%SUBMAT(isubmat)%PRES(k) = multi_fvm%PRES(i+nft)
435 DO k=1, num_centroids
436 ng = get_cell_fom_centroid(1,idx(k))
437 i = get_cell_fom_centroid(2,idx(k))
443 IF(mat_param(imat)%MULTIMAT%MID(isubmat) == 0)
EXIT
444 nb2=
max(nb2,ipm(5,imat))
448 uparam => bufmat(iadbuf:iadbuf+npar)
449 kk = m51_n0phas + (uparam(276+isubmat)-1)*m51_nvphas
450 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
451 state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(k) = mbuf%VAR
452 state_inimap_buf(1)%SUBMAT(isubmat)%RHO(k) = mbuf%VAR(nel*(12+kk-1)+i)
453 state_inimap_buf(1)%SUBMAT(isubmat)%E(k) = mbuf%VAR(nel*(08+kk-1)+i)
454 state_inimap_buf(1)%SUBMAT(isubmat)%PRES(k) = mbuf%VAR(nel*(18+kk-1)+i)
457 state_inimap_buf(1)%NSUBMAT = nb2
459 DO k=1, num_centroids
460 ng = get_cell_fom_centroid(1,idx(k))
461 i = get_cell_fom_centroid(2,idx(k))
462 gbuf => elbuf_tab(ng)%GBUF
463 state_inimap_buf(1)%SUBMAT(1)%VFRAC(k) = 1.d00
464 state_inimap_buf(1)%SUBMAT(1)%RHO(k) = gbuf%RHO(i)
465 state_inimap_buf(1)%SUBMAT(1)%E(k) = gbuf%EINT(i)
466 state_inimap_buf(1)%SUBMAT(1)%PRES(k) = -third * (gbuf%SIG(i) + gbuf%SIG(i + nel) + gbuf%SIG(i + 2 * nel))
478 IF(num_centroids > 0)
THEN
482 IF(nodtag(i) == 1)
THEN
486 IF(length > zero)dotprod = (lx*xyz(1) + ly*xyz(2) + lz*xyz(3)) / length
487 map_nodes(2,k)=dotprod
491 IF(
ALLOCATED(idx))
DEALLOCATE(idx)
493 DO k=1,nnod ; idx(k)=k;
ENDDO
494 CALL quicksort(map_nodes(2,:), idx, 1, nnod)
499 dist = abs(map_nodes(2,i)-map_nodes(2,i-1))
500 IF(dist <= tol) map_nodes(1,idx(i)) = zero
504 IF(map_nodes(1,idx(i)) /= zero)
THEN
509 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%POS_NODES))
ALLOCATE(state_inimap_buf(1
510 IF(.NOT.
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
ALLOCATE(state_inimap_buf(1)%VEL_NODES(k))
513 IF(map_nodes(1,idx(i)) /= zero)
THEN
515 state_inimap_buf(1)%POS_NODES(k) = map_nodes(2,i)
516 vel(1:3)=v(1:3,int(map_nodes(1,idx(i))))
518 IF(length > zero)dotprod = (lx*vel(1) + ly*vel(2) + lz*vel(3)) / length
519 state_inimap_buf(1)%VEL_NODES(k)=dotprod
522 state_inimap_buf(1)%NUM_POINTS=k
536 shift_c_min = state_inimap_buf(1)%SHIFT_Cy
537 shift_n_min = state_inimap_buf(1)%SHIFT_Ny
539 IF(state_inimap_buf(i)%NUM_CENTROIDS==0)cycle
540 shift_c_min =
min(shift_c_min, state_inimap_buf(i)%SHIFT_Cy)
541 shift_n_min =
min(shift_n_min, state_inimap_buf(i)%SHIFT_Ny)
543 state_inimap_buf(1)%SHIFT_Cy = shift_c_min
544 state_inimap_buf(1)%SHIFT_Ny = shift_n_min
551 ncell_tot = state_inimap_buf(
552 len_tot = state_inimap_buf(1)%LENGTH
553 IF(ispmd == 0 .AND. nspmd > 1)
THEN
560 IF(state_inimap_buf(i)%NUM_CENTROIDS==0)
THEN
566 npts(i)= state_inimap_buf(i)%NUM_POINTS ;
567 npts_tot=npts_tot+npts(i)
568 len_(i)=state_inimap_buf(i)%LENGTH ;
569 len_tot=len_tot+len_(i)
570 ncell(i)= state_inimap_buf(i)%NUM_CENTROIDS ;
571 ncell_tot = ncell_tot + ncell(i)
573 ALLOCATE(work(npts_tot,3),work_indx(npts_tot))
581 work(j,1) = state_inimap_buf(i)%POS_NODES(k)
582 work(j,3) = state_inimap_buf(i)%VEL_NODES(k) !tmp
588 work_indx(1:npts_tot) = (/(j,j=1,npts_tot)/)
589 CALL quicksort(work(:,1), work_indx, 1, npts_tot)
592 work(i,2)=work(work_indx(i),3)
595 work_indx(1:npts_tot) = 0
602 dist = abs(work(i,1)-work(i-1,1))
609 IF(work_indx(i) ==0 )
THEN
615 DO i=k+1,npts_tot ; work(i,1:2)=zero ;
ENDDO
621 IF(
ALLOCATED(state_inimap_buf(1)%VEL_NODES))
DEALLOCATE(state_inimap_buf(1)%VEL_NODES)
622 IF(
ALLOCATED(state_inimap_buf(1)%POS_NODES))
DEALLOCATE(state_inimap_buf(1)%POS_NODES)
623 ALLOCATE(state_inimap_buf(1)%VEL_NODES(npts_tot))
624 ALLOCATE(state_inimap_buf(1)%POS_NODES(npts_tot))
625 state_inimap_buf(1)%NUM_POINTS=npts_tot
626 state_inimap_buf(1)%POS_NODES(1:npts_tot)=work(1:npts_tot,
627 state_inimap_buf(1)%VEL_NODES(1:npts_tot)=work(1:npts_tot,2)
628 IF(
ALLOCATED(work))
DEALLOCATE(work)
629 IF(
ALLOCATED(work_indx))
DEALLOCATE(work_indx)
632 nbmat=state_inimap_buf(1)%NSUBMAT
633 ALLOCATE(work(ncell_tot,1+4*nbmat))
634 ALLOCATE(work_indx(ncell_tot))
642 work(j,1) = state_inimap_buf(i)%POS_CENTROIDS(k)
643 nbmat = state_inimap_buf(i)%NSUBMAT
645 work(j,1+ 4*(jj-1)+1) = state_inimap_buf(i)%SUBMAT(jj)%VFRAC(k)
646 work(j,1+ 4*(jj-1)+2) = state_inimap_buf
647 work(j,1+ 4*(jj-1)+3) = state_inimap_buf(i)%SUBMAT(jj)%E(k)
648 work(j,1+ 4*(jj-1)+4) = state_inimap_buf(i)%SUBMAT(jj)%PRES(k)
655 work_indx(1:ncell_tot) = (/(j,j=1,ncell_tot)/)
656 CALL quicksort(work(:,1), work_indx, 1, ncell_tot)
660 IF(
ALLOCATED(state_inimap_buf(1)%POS_CENTROIDS))
DEALLOCATE(state_inimap_buf
661 nbmat = state_inimap_buf(1)%NSUBMAT
663 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%VFRAC))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%VFRAC)
664 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%RHO))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%RHO)
665 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%E))
DEALLOCATE(state_inimap_buf
666 IF(
ALLOCATED(state_inimap_buf(1)%SUBMAT(jj)%PRES))
DEALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%PRES)
668 ALLOCATE(state_inimap_buf(1)%POS_CENTROIDS(ncell_tot))
670 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%VFRAC(ncell_tot))
671 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%RHO(ncell_tot))
672 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%E(ncell_tot))
673 ALLOCATE(state_inimap_buf(1)%SUBMAT(jj)%PRES(ncell_tot))
676 state_inimap_buf(1)%POS_CENTROIDS(j)=work(j,1)
678 state_inimap_buf(1)%SUBMAT(jj)%VFRAC(j)=work(work_indx(j),1+ 4*(jj-1)+1)
679 state_inimap_buf(1)%SUBMAT(jj)%RHO(j) =work(work_indx(j),1+ 4*(jj-1)+2)
680 state_inimap_buf(1)%SUBMAT(jj)%E(j) =work(work_indx(j),1+ 4*(jj-1)+3)
681 state_inimap_buf(1)%SUBMAT(jj)%PRES(j)=work(work_indx(j),1+ 4*(jj-1)+4)
684 state_inimap_buf(1)%NUM_CENTROIDS = ncell_tot
685 state_inimap_buf(1)%LENGTH = len_tot
691 IF(ncell_tot == 0 .OR. len_tot == zero)
THEN
692 print *,
"** ERROR WITH /STATE/INIMAP"
693 print *,
" -- SITUATION NOT EXPECTED"
694 print *,
" -- 1D DOMAIN IS NOT DETECTED."
704 nbmat = state_inimap_buf(1)%NSUBMAT
705 WRITE(chstat,
'(I4.4)')state_inimap_call_number
706 filnam=rootnam(1:rootlen)//
'_1D_'//chstat//
'.inimap'
707 shortname=rootnam(1:rootlen)//
'_1D_'//chstat//
'.inimap'
709 len_tmp_name = outfile_name_len + len
710 tmp_name=outfile_name(1:outfile_name_len)//filnam(1:len)
712 ifilnam(i)=ichar(tmp_name(i:i))
715 CALL open_c(ifilnam,len_tmp_name,6)
721 CALL write_i_c(state_inimap_buf(1)%NUM_POINTS,1)
727 nbmat = state_inimap_buf(1)%NSUBMAT
728 shift_c = state_inimap_buf(1)%SHIFT_Cy
729 shift_n = state_inimap_buf(1)%SHIFT_Ny
730 num_centroids = state_inimap_buf(1)%NUM_CENTROIDS
732 CALL write_db(state_inimap_buf(1)%POS_CENTROIDS(1) ,num_centroids)
738 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%VFRAC(1) ,num_centroids)
742 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%RHO(1) ,num_centroids)
746 CALL write_db(state_inimap_buf(1)%SUBMAT(isubmat)%PRES(1) ,num_centroids
749 IF(state_inimap_buf(1)%NUM_POINTS == state_inimap_buf(1)%NUM_CENTROIDS)
THEN
750 CALL write_db(state_inimap_buf(1)%VEL_NODES(1) ,state_inimap_buf(1)%NUM_POINTS)
752 CALL write_db(state_inimap_buf(1)%POS_NODES(1) ,state_inimap_buf(1)%NUM_POINTS)
753 CALL write_db(state_inimap_buf(1)%VEL_NODES(1) ,state_inimap_buf(1)%NUM_POINTS)
762 shortname=shortname//
'.gz'
763 WRITE (iout,500) shortname(1:len_trim(trim(shortname)))
764 WRITE (istdo,500) shortname(1:len_trim(trim(shortname)))
767 IF(
ALLOCATED(map_nodes))
DEALLOCATE(map_nodes)
768 IFALLOCATEDDEALLOCATE(get_cell_fom_centroid)
769 IF(
ALLOCATED(idx))
DEALLOCATE(idx)
771 nbmat = state_inimap_buf(jj)%NSUBMAT
772 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT))
THEN
774 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%VFRAC))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%VFRAC)
775 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%RHO))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%RHO)
776 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%E))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%E)
777 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT(i)%PRES))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT(i)%PRES)
780 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT ))
DEALLOCATE(state_inimap_buf(jj)%SUBMAT)
781 IF(
ALLOCATED(state_inimap_buf(jj)%POS_NODES ))
DEALLOCATE(state_inimap_buf(jj)%POS_NODES
782 IF(
ALLOCATED(state_inimap_buf(jj)%VEL_NODES ))
DEALLOCATE(state_inimap_buf(jj)%VEL_NODES)
783 IF(
ALLOCATED(state_inimap_buf(jj)%POS_CENTROIDS))
DEALLOCATE(state_inimap_buf(jj)%POS_CENTROIDS)
784 IF(
ALLOCATED(state_inimap_buf(jj)%SUBMAT))
DEALLOCATE(state_inimap_buf
788 IF(
ALLOCATED(state_inimap_buf))
DEALLOCATE(state_inimap_buf
793 500
FORMAT (4x,
' STATE FILE:',1x,a,
' WRITTEN')