In [9]:
import os
os.environ['PATH'] = os.environ['PATH'] + ':' + '/home/fedor/Checkouts/esmf/DEFAULTINSTALLDIR/bin/binO/Linux.gfortran.64.mpiuni.default'

In [10]:
# This should show a missing source
!ESMF_RegridWeightGen


 ERROR: The required argument [-s|--source] is missing.

In [58]:
import netCDF4
src = netCDF4.Dataset('src.nc', mode='w', clobber=True)
src.createDimension('nodes', 10)
src.createDimension('elems', 13)
src.createDimension('three', 3)
mesh = src.createVariable('mesh', 'int32')
mesh.standard_name = 'mesh_topology'
mesh.dimension = 2
mesh.node_coordinates = "lon lat"
mesh.face_node_connectivity = "nv"

nv = src.createVariable("nv", "int32", dimensions=("elems", "three"))
nv.standard_name = "face_node_connectivity"
nv.start_index = 1

lon = src.createVariable("lon", "float", dimensions=("nodes",))
lon.standard_name = "longitude"
lon.units = "degrees_east" 

lat = src.createVariable("lat", "float", dimensions=("nodes",))
lat.standard_name = "latitude"
lat.units = "degrees_north" 
src.close()

dst = netCDF4.Dataset('dst.nc', mode='w', clobber=True)
dst.createDimension('nodes', 10)
dst.createDimension('elems', 13)
dst.createDimension('three', 3)
mesh = dst.createVariable('mesh', 'int32')
mesh.standard_name = 'mesh_topology'
mesh.dimension = 2
mesh.node_coordinates = "lon lat"
mesh.face_node_connectivity = "nv"

nv = dst.createVariable("nv", "int32", dimensions=("elems", "three"))
nv.standard_name = "face_node_connectivity"
nv.start_index = 1

lon = dst.createVariable("lon", "float", dimensions=("nodes",))
lon.standard_name = "longitude"
lon.units = "degrees_east" 

lat = dst.createVariable("lat", "float", dimensions=("nodes",))
lat.standard_name = "latitude"
lat.units = "degrees_north" 
dst.close()

In [60]:
%%bash
ncdump -h src.nc
rm PET*.RegridWeightGen.Log
ESMF_RegridWeightGen -s src.nc -d dst.nc --src_type UGRID --src_meshname mesh -m conserve --dst_type UGRID --dst_meshname mesh -w w.nc
cat PET*.RegridWeightGen.Log


netcdf src {
dimensions:
	nodes = 10 ;
	elems = 13 ;
	three = 3 ;
variables:
	int mesh ;
		mesh:standard_name = "mesh_topology" ;
		mesh:dimension = 2L ;
		mesh:node_coordinates = "lon lat" ;
		mesh:face_node_connectivity = "nv" ;
	int nv(elems, three) ;
		nv:standard_name = "face_node_connectivity" ;
		nv:start_index = 1L ;
	double lon(nodes) ;
		lon:standard_name = "longitude" ;
		lon:units = "degrees_east" ;
	double lat(nodes) ;
		lat:standard_name = "latitude" ;
		lat:units = "degrees_north" ;
}
 Starting weight generation with these inputs: 
   Source File: src.nc
   Destination File: dst.nc
   Weight File: w.nc
   Source File is in UGRID format, dummy variable: mesh
   Source Grid is a global grid
   Source Grid is an unstructured grid
   Destination File is in UGRID format, dummy variable: mesh
   Destination Grid is a global grid
   Destination Grid is an unstructured grid
   Regrid Method: conserve
   Pole option: NONE

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7FCD61454117
#1  0x7FCD614546F4
#2  0x7FCD610A90AF
#3  0x7FCD62CA949D
#4  0x7FCD62CADE31
#5  0x7FCD62CBEB9B
#6  0x40766B in esmf_regridweightgenapp at ESMF_RegridWeightGen.F90:623
bash: line 3:   875 Segmentation fault      (core dumped) ESMF_RegridWeightGen -s src.nc -d dst.nc --src_type UGRID --src_meshname mesh -m conserve --dst_type UGRID --dst_meshname mesh -w w.nc

In [ ]: