[cig-commits] r22320 - in seismo/3D/SPECFEM3D_GLOBE/branches/undo_att: . src/shared

xie.zhinan at geodynamics.org xie.zhinan at geodynamics.org
Sun Jun 16 00:01:56 PDT 2013


Author: xie.zhinan
Date: 2013-06-16 00:01:56 -0700 (Sun, 16 Jun 2013)
New Revision: 22320

Modified:
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/shared/save_header_file.f90
Log:
set PARTIAL_PHYS_DISPERSION_ONLY to be .true. when undo_att is .true., fix the problem in write out seismogram when NT_DUMP is odd integer


Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90	2013-06-16 06:55:14 UTC (rev 22319)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90	2013-06-16 07:01:56 UTC (rev 22320)
@@ -908,17 +908,23 @@
   ! write the current or final seismograms
   if(seismo_current == NTSTEP_BETWEEN_OUTPUT_SEISMOS .or. it == it_end) then
     if (SIMULATION_TYPE == 1 .or. SIMULATION_TYPE == 3) then
-      do irec_local = 1,nrec_local
-        do i = 1,seismo_current/NT_DUMP
-           do j = 1,NT_DUMP/2
-              do k = 1,3
-                seismograms_temp(k) = seismograms(k,irec_local,(i-1)*NT_DUMP + j)
-                seismograms(k,irec_local,(i-1)*NT_DUMP + j)  = seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1))
-                seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1)) = seismograms_temp(k)
-              enddo
+      if(mod(NT_DUMP,2) == 0)then
+        do irec_local = 1,nrec_local; do i = 1,seismo_current/NT_DUMP; do j = 1,NT_DUMP/2
+           do k = 1,3
+              seismograms_temp(k) = seismograms(k,irec_local,(i-1)*NT_DUMP + j)
+              seismograms(k,irec_local,(i-1)*NT_DUMP + j)  = seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1))
+              seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1)) = seismograms_temp(k)
            enddo
-        enddo
-      enddo
+         enddo; enddo; enddo
+      else
+        do irec_local = 1,nrec_local; do i = 1,seismo_current/NT_DUMP; do j = 1,(NT_DUMP-1)/2
+           do k = 1,3
+              seismograms_temp(k) = seismograms(k,irec_local,(i-1)*NT_DUMP + j)
+              seismograms(k,irec_local,(i-1)*NT_DUMP + j)  = seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1))
+              seismograms(k,irec_local,(i-1)*NT_DUMP + (NT_DUMP-j+1)) = seismograms_temp(k)
+           enddo
+         enddo; enddo; enddo
+      endif
       call write_seismograms(myrank,seismograms,number_receiver_global,station_name, &
             network_name,stlat,stlon,stele,stbur, &
             nrec,nrec_local,ANGULAR_WIDTH_XI_IN_DEGREES,NEX_XI,DT,t0,it_end, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/shared/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/shared/save_header_file.f90	2013-06-16 06:55:14 UTC (rev 22319)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/shared/save_header_file.f90	2013-06-16 07:01:56 UTC (rev 22320)
@@ -539,7 +539,12 @@
     ! mimicking average (not full) effect of attenuation on apparent velocities, not amplitudes. that is,
     ! phase shifts will be partially accounted for, but amplitudes will differ in adjoint simulations
     if( ATTENUATION ) then
-      write(IOUT,*) 'logical, parameter :: PARTIAL_PHYS_DISPERSION_ONLY = .true.'
+      if(UNDO_ATT)then  
+         !ZN in undoing attenuation we do not have to use the mimmic way for inclusion of visoelastic effect
+         write(IOUT,*) 'logical, parameter :: PARTIAL_PHYS_DISPERSION_ONLY = .false.'
+      else
+         write(IOUT,*) 'logical, parameter :: PARTIAL_PHYS_DISPERSION_ONLY = .true.'
+      endif
     else
       write(IOUT,*) 'logical, parameter :: PARTIAL_PHYS_DISPERSION_ONLY = .false.'
     endif



More information about the CIG-COMMITS mailing list