Yutong Zhao - 2022-09-17

Hello Dr. Moorkamp.

I am a graduate student who just starting to learn about joint inversion with your code.
After a few synthetic tests with “1dinvga", I find out a bug in gplib (actually the unreleased version gplib-code, because gplib-0.7.2 is a little too 'old' for my environment) while trying to use vrefmodel.
I've listed the details of the error and what might cause it below.

Error:
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)

Possible causes:
1dinvga.cpp: 445 : RefPkModel VRefModel

My Reason: "RefPkModel VRefModel" calls a constructor which does not assign(nlayers) for strike and dip, and the 'Init(nlayers)' in "ResPkModel::ReadModel()" is "SeismicModel::Init()" which does not assign for strike and dip either.

Since I haven't read all the source code yet (I'm still new to c++), I'm not sure how to fix this bug properly. And I hope to get your help.

Yutong