[cig-commits] r20585 - in seismo/3D/SPECFEM3D/trunk/src: decompose_mesh_SCOTCH generate_databases meshfem3D shared
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Thu Aug 16 17:04:25 PDT 2012
Author: dkomati1
Date: 2012-08-16 17:04:25 -0700 (Thu, 16 Aug 2012)
New Revision: 20585
Modified:
seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90
seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/part_decompose_mesh_SCOTCH.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_MPI.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/memory_eval.f90
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/constants.h.in
seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in
Log:
replaced ESIZE and esize with NGNOD for clarity and to prepare for support of 27-node elements
Modified: seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -66,7 +66,6 @@
integer :: nb_edges
integer :: ispec, inode
- integer :: NGNOD
integer :: max_neighbour ! Real maximum number of neighbours per element
integer :: sup_neighbour ! Majoration of the maximum number of neighbours per element
@@ -122,9 +121,6 @@
logical :: use_poroelastic_file
integer(long) :: nspec_long
- ! sets number of nodes per element
- NGNOD = esize
-
! reads node coordinates
open(unit=98, file=localpath_name(1:len_trim(localpath_name))//'/nodes_coords_file',&
status='old', form='formatted', iostat = ier)
@@ -162,7 +158,7 @@
! sets number of elements (integer 4-byte)
nspec = nspec_long
- allocate(elmnts(esize,nspec),stat=ier)
+ allocate(elmnts(NGNOD,nspec),stat=ier)
if( ier /= 0 ) stop 'error allocating array elmnts'
do ispec = 1, nspec
! format: # element_id #id_node1 ... #id_node8
@@ -646,7 +642,7 @@
mask_nodes_elmnts(:) = .false.
used_nodes_elmnts(:) = 0
do ispec = 1, nspec
- do inode = 1, ESIZE
+ do inode = 1, NGNOD
mask_nodes_elmnts(elmnts(inode,ispec)) = .true.
used_nodes_elmnts(elmnts(inode,ispec)) = used_nodes_elmnts(elmnts(inode,ispec)) + 1
enddo
Modified: seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/part_decompose_mesh_SCOTCH.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/part_decompose_mesh_SCOTCH.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/decompose_mesh_SCOTCH/part_decompose_mesh_SCOTCH.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -28,18 +28,14 @@
implicit none
+ include "../shared/constants.h"
+
! Useful kind types
integer ,parameter :: short = SELECTED_INT_KIND(4), long = SELECTED_INT_KIND(18)
-! Number of nodes per elements.
- integer, parameter :: ESIZE = 8
-
! Number of faces per element.
integer, parameter :: nfaces = 6
-! very large and very small values
- double precision, parameter :: HUGEVAL = 1.d+30,TINYVAL = 1.d-9
-
! acoustic-elastic-poroelastic load balancing:
! assumes that elastic at least ~4 times more expensive than acoustic
! assumes that poroelastic at least ~8 times more expensive than acoustic
@@ -63,7 +59,7 @@
integer, intent(in) :: nnodes
integer, intent(in) :: nsize
integer, intent(in) :: sup_neighbour
- integer, dimension(0:esize*nspec-1), intent(in) :: elmnts
+ integer, dimension(0:NGNOD*nspec-1), intent(in) :: elmnts
integer, dimension(0:nspec) :: xadj
integer, dimension(0:sup_neighbour*nspec-1) :: adjncy
@@ -88,8 +84,8 @@
nb_edges = 0
! list of elements per node
- do i = 0, esize*nspec-1
- nodes_elmnts(elmnts(i)*nsize+nnodes_elmnts(elmnts(i))) = i/esize
+ do i = 0, NGNOD*nspec-1
+ nodes_elmnts(elmnts(i)*nsize+nnodes_elmnts(elmnts(i))) = i/NGNOD
nnodes_elmnts(elmnts(i)) = nnodes_elmnts(elmnts(i)) + 1
end do
@@ -101,8 +97,8 @@
connectivity = 0
elem_base = nodes_elmnts(k+j*nsize)
elem_target = nodes_elmnts(l+j*nsize)
- do n = 1, esize
- num_node = elmnts(esize*elem_base+n-1)
+ do n = 1, NGNOD
+ num_node = elmnts(NGNOD*elem_base+n-1)
do m = 0, nnodes_elmnts(num_node)-1
if ( nodes_elmnts(m+num_node*nsize) == elem_target ) then
connectivity = connectivity + 1
@@ -296,7 +292,7 @@
integer, intent(in) :: nspec
integer, intent(in) :: sup_neighbour
integer, dimension(0:nspec-1), intent(in) :: part
- integer, dimension(0:esize*nspec-1), intent(in) :: elmnts
+ integer, dimension(0:NGNOD*nspec-1), intent(in) :: elmnts
integer, dimension(0:nspec), intent(in) :: xadj
integer, dimension(0:sup_neighbour*nspec-1), intent(in) :: adjncy
integer, dimension(:),pointer :: tab_size_interfaces, tab_interfaces
@@ -368,12 +364,12 @@
tab_interfaces(tab_size_interfaces(num_interface)*7+num_edge*7+0) = el
tab_interfaces(tab_size_interfaces(num_interface)*7+num_edge*7+1) = adjncy(el_adj)
ncommon_nodes = 0
- do num_node = 0, esize-1
- do num_node_bis = 0, esize-1
- if ( elmnts(el*esize+num_node) == elmnts(adjncy(el_adj)*esize+num_node_bis) ) then
+ do num_node = 0, NGNOD-1
+ do num_node_bis = 0, NGNOD-1
+ if ( elmnts(el*NGNOD+num_node) == elmnts(adjncy(el_adj)*NGNOD+num_node_bis) ) then
tab_interfaces(tab_size_interfaces(num_interface)*7 &
+num_edge*7+3+ncommon_nodes) &
- = elmnts(el*esize+num_node)
+ = elmnts(el*NGNOD+num_node)
ncommon_nodes = ncommon_nodes + 1
end if
end do
@@ -416,7 +412,7 @@
integer, intent(in) :: nspec
integer, intent(in) :: sup_neighbour
integer, dimension(0:nspec-1), intent(in) :: part
- integer, dimension(0:esize*nspec-1), intent(in) :: elmnts
+ integer, dimension(0:NGNOD*nspec-1), intent(in) :: elmnts
integer, dimension(0:nspec), intent(in) :: xadj
integer, dimension(0:sup_neighbour*nspec-1), intent(in) :: adjncy
integer, dimension(:),pointer :: tab_size_interfaces, tab_interfaces
@@ -529,12 +525,12 @@
tab_interfaces(tab_size_interfaces(num_interface)*7+num_edge*7+0) = el
tab_interfaces(tab_size_interfaces(num_interface)*7+num_edge*7+1) = adjncy(el_adj)
ncommon_nodes = 0
- do num_node = 0, esize-1
- do num_node_bis = 0, esize-1
- if ( elmnts(el*esize+num_node) == elmnts(adjncy(el_adj)*esize+num_node_bis) ) then
+ do num_node = 0, NGNOD-1
+ do num_node_bis = 0, NGNOD-1
+ if ( elmnts(el*NGNOD+num_node) == elmnts(adjncy(el_adj)*NGNOD+num_node_bis) ) then
tab_interfaces(tab_size_interfaces(num_interface)*7 &
+num_edge*7+3+ncommon_nodes) &
- = elmnts(el*esize+num_node)
+ = elmnts(el*NGNOD+num_node)
ncommon_nodes = ncommon_nodes + 1
end if
end do
@@ -969,7 +965,7 @@
integer, intent(in) :: nspec
integer, intent(inout) :: nspec_local
integer, dimension(0:nspec-1) :: part
- integer, dimension(0:esize*nspec-1) :: elmnts
+ integer, dimension(0:NGNOD*nspec-1) :: elmnts
integer, dimension(:), pointer :: glob2loc_elmnts
integer, dimension(2,nspec) :: num_modele
integer, dimension(:), pointer :: glob2loc_nodes_nparts
@@ -1398,7 +1394,7 @@
double precision, dimension(16,nb_materials),intent(in) :: mat_prop
integer, dimension(0:nspec-1) :: part
- integer, dimension(0:esize*nspec-1) :: elmnts
+ integer, dimension(0:NGNOD*nspec-1) :: elmnts
! local parameters
integer :: nfaces_coupled
@@ -1525,8 +1521,8 @@
integer, dimension(0:nspec-1) :: part
! mesh element indexing
- ! ( elmnts(esize,nspec) )
- integer, dimension(0:esize*nspec-1) :: elmnts
+ ! ( elmnts(NGNOD,nspec) )
+ integer, dimension(0:NGNOD*nspec-1) :: elmnts
! moho surface
integer ,intent(in) :: nspec2D_moho
@@ -1582,9 +1578,9 @@
! loops over all element corners
counter = 0
- do i=0,esize-1
+ do i=0,NGNOD-1
! note: assumes that node indices in elmnts array are in the range from 0 to nodes-1
- inode = elmnts(el*esize+i)
+ inode = elmnts(el*NGNOD+i)
if( node_is_moho(inode) ) counter = counter + 1
enddo
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -608,7 +608,7 @@
! data from the external mesh
integer :: nnodes_ext_mesh,nelmnts_ext_mesh
double precision, dimension(NDIM,nnodes_ext_mesh) :: nodes_coords_ext_mesh
- integer, dimension(ESIZE,nelmnts_ext_mesh) :: elmnts_ext_mesh
+ integer, dimension(NGNOD,nelmnts_ext_mesh) :: elmnts_ext_mesh
! proc numbers for MPI
integer :: myrank
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -676,7 +676,7 @@
! element indexing
!read(IIN,*) nelmnts_ext_mesh
read(IIN) nelmnts_ext_mesh
- allocate(elmnts_ext_mesh(esize,nelmnts_ext_mesh),stat=ier)
+ allocate(elmnts_ext_mesh(NGNOD,nelmnts_ext_mesh),stat=ier)
if( ier /= 0 ) stop 'error allocating array elmnts_ext_mesh'
allocate(mat_ext_mesh(2,nelmnts_ext_mesh),stat=ier)
if( ier /= 0 ) stop 'error allocating array mat_ext_mesh'
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_MPI.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_MPI.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_MPI.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -44,7 +44,7 @@
! external mesh, element indexing
integer :: nelmnts_ext_mesh
- integer, dimension(ESIZE,nelmnts_ext_mesh) :: elmnts_ext_mesh
+ integer, dimension(NGNOD,nelmnts_ext_mesh) :: elmnts_ext_mesh
integer :: num_interfaces_ext_mesh,max_interface_size_ext_mesh
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/memory_eval.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/memory_eval.f90 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/memory_eval.f90 2012-08-17 00:04:25 UTC (rev 20585)
@@ -173,7 +173,7 @@
! memory usage, in generate_database() routine so far
static_memory_size = NGLLX*NGLLY*NGLLZ*nspec*4 + 3*NGLLX*NGLLY*NGLLZ*nspec*8 &
- + NDIM*nnodes_ext_mesh*8 + ESIZE*nelmnts_ext_mesh*4 + 2*nelmnts_ext_mesh*4 &
+ + NDIM*nnodes_ext_mesh*8 + NGNOD*nelmnts_ext_mesh*4 + 2*nelmnts_ext_mesh*4 &
+ 5*nmat_ext_mesh*8 + 3*num_interfaces_ext_mesh &
+ 6*max_interface_size_ext_mesh*num_interfaces_ext_mesh*4 &
+ NGLLX*NGLLX*max_interface_size_ext_mesh*num_interfaces_ext_mesh*4 &
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/constants.h.in
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/constants.h.in 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/constants.h.in 2012-08-17 00:04:25 UTC (rev 20585)
@@ -26,111 +26,16 @@
! @configure_input@
-!
-! solver in single or double precision depending on the machine (4 or 8 bytes)
-!
-! ALSO CHANGE FILE precision.h ACCORDINGLY
-!
- integer, parameter :: SIZE_REAL = 4
- integer, parameter :: SIZE_DOUBLE = 8
+ include "../shared/constants.h"
-! set to SIZE_REAL to run in single precision
-! set to SIZE_DOUBLE to run in double precision (increases memory size by 2)
- integer, parameter :: CUSTOM_REAL = @CUSTOM_REAL@
-
-!----------- parameters that can be changed by the user -----------
-
-! set to .false. if running on a Beowulf-type machine with local disks
-! set to .true. if running on a shared-memory machine with common file system
-! if running on a Beowulf, also modify name of nodes in filter_machine_file.f90
- logical, parameter :: LOCAL_PATH_IS_ALSO_GLOBAL = . at LOCAL_PATH_IS_ALSO_GLOBAL@.
-
-! apply heuristic rule to modify doubling regions to balance angles
- logical, parameter :: APPLY_HEURISTIC_RULE = .true.
-
-! input, output and main MPI I/O files
- integer, parameter :: ISTANDARD_OUTPUT = 6
- integer, parameter :: IIN = 40,IOUT = 41
-! uncomment this to write messages to a text file
- integer, parameter :: IMAIN = 42
-! uncomment this to write messages to the screen
-! integer, parameter :: IMAIN = ISTANDARD_OUTPUT
-! I/O unit for source and receiver vtk file
- integer, parameter :: IOVTK = 98
-! I/O unit for interface file
- integer, parameter :: IIN_INTERFACES = 43
-
-! ignore variable name field (junk) at the beginning of each input line
- logical, parameter :: IGNORE_JUNK = .true.,DONT_IGNORE_JUNK = .false.
-
-! minimum thickness in meters to include the effect of the oceans
-! to avoid taking into account spurious oscillations in topography model
-! double precision, parameter :: MINIMUM_THICKNESS_3D_OCEANS = 10.d0
-
-! min and max density in the model
-! double precision, parameter :: DENSITY_MAX = 3000.d0
-! double precision, parameter :: DENSITY_MIN = 2000.d0
-
-! density of sea water
-! real(kind=CUSTOM_REAL), parameter :: RHO_OCEANS = 1020.0
-
-! depth at which we start to honor the basement interface
-! double precision, parameter :: Z_THRESHOLD_HONOR_BASEMENT = -4700.d0
-
-! paths for inputs and outputs files
- character(len=256), parameter :: IN_DATA_FILES_PATH = '../in_data_files/'
- character(len=256), parameter :: MF_IN_DATA_FILES_PATH = '../in_data_files/meshfem3D_files/'
- character(len=256), parameter :: OUTPUT_FILES_PATH = '../in_out_files/OUTPUT_FILES/'
-
-! ---------------------------------------------------------------------------------------
-! LQY -- Following 3 variables stays here temporarily,
-! we need to move them to Par_file at a proper time
-! ---------------------------------------------------------------------------------------
-! save moho mesh and compute Moho boundary kernels
-! logical, parameter :: SAVE_MOHO_MESH = .false.
-
!------------------------------------------------------
!----------- do not modify anything below -------------
!------------------------------------------------------
-! on some processors (e.g. Pentiums) it is necessary to suppress underflows
-! by using a small initial field instead of zero
- logical, parameter :: FIX_UNDERFLOW_PROBLEM = .true.
-
-! some useful constants
- double precision, parameter :: PI = 3.141592653589793d0
- double precision, parameter :: TWO_PI = 2.d0 * PI
-
-! 3-D simulation
- integer, parameter :: NDIM = 3
-
-! dimension of the boundaries of the slices
- integer, parameter :: NDIM2D = 2
-
-! number of nodes for 2D and 3D shape functions for hexahedra
-! we use 8-node mesh bricks, which are more stable than 27-node elements
- integer, parameter :: NGNOD = 8, NGNOD2D = 4
-
-! a few useful constants
- double precision, parameter :: ZERO = 0.d0,ONE = 1.d0,TWO = 2.d0 !,HALF = 0.5d0
-
- real(kind=CUSTOM_REAL), parameter :: &
- ONE_THIRD = 1._CUSTOM_REAL/3._CUSTOM_REAL, &
- FOUR_THIRDS = 4._CUSTOM_REAL/3._CUSTOM_REAL
-
-! very large and very small values
- double precision, parameter :: HUGEVAL = 1.d+30,TINYVAL = 1.d-9
-
! define flag for elements
integer, parameter :: IFLAG_ONE_LAYER_TOPOGRAPHY = 1
integer, parameter :: IFLAG_BASEMENT_TOPO = 2
-! Olsen's constant for Q_mu = constant * v_s attenuation rule
- real, parameter :: OLSEN_ATTENUATION_RATIO = 0.05
-
-! number of standard linear solids in parallel for attenuation
- integer, parameter :: N_SLS = 3
-
! flag for the four edges of each slice and for the bottom edge
integer, parameter :: XI_MIN = 1
integer, parameter :: XI_MAX = 2
@@ -138,48 +43,6 @@
integer, parameter :: ETA_MAX = 4
integer, parameter :: BOTTOM = 5
-! number of GLL points not set in the mesher, do not modify this value
- integer, parameter :: NGLLX = 2
- integer, parameter :: NGLLY = NGLLX
- integer, parameter :: NGLLZ = NGLLX
-
-! number of points per surface element
- integer, parameter :: NGLLSQUARE = NGLLX * NGLLY
-
-! number of points per spectral element
- integer, parameter :: NGLLCUBE = NGLLX * NGLLY * NGLLZ
-
-! for vectorization of loops
- integer, parameter :: NGLLSQUARE_NDIM = NGLLSQUARE * NDIM
- integer, parameter :: NGLLCUBE_NDIM = NGLLCUBE * NDIM
-
-! flag for projection from latitude/longitude to UTM, and back
- integer, parameter :: ILONGLAT2UTM = 0, IUTM2LONGLAT = 1
-
-! smallest real number on the Pentium and the SGI = 1.1754944E-38
-! largest real number on the Pentium and the SGI = 3.4028235E+38
-! small negligible initial value to avoid very slow underflow trapping
-! but not too small to avoid trapping on velocity and acceleration in Newmark
- real(kind=CUSTOM_REAL), parameter :: VERYSMALLVAL = 1.E-24_CUSTOM_REAL
-
-! displacement threshold above which we consider the code became unstable
- real(kind=CUSTOM_REAL), parameter :: STABILITY_THRESHOLD = 1.E+25_CUSTOM_REAL
-
-! geometrical tolerance for boundary detection
- double precision, parameter :: SMALLVAL = 0.00001d0
-
-! do not use tags for MPI messages, use dummy tag instead
- integer, parameter :: itag = 0,itag2 = 0
-
-! for the Gauss-Lobatto-Legendre points and weights
- double precision, parameter :: GAUSSALPHA = 0.d0,GAUSSBETA = 0.d0
-
-! number of lines per source in CMTSOLUTION file
- integer, parameter :: NLINES_PER_CMTSOLUTION_SOURCE = 13
-
-! number of iterations to solve the system for xi and eta
- integer, parameter :: NUM_ITER = 4
-
! size of topography and bathymetry file for Southern California
integer, parameter :: NX_TOPO_SOCAL = 1401,NY_TOPO_SOCAL = 1001
double precision, parameter :: ORIG_LAT_TOPO_SOCAL = 32.d0
@@ -286,9 +149,6 @@
! reference surface of the model before adding topography
double precision, parameter :: Z_SURFACE = 0.d0
-! number of points in each AVS or OpenDX quadrangular cell for movies
- integer, parameter :: NGNOD2D_AVS_DX = 4
-
! magic ratio for heuristic rule
! this gives 120 degree angles in doubling
! standard value 0.5 gives 135-135-90, which is not optimal
@@ -305,4 +165,4 @@
integer, parameter :: NGLOB_DOUBLING_SUPERBRICK = 67
integer, parameter :: NSPEC_SUPERBRICK_1L = 28
integer, parameter :: NGLOB_SUPERBRICK_1L = 58
- integer, parameter :: NGNOD_EIGHT_CORNERS = 8
+
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in 2012-08-17 00:01:50 UTC (rev 20584)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in 2012-08-17 00:04:25 UTC (rev 20585)
@@ -241,9 +241,6 @@
! (cross-section plane parameters can be specified in create_color_image.f90)
logical, parameter :: PNM_GIF_IMAGE = .false.
-! number of nodes per element as provided by the external mesh
- integer, parameter :: ESIZE = 8
-
! geometry tolerance parameter to calculate number of independent grid points
! sensitive to actual size of model, assumes reference sphere of radius 1
! this is an absolute value for normalized coordinates in the Earth
@@ -294,7 +291,11 @@
! number of nodes for 2D and 3D shape functions for hexahedra
! we use 8-node mesh bricks, which are more stable than 27-node elements
integer, parameter :: NGNOD = 8, NGNOD2D = 4
+ integer, parameter :: NGNOD_EIGHT_CORNERS = 8
+! number of points in each AVS or OpenDX quadrangular cell for movies
+ integer, parameter :: NGNOD2D_AVS_DX = 4
+
! a few useful constants
double precision, parameter :: ZERO = 0.d0,ONE = 1.d0,TWO = 2.d0 !,HALF = 0.5d0
@@ -413,9 +414,6 @@
integer, parameter :: IDOMAIN_ELASTIC = 2
integer, parameter :: IDOMAIN_POROELASTIC = 3
-! number of points in each AVS or OpenDX quadrangular cell for movies
- integer, parameter :: NGNOD2D_AVS_DX = 4
-
! model ids
integer, parameter :: IMODEL_DEFAULT = 1
integer, parameter :: IMODEL_1D_PREM = 2
More information about the CIG-COMMITS
mailing list