@@ -117,11 +117,12 @@ subroutine minpack_hybrd(fcn, n, x, fvec, xtol, maxfev, ml, mu, epsfcn, diag, mo
117
117
& factor, nprint, info, nfev, fjac, ldfjac, r, lr, qtf, wa1, wa2, wa3, wa4)
118
118
119
119
contains
120
- subroutine wrap_fcn (n , x , fvec , iflag )
120
+ subroutine wrap_fcn (n , x , fvec , iflag , user_data )
121
121
integer , intent (in ) :: n
122
122
real (wp), intent (in ) :: x(n)
123
123
real (wp), intent (out ) :: fvec(n)
124
124
integer , intent (inout ) :: iflag
125
+ class(* ), intent (inout ), optional :: user_data
125
126
126
127
call fcn(n, x, fvec, iflag, udata)
127
128
end subroutine wrap_fcn
@@ -142,11 +143,12 @@ subroutine minpack_hybrd1(fcn, n, x, Fvec, Tol, Info, Wa, Lwa, udata) &
142
143
call hybrd1(wrap_fcn, n, x, fvec, tol, info, Wa, Lwa)
143
144
144
145
contains
145
- subroutine wrap_fcn (n , x , fvec , iflag )
146
+ subroutine wrap_fcn (n , x , fvec , iflag , user_data )
146
147
integer , intent (in ) :: n
147
148
real (wp), intent (in ) :: x(n)
148
149
real (wp), intent (out ) :: fvec(n)
149
150
integer , intent (inout ) :: iflag
151
+ class(* ), intent (inout ), optional :: user_data
150
152
151
153
call fcn(n, x, fvec, iflag, udata)
152
154
end subroutine wrap_fcn
@@ -183,13 +185,14 @@ subroutine minpack_hybrj(fcn, n, x, fvec, fjac, ldfjac, xtol, maxfev, diag, mode
183
185
& factor, nprint, info, nfev, njev, r, lr, qtf, wa1, wa2, wa3, wa4)
184
186
185
187
contains
186
- subroutine wrap_fcn (n , x , fvec , fjac , ldfjac , iflag )
188
+ subroutine wrap_fcn (n , x , fvec , fjac , ldfjac , iflag , user_data )
187
189
integer , intent (in ) :: n
188
190
real (wp), intent (in ) :: x(n)
189
191
integer , intent (in ) :: ldfjac
190
192
real (wp), intent (out ) :: fvec(n)
191
193
real (wp), intent (out ) :: fjac(ldfjac, n)
192
194
integer , intent (inout ) :: iflag
195
+ class(* ), intent (inout ), optional :: user_data
193
196
194
197
call fcn(n, x, fvec, fjac, ldfjac, iflag, udata)
195
198
end subroutine wrap_fcn
@@ -212,13 +215,14 @@ subroutine minpack_hybrj1(fcn, n, x, fvec, fjac, ldfjac, tol, info, wa, lwa, uda
212
215
call hybrj1(wrap_fcn, n, x, fvec, fjac, ldfjac, tol, info, wa, lwa)
213
216
214
217
contains
215
- subroutine wrap_fcn (n , x , fvec , fjac , ldfjac , iflag )
218
+ subroutine wrap_fcn (n , x , fvec , fjac , ldfjac , iflag , user_data )
216
219
integer , intent (in ) :: n
217
220
real (wp), intent (in ) :: x(n)
218
221
integer , intent (in ) :: ldfjac
219
222
real (wp), intent (out ) :: fvec(n)
220
223
real (wp), intent (out ) :: fjac(ldfjac, n)
221
224
integer , intent (inout ) :: iflag
225
+ class(* ), intent (inout ), optional :: user_data
222
226
223
227
call fcn(n, x, fvec, fjac, ldfjac, iflag, udata)
224
228
end subroutine wrap_fcn
@@ -258,12 +262,13 @@ subroutine minpack_lmdif(fcn, m, n, x, fvec, ftol, xtol, gtol, maxfev, epsfcn, d
258
262
& mode, factor, nprint, info, nfev, fjac, ldfjac, ipvt, qtf, wa1, wa2, wa3, wa4)
259
263
260
264
contains
261
- subroutine wrap_fcn (m , n , x , fvec , iflag )
265
+ subroutine wrap_fcn (m , n , x , fvec , iflag , user_data )
262
266
integer , intent (in ) :: m
263
267
integer , intent (in ) :: n
264
268
real (wp), intent (in ) :: x(n)
265
269
real (wp), intent (out ) :: fvec(m)
266
270
integer , intent (inout ) :: iflag
271
+ class(* ), intent (inout ), optional :: user_data
267
272
268
273
call fcn(m, n, x, fvec, iflag, udata)
269
274
end subroutine wrap_fcn
@@ -286,12 +291,13 @@ subroutine minpack_lmdif1(fcn, m, n, x, fvec, tol, info, iwa, wa, lwa, udata) &
286
291
call lmdif1(wrap_fcn, m, n, x, fvec, tol, info, iwa, wa, lwa)
287
292
288
293
contains
289
- subroutine wrap_fcn (m , n , x , fvec , iflag )
294
+ subroutine wrap_fcn (m , n , x , fvec , iflag , user_data )
290
295
integer , intent (in ) :: m
291
296
integer , intent (in ) :: n
292
297
real (wp), intent (in ) :: x(n)
293
298
real (wp), intent (out ) :: fvec(m)
294
299
integer , intent (inout ) :: iflag
300
+ class(* ), intent (inout ), optional :: user_data
295
301
296
302
call fcn(m, n, x, fvec, iflag, udata)
297
303
end subroutine wrap_fcn
@@ -331,14 +337,15 @@ subroutine minpack_lmder(fcn, m, n, x, fvec, fjac, ldfjac, ftol, xtol, gtol, max
331
337
& diag, mode, factor, nprint, info, nfev, njev, ipvt, qtf, wa1, wa2, wa3, wa4)
332
338
333
339
contains
334
- subroutine wrap_fcn (m , n , x , fvec , fjac , ldfjac , iflag )
340
+ subroutine wrap_fcn (m , n , x , fvec , fjac , ldfjac , iflag , user_data )
335
341
integer , intent (in ) :: m
336
342
integer , intent (in ) :: n
337
343
integer , intent (in ) :: ldfjac
338
344
integer , intent (inout ) :: iflag
339
345
real (wp), intent (in ) :: x(n)
340
346
real (wp), intent (inout ) :: fvec(m)
341
347
real (wp), intent (inout ) :: fjac(ldfjac, n)
348
+ class(* ), intent (inout ), optional :: user_data
342
349
343
350
call fcn(m, n, x, fvec, fjac, ldfjac, iflag, udata)
344
351
end subroutine wrap_fcn
@@ -364,14 +371,15 @@ subroutine minpack_lmder1(fcn, m, n, x, Fvec, Fjac, Ldfjac, Tol, Info, Ipvt, Wa,
364
371
call lmder1(wrap_fcn, m, n, x, Fvec, Fjac, Ldfjac, Tol, Info, Ipvt, Wa, Lwa)
365
372
366
373
contains
367
- subroutine wrap_fcn (m , n , x , fvec , fjac , ldfjac , iflag )
374
+ subroutine wrap_fcn (m , n , x , fvec , fjac , ldfjac , iflag , user_data )
368
375
integer , intent (in ) :: m
369
376
integer , intent (in ) :: n
370
377
integer , intent (in ) :: ldfjac
371
378
integer , intent (inout ) :: iflag
372
379
real (wp), intent (in ) :: x(n)
373
380
real (wp), intent (inout ) :: fvec(m)
374
381
real (wp), intent (inout ) :: fjac(ldfjac, n)
382
+ class(* ), intent (inout ), optional :: user_data
375
383
376
384
call fcn(m, n, x, fvec, fjac, ldfjac, iflag, udata)
377
385
end subroutine wrap_fcn
@@ -410,13 +418,14 @@ subroutine minpack_lmstr(fcn, m, n, x, fvec, fjac, ldfjac, ftol, xtol, gtol, max
410
418
call lmstr(wrap_fcn, m, n, x, fvec, fjac, ldfjac, ftol, xtol, gtol, maxfev, &
411
419
& diag, mode, factor, nprint, info, nfev, njev, ipvt, qtf, wa1, wa2, wa3, wa4)
412
420
contains
413
- subroutine wrap_fcn (m , n , x , fvec , fjrow , iflag )
421
+ subroutine wrap_fcn (m , n , x , fvec , fjrow , iflag , user_data )
414
422
integer , intent (in ) :: m
415
423
integer , intent (in ) :: n
416
424
integer , intent (inout ) :: iflag
417
425
real (wp), intent (in ) :: x(n)
418
426
real (wp), intent (inout ) :: fvec(m)
419
427
real (wp), intent (inout ) :: fjrow(n)
428
+ class(* ), intent (inout ), optional :: user_data
420
429
421
430
call fcn(m, n, x, fvec, fjrow, iflag, udata)
422
431
end subroutine wrap_fcn
@@ -441,13 +450,14 @@ subroutine minpack_lmstr1(fcn, m, n, x, fvec, fjac, ldfjac, tol, info, ipvt, wa,
441
450
442
451
call lmstr1(wrap_fcn, m, n, x, fvec, fjac, ldfjac, tol, info, ipvt, wa, lwa)
443
452
contains
444
- subroutine wrap_fcn (m , n , x , fvec , fjrow , iflag )
453
+ subroutine wrap_fcn (m , n , x , fvec , fjrow , iflag , user_data )
445
454
integer , intent (in ) :: m
446
455
integer , intent (in ) :: n
447
456
integer , intent (inout ) :: iflag
448
457
real (wp), intent (in ) :: x(n)
449
458
real (wp), intent (inout ) :: fvec(m)
450
459
real (wp), intent (inout ) :: fjrow(n)
460
+ class(* ), intent (inout ), optional :: user_data
451
461
452
462
call fcn(m, n, x, fvec, fjrow, iflag, udata)
453
463
end subroutine wrap_fcn
0 commit comments