[cig-commits] [commit] devel: Alexis Bottero fixed a small issue for AXISYM Gmsh meshes in src/meshfem2D/meshfem2D.F90 (ca7a283)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Apr 8 03:02:33 PDT 2014


Repository : ssh://geoshell/specfem2d

On branch  : devel
Link       : https://github.com/geodynamics/specfem2d/compare/e4fa9d03bf2b0fc1837c42aa51eeb63f360575fe...fc67e6fd7ad890705b2b72b4b3c509accb22249e

>---------------------------------------------------------------

commit ca7a2834a195c91142049b715b81271736eecc75
Author: Dimitri Komatitsch <komatitsch at lma.cnrs-mrs.fr>
Date:   Mon Mar 24 15:04:43 2014 +0100

    Alexis Bottero fixed a small issue for AXISYM Gmsh meshes in src/meshfem2D/meshfem2D.F90


>---------------------------------------------------------------

ca7a2834a195c91142049b715b81271736eecc75
 src/meshfem2D/meshfem2D.F90 | 77 ++++++++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 39 deletions(-)

diff --git a/src/meshfem2D/meshfem2D.F90 b/src/meshfem2D/meshfem2D.F90
index a651c26..2103b40 100644
--- a/src/meshfem2D/meshfem2D.F90
+++ b/src/meshfem2D/meshfem2D.F90
@@ -423,7 +423,7 @@ program meshfem2D
   ! *** read the parameter file
   ! ***
 
-  print *,'Reading the parameter file ... '
+  print *,'Reading the parameter file...'
   print *
 
   ! opens file Par_file
@@ -749,44 +749,6 @@ program meshfem2D
         enddo
      endif
 
-     if(AXISYM) then
-       if ( read_external_mesh ) then  !! DK DK si maillage CUBIT externe
-         call read_axial_elements_file(axial_elements_file)
-
-       else !! DK DK if the mesh has been made by the internal mesher
-
-         if(xmin * xmax < 0) stop 'in axisymmetric mode xmin and xmax must have the same sign, they cannot cross the symmetry axis'
-         if(xmin < 0) stop 'in axisymmetric mode, case of symmetry axis on the right edge instead of left not supported yet'
-
-         ! count the number of axial elements
-         nelem_on_the_axis = 0
-
-         ! test if the left edge is on the symmetry axis
-         if(abs(xmin) < TINYVAL) then
-
-           ! if the surface is absorbing, it cannot be axial at the same time
-           if(absleft) stop 'in axisymmetric mode, the left edge cannot be both axial and absorbing'
-           !all the elements on the left edge are axial because that edge is vertical and located in x = 0
-           nelem_on_the_axis = nzread
-           allocate(ispec_of_axial_elements(nelem_on_the_axis))
-           i = 1
-           do j = 1,nzread
-             ispec_of_axial_elements(j) = (j-1)*nxread + (i-1) + 1
-           enddo
-
-         else ! no elements on the symmetry axis
-           allocate(ispec_of_axial_elements(1))
-         endif
-
-       endif ! of if(read_external_mesh) then
-
-     else ! of AXISYM
-
-       nelem_on_the_axis = 0
-       allocate(ispec_of_axial_elements(1))
-
-     endif
-
      !
      !--- definition of absorbing boundaries
      !
@@ -842,6 +804,43 @@ program meshfem2D
 
   endif
 
+  if(AXISYM) then                                                                                                 !axisym
+    if ( read_external_mesh ) then  !! DK DK si maillage CUBIT externe                                            !axisym
+      call read_axial_elements_file(axial_elements_file)                                                          !axisym
+                                                                                                                  !axisym
+    else !! DK DK if the mesh has been made by the internal mesher                                                !axisym
+                                                                                                                  !axisym
+      if(xmin * xmax < 0) stop 'in axisymmetric mode xmin and xmax must have the same sign, they cannot cross the symmetry axis'
+      if(xmin < 0) stop 'in axisymmetric mode, case of symmetry axis on the right edge instead of left not supported yet'
+                                                                                                                  !axisym
+      ! count the number of axial elements                                                                        !axisym
+      nelem_on_the_axis = 0                                                                                       !axisym
+                                                                                                                  !axisym
+      ! test if the left edge is on the symmetry axis                                                             !axisym
+      if(abs(xmin) < TINYVAL) then                                                                                !axisym
+                                                                                                                  !axisym
+        ! if the surface is absorbing, it cannot be axial at the same time                                        !axisym
+        if(absleft) stop 'in axisymmetric mode, the left edge cannot be both axial and absorbing'                 !axisym
+        !all the elements on the left edge are axial because that edge is vertical and located in x = 0           !axisym
+        nelem_on_the_axis = nzread                                                                                !axisym
+        allocate(ispec_of_axial_elements(nelem_on_the_axis))                                                      !axisym
+        i = 1                                                                                                     !axisym
+        do j = 1,nzread                                                                                           !axisym
+          ispec_of_axial_elements(j) = (j-1)*nxread + (i-1) + 1                                                   !axisym
+        enddo                                                                                                     !axisym
+                                                                                                                  !axisym
+      else ! no elements on the symmetry axis                                                                     !axisym
+        allocate(ispec_of_axial_elements(1))                                                                      !axisym
+      endif                                                                                                       !axisym
+                                                                                                                  !axisym
+    endif ! of if(read_external_mesh) then                                                                        !axisym
+                                                                                                                  !axisym
+  else ! of AXISYM                                                                                                !axisym
+                                                                                                                  !axisym
+    nelem_on_the_axis = 0                                                                                         !axisym
+    allocate(ispec_of_axial_elements(1))                                                                          !axisym
+                                                                                                                  !axisym
+  endif                                                                                                           !axisym
 
   ! compute min and max of X and Z in the grid
   print *



More information about the CIG-COMMITS mailing list