From 4da64452efea307660ca9fd8d777633470916275 Mon Sep 17 00:00:00 2001 From: Dave Whipp <dwhipp@dal.ca> Date: Wed, 25 May 2011 15:23:51 +0000 Subject: [PATCH] Tweaked to read all output values from write_global_output subroutine; Added scaling of model dimensions for nested models --- src/VTK/post.f90 | 78 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/src/VTK/post.f90 b/src/VTK/post.f90 index 8b311e7c..b861e9a1 100644 --- a/src/VTK/post.f90 +++ b/src/VTK/post.f90 @@ -91,19 +91,21 @@ integer,dimension(:),allocatable::invoid,elvoid,rtf,ftr integer myicon(100),nstep,ndir,iter,ii,lsf,levmax logical,dimension(:),allocatable::influid,do_it,subset_leaves,instrain +logical :: nest character clsf*3,c4*4,cc4*4,dir*128 -character cs +character cs,nestin double precision :: eps,dil,current_time,activation_time,zmin,xx,yy,zz,maxe2d,dist double precision, allocatable, dimension (:) :: ov_nodee2d, ov_nodecrit double precision, allocatable, dimension (:) :: countnode -double precision,dimension(:,:),allocatable::s,n1,n2,n3,zisodisp,zisoslx +double precision,dimension(:,:),allocatable::s,n1,n2,n3,zisodisp double precision,dimension(:,:,:),allocatable::strain,strainn double precision,dimension(:),allocatable::xi,yi,zi,ui,vi,wi,si,ei double precision,dimension(:),allocatable::s11,s12,s13,s22,s23,s33,str11,str12,str13,str22,str23,str33 double precision,dimension(:),allocatable::azimuth1,azimuth3,dip1,dip3 double precision zmax,dz,l1,l2,l3,n11,n12,n13,n21,n22,n23,n31,n32,n33,con,dxy +double precision :: sselemx,sselemy,sselemz,xminls,yminls,zminls double precision dxyz,x,y,z,xcut,dumpdp integer icut @@ -148,6 +150,18 @@ case default stop end select +write (*,*) 'Is this a nested model? (y/n)' +read (*,'(a)') nestin +select case (trim(nestin)) +case ('y','Y','yes','Yes') + nest=.true. +case ('n','N','no','No') + nest=.false. +case default + write (*,*) 'Error: Response must be either "y" or "n"' + stop +end select + !============================================================================== !============================================================================== @@ -362,30 +376,39 @@ end if end do -if (output_zisodisp==1) then +!============================= +!=====[cloud information]===== +!============================= + +read (7) (dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpdp, & + dumpi, & + i=1,npcl) - read (7) (dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpdp, & - dumpi, & - i=1,npcl) - - ! read isostasy basal displacement array - dwhipp 11/09 - read (7) nb - dxy=1.d0/real(nb) - allocate(zisodisp(nb+1,nb+1),zisoslx(nb+1,nb+1)) - if (1==1) read (7) ((zisodisp(i,j),j=1,nb+1),i=1,nb+1) -endif +!================================ +!=====[isostasy information]===== +!================================ -close(7) +read (7) nb +dxy=1.d0/real(nb) +allocate(zisodisp(nb+1,nb+1)) +read (7) ((zisodisp(i,j),j=1,nb+1),i=1,nb+1) +!============================ +!=====[nest information]===== +!============================ + +read(7) sselemx,sselemy,sselemz,xminls,yminls,zminls + +close(7) !============================================================================== !============================================================================== @@ -417,6 +440,13 @@ do i=1,ov%nnode end if end do +! Convert coordinates if using a nest +if (nest) then + ov%x=ov%x*sselemx+xminls + ov%y=ov%y*sselemy+yminls + ov%z=ov%z*sselemz+zminls +endif + !============================================================================== !============================================================================== @@ -433,9 +463,7 @@ write(*,'(a,2f30.20)') 'u range : ',minval(ov%u(1:nn)), ma write(*,'(a,2f30.20)') 'v range : ',minval(ov%v(1:nn)), maxval(ov%v(1:nn)) write(*,'(a,2f30.20)') 'w range : ',minval(ov%w(1:nn)), maxval(ov%w(1:nn)) write(*,'(a,2f30.20)') 'w (iso) range : ',minval(ov%wiso(1:nn)), maxval(ov%wiso(1:nn)) -! Line below added by dwhipp - 12/09 write(*,'(a,2f30.20)') 'pressure range : ',minval(ov%pressure), maxval(ov%pressure) -! Line below added by dwhipp - 12/09 write(*,'(a,2f30.20)') 'smooth pressure range : ',minval(ov%spressure), maxval(ov%spressure) write(*,'(a,2f30.20)') 'pressure (nodes) range : ',minval(ov%nodal_pressure),maxval(ov%nodal_pressure) write(*,'(a,2f30.20)') 'e2d range : ',minval(ov%e2d), maxval(ov%e2d) -- GitLab