@@ -738,7 +738,7 @@ void ESMCI_meshaddelements(Mesh **meshpp,
738
738
int * _num_elems , int * elemId , int * elemType , InterArray < int > * _elemMaskII ,
739
739
int * _areaPresent , double * elemArea ,
740
740
int * _elemCoordsPresent , double * elemCoords ,
741
- int * _num_elemConn , int * elemConn ,
741
+ int * _elemConn_size , int * elemConn ,
742
742
ESMC_CoordSys_Flag * _coordSys , int * _orig_sdim ,
743
743
int * rc )
744
744
#undef ESMC_METHOD
@@ -767,8 +767,6 @@ void ESMCI_meshaddelements(Mesh **meshpp,
767
767
768
768
int num_elems = * _num_elems ;
769
769
770
- int num_elemConn = * _num_elemConn ;
771
-
772
770
InterArray < int > * elemMaskII = _elemMaskII ;
773
771
774
772
int areaPresent = * _areaPresent ;
@@ -807,27 +805,29 @@ void ESMCI_meshaddelements(Mesh **meshpp,
807
805
}
808
806
809
807
810
- //// Check size of connectivity list
811
- int expected_conn_size = 0 ;
808
+ //// Calc size of connectivity list
809
+ int num_elemConn = 0 ;
812
810
if (parametric_dim == 2 ) {
813
811
for (int i = 0 ; i < num_elems ; i ++ ) {
814
- expected_conn_size += elemType [i ];
812
+ num_elemConn += elemType [i ];
815
813
}
816
814
} else if (parametric_dim == 3 ) {
817
815
for (int i = 0 ; i < num_elems ; i ++ ) {
818
- if (elemType [i ]== 10 ) expected_conn_size += 4 ;
819
- else if (elemType [i ]== 12 ) expected_conn_size += 8 ;
816
+ if (elemType [i ]== 10 ) num_elemConn += 4 ;
817
+ else if (elemType [i ]== 12 ) num_elemConn += 8 ;
820
818
}
821
819
}
822
820
823
- if (expected_conn_size != num_elemConn ) {
824
- int localrc ;
825
- if (ESMC_LogDefault .MsgFoundError (ESMC_RC_ARG_VALUE ,
826
- "- element connectivity list doesn't contain the right number of entries " ,
827
- ESMC_CONTEXT , & localrc )) throw localrc ;
821
+ /// If size of array is available, make sure it matches
822
+ if (_elemConn_size != NULL ) {
823
+ if (* _elemConn_size != num_elemConn ) {
824
+ int localrc ;
825
+ if (ESMC_LogDefault .MsgFoundError (ESMC_RC_ARG_VALUE ,
826
+ "element connectivity list doesn't contain the right number of entries " ,
827
+ ESMC_CONTEXT , & localrc )) throw localrc ;
828
+ }
828
829
}
829
830
830
-
831
831
// Error check size of elements
832
832
if (parametric_dim == 2 ) {
833
833
int conn_pos = 0 ;
0 commit comments