[cig-commits] [commit] master: adding sem stuff to field_transform, increasing file version (ca4b300)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Oct 8 04:58:22 PDT 2014


Repository : https://github.com/geodynamics/axisem

On branch  : master
Link       : https://github.com/geodynamics/axisem/compare/a12566616106b220d8bd7c62619a125ba214e52e...ca4b3002407f17f95bbf7013f7622a43ceb4db35

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

commit ca4b3002407f17f95bbf7013f7622a43ceb4db35
Author: martinvandriel <vandriel at erdw.ethz.ch>
Date:   Wed Oct 8 13:57:59 2014 +0200

    adding sem stuff to field_transform, increasing file version
    
    should be backward compatible, just adding some data


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

ca4b3002407f17f95bbf7013f7622a43ceb4db35
 SOLVER/UTILS/field_transform.F90 | 122 +++++++++++++++++++++++++++++++++++++++
 SOLVER/parameters.F90            |   2 +-
 2 files changed, 123 insertions(+), 1 deletion(-)

diff --git a/SOLVER/UTILS/field_transform.F90 b/SOLVER/UTILS/field_transform.F90
index f845ddc..778b40f 100644
--- a/SOLVER/UTILS/field_transform.F90
+++ b/SOLVER/UTILS/field_transform.F90
@@ -52,6 +52,13 @@ program field_transformation
                                        ncout_mesh_midpoint_varid
     integer                         :: ncin_mesh_sem_varid, ncin_mesh_fem_varid, &
                                        ncin_mesh_midpoint_varid
+
+    integer                         :: ncin_mesh_G0_varid, ncout_mesh_G0_varid
+    integer                         :: ncin_mesh_G1_varid, ncout_mesh_G1_varid
+    integer                         :: ncin_mesh_G2_varid, ncout_mesh_G2_varid
+    integer                         :: ncin_mesh_gll_varid, ncout_mesh_gll_varid
+    integer                         :: ncin_mesh_glj_varid, ncout_mesh_glj_varid
+
     integer                         :: ncout_mesh_eltype_varid, ncout_mesh_axis_varid
     integer                         :: ncin_mesh_eltype_varid, ncin_mesh_axis_varid
 
@@ -70,6 +77,7 @@ program field_transformation
 
     real, allocatable               :: data_mesh(:), data_surf_1d(:), data_surf_3d(:,:,:)
     integer, allocatable            :: int_data_1d(:), int_data_2d(:,:), int_data_3d(:,:,:)
+    double precision, allocatable   :: dp_data_1d(:), dp_data_2d(:,:)
 
     real(kind=8), dimension(:,:), allocatable       :: datat, datat_t
 
@@ -343,6 +351,34 @@ program field_transformation
        call check( nf90_def_var_fletcher32(ncid  = ncout_mesh_grpid, &
                                            varid = ncout_mesh_mpz_varid, &
                                            fletcher32=1) )
+
+       call check( nf90_def_var( ncid   = ncout_mesh_grpid, &
+                                 name   = 'G0', &
+                                 xtype  = NF90_DOUBLE, &
+                                 dimids = nc_mesh_npol_dimid, &
+                                 varid  = ncout_mesh_G0_varid) )
+       call check( nf90_def_var( ncid   = ncout_mesh_grpid, &
+                                 name   = 'G1', &
+                                 xtype  = NF90_DOUBLE, &
+                                 dimids = [nc_mesh_npol_dimid, &
+                                           nc_mesh_npol_dimid], &
+                                 varid  = ncout_mesh_G1_varid) )
+       call check( nf90_def_var( ncid   = ncout_mesh_grpid, &
+                                 name   = 'G2', &
+                                 xtype  = NF90_DOUBLE, &
+                                 dimids = [nc_mesh_npol_dimid, &
+                                           nc_mesh_npol_dimid], &
+                                 varid  = ncout_mesh_G2_varid) )
+       call check( nf90_def_var( ncid   = ncout_mesh_grpid, &
+                                 name   = 'gll', &
+                                 xtype  = NF90_DOUBLE, &
+                                 dimids = nc_mesh_npol_dimid, &
+                                 varid  = ncout_mesh_gll_varid) )
+       call check( nf90_def_var( ncid   = ncout_mesh_grpid, &
+                                 name   = 'glj', &
+                                 xtype  = NF90_DOUBLE, &
+                                 dimids = nc_mesh_npol_dimid, &
+                                 varid  = ncout_mesh_glj_varid) )
     endif
 
 
@@ -638,6 +674,92 @@ program field_transformation
                                  count  = [nelem],                 &
                                  values = data_mesh))
        deallocate(data_mesh)
+
+       allocate(dp_data_1d(0:npol))
+
+       call check( nf90_inq_varid( ncid  = ncin_mesh_grpid,        &
+                                   varid = ncin_mesh_gll_varid, & 
+                                   name  = 'gll' ))
+
+       call check( nf90_get_var( ncid   = ncin_mesh_grpid,        &
+                                 varid  = ncin_mesh_gll_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d) )
+      
+       call check( nf90_put_var( ncid   = ncout_mesh_grpid,       &
+                                 varid  = ncout_mesh_gll_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d))
+
+       call check( nf90_inq_varid( ncid  = ncin_mesh_grpid,        &
+                                   varid = ncin_mesh_glj_varid, & 
+                                   name  = 'glj' ))
+
+       call check( nf90_get_var( ncid   = ncin_mesh_grpid,        &
+                                 varid  = ncin_mesh_glj_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d) )
+      
+       call check( nf90_put_var( ncid   = ncout_mesh_grpid,       &
+                                 varid  = ncout_mesh_glj_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d))
+
+       call check( nf90_inq_varid( ncid  = ncin_mesh_grpid,        &
+                                   varid = ncin_mesh_G0_varid, & 
+                                   name  = 'G0' ))
+
+       call check( nf90_get_var( ncid   = ncin_mesh_grpid,        &
+                                 varid  = ncin_mesh_G0_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d) )
+      
+       call check( nf90_put_var( ncid   = ncout_mesh_grpid,       &
+                                 varid  = ncout_mesh_G0_varid, &
+                                 start  = [1],                    & 
+                                 count  = [npol+1],                 &
+                                 values = dp_data_1d))
+
+       deallocate(dp_data_1d)
+
+       allocate(dp_data_2d(0:npol,0:npol))
+       call check( nf90_inq_varid( ncid  = ncin_mesh_grpid,        &
+                                   varid = ncin_mesh_G1_varid, & 
+                                   name  = 'G1' ))
+
+       call check( nf90_get_var( ncid   = ncin_mesh_grpid,        &
+                                 varid  = ncin_mesh_G1_varid, &
+                                 start  = [1,1],                    & 
+                                 count  = [npol+1, npol+1],     &
+                                 values = dp_data_2d) )
+      
+       call check( nf90_put_var( ncid   = ncout_mesh_grpid,       &
+                                 varid  = ncout_mesh_G1_varid, &
+                                 start  = [1,1],                    & 
+                                 count  = [npol+1, npol+1],     &
+                                 values = dp_data_2d))
+
+       call check( nf90_inq_varid( ncid  = ncin_mesh_grpid,        &
+                                   varid = ncin_mesh_G2_varid, & 
+                                   name  = 'G2' ))
+
+       call check( nf90_get_var( ncid   = ncin_mesh_grpid,        &
+                                 varid  = ncin_mesh_G2_varid, &
+                                 start  = [1,1],                    & 
+                                 count  = [npol+1, npol+1],     &
+                                 values = dp_data_2d) )
+      
+       call check( nf90_put_var( ncid   = ncout_mesh_grpid,       &
+                                 varid  = ncout_mesh_G2_varid, &
+                                 start  = [1,1],                    & 
+                                 count  = [npol+1, npol+1],     &
+                                 values = dp_data_2d))
+       deallocate(dp_data_2d)
     endif
 
     ! Done with the mesh
diff --git a/SOLVER/parameters.F90 b/SOLVER/parameters.F90
index 6091847..00491e1 100644
--- a/SOLVER/parameters.F90
+++ b/SOLVER/parameters.F90
@@ -1439,7 +1439,7 @@ subroutine write_parameters
     if ((mynum.eq.0).and.(use_netcdf)) then !Only proc0 has the netcdf file open at that point
         ! write generic simulation info file
         write(6,*) ' Writing simulation info to netcdf file attributes' 
-        call nc_write_att_int(  4,                     'file version')
+        call nc_write_att_int(  5,                     'file version')
         call nc_write_att_char( trim(bkgrdmodel),      'background model')
         call nc_write_att_int(  merge(1, 0, do_anel),  'attenuation') ! merge: hacky conversion of logical to int
         call nc_write_att_dble( router / 1000,         'planet radius')



More information about the CIG-COMMITS mailing list