1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
| // Generated automatically by cvmix.awk from
// /home/basilisk-src/local/src/CVMix-src/src/shared/cvmix_kpp.F90
typedef struct {
cvmix_r8 opaque0; // ri_crit
cvmix_r8 opaque1; // minobldepth
cvmix_r8 opaque2; // maxobldepth
cvmix_r8 opaque3; // minvtsqr
cvmix_r8 opaque4; // vonkarman
cvmix_r8 opaque5; // cstar
cvmix_r8 opaque6; // nonlocal_coeff
cvmix_r8 opaque7; // zeta_m
cvmix_r8 opaque8; // zeta_s
cvmix_r8 opaque9; // a_m
cvmix_r8 opaque10; // c_m
cvmix_r8 opaque11; // a_s
cvmix_r8 opaque12; // c_s
cvmix_r8 opaque13; // surf_layer_ext
integer opaque14; // interp_type
integer opaque15; // interp_type2
cvmix_r8 opaque16; // cv
integer opaque17; // matchtechnique
integer opaque18; // handle_old_vals
logical opaque19; // lscalar_cv
logical opaque20; // lekman
logical opaque21; // lmonob
logical opaque22; // lnodgat1
logical opaque23; // lenhanced_diff
integer opaque24; // langmuir_mixing_opt
integer opaque25; // langmuir_entrainment_opt
logical opaque26; // l_lmd_ws
cvmix_r8 opaque27; // c_lt
cvmix_r8 opaque28; // c_st
cvmix_r8 opaque29; // c_ct
cvmix_r8 opaque30; // p_lt
cvmix_r8 opaque31; // rwhgk_entr_coef
cvmix_r8 opaque32; // rwhgk_entr_exp
} cvmix_kpp_params_type;
extern void __cvmix_kpp_MOD_cvmix_init_kpp (
cvmix_r8 * ri_crit,
cvmix_r8 * minobldepth,
cvmix_r8 * maxobldepth,
cvmix_r8 * minvtsqr,
cvmix_r8 * vonkarman,
cvmix_r8 * cstar,
cvmix_r8 * zeta_m,
cvmix_r8 * zeta_s,
cvmix_r8 * surf_layer_ext,
cvmix_r8 * cv,
char * interp_type,
char * interp_type2,
char * matchtechnique,
char * old_vals,
logical * lekman,
logical * lmonob,
logical * lnodgat1,
logical * lenhanced_diff,
logical * lnonzero_surf_nonlocal,
char * langmuir_mixing_str,
char * langmuir_entrainment_str,
logical * l_lmd_ws,
cvmix_kpp_params_type * cvmix_kpp_params_user,
long int _slinterp_type,
long int _slinterp_type2,
long int _slmatchtechnique,
long int _slold_vals,
long int _sllangmuir_mixing_str,
long int _sllangmuir_entrainment_str
);
struct _cvmix_init_kpp {
cvmix_r8 * ri_crit;
cvmix_r8 * minobldepth;
cvmix_r8 * maxobldepth;
cvmix_r8 * minvtsqr;
cvmix_r8 * vonkarman;
cvmix_r8 * cstar;
cvmix_r8 * zeta_m;
cvmix_r8 * zeta_s;
cvmix_r8 * surf_layer_ext;
cvmix_r8 * cv;
char * interp_type;
char * interp_type2;
char * matchtechnique;
char * old_vals;
logical * lekman;
logical * lmonob;
logical * lnodgat1;
logical * lenhanced_diff;
logical * lnonzero_surf_nonlocal;
char * langmuir_mixing_str;
char * langmuir_entrainment_str;
logical * l_lmd_ws;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_init_kpp (struct _cvmix_init_kpp p) {
__cvmix_kpp_MOD_cvmix_init_kpp (p.ri_crit, p.minobldepth, p.maxobldepth, p.minvtsqr, p.vonkarman, p.cstar, p.zeta_m, p.zeta_s, p.surf_layer_ext, p.cv, p.interp_type, p.interp_type2, p.matchtechnique, p.old_vals, p.lekman, p.lmonob, p.lnodgat1, p.lenhanced_diff, p.lnonzero_surf_nonlocal, p.langmuir_mixing_str, p.langmuir_entrainment_str, p.l_lmd_ws, p.cvmix_kpp_params_user, strlencheck(p.interp_type), strlencheck(p.interp_type2), strlencheck(p.matchtechnique), strlencheck(p.old_vals), strlencheck(p.langmuir_mixing_str), strlencheck(p.langmuir_entrainment_str));
}
extern void __cvmix_kpp_MOD_cvmix_coeffs_kpp_wrap (
cvmix_data_type * cvmix_vars,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_coeffs_kpp_wrap {
cvmix_data_type * cvmix_vars;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_coeffs_kpp_wrap (struct _cvmix_coeffs_kpp_wrap p) {
__cvmix_kpp_MOD_cvmix_coeffs_kpp_wrap (p.cvmix_vars, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_coeffs_kpp_low (
cvmix_r8 * mdiff_out,
cvmix_r8 * tdiff_out,
cvmix_r8 * sdiff_out,
cvmix_r8 * zw,
cvmix_r8 * zt,
cvmix_r8 * old_mdiff,
cvmix_r8 * old_tdiff,
cvmix_r8 * old_sdiff,
cvmix_r8 * obl_depth,
cvmix_r8 * kobl_depth,
cvmix_r8 * tnonlocal,
cvmix_r8 * snonlocal,
cvmix_r8 * surf_fric,
cvmix_r8 * surf_buoy,
integer * nlev,
integer * max_nlev,
cvmix_r8 * langmuir_efactor,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_coeffs_kpp_low {
cvmix_r8 * mdiff_out;
cvmix_r8 * tdiff_out;
cvmix_r8 * sdiff_out;
cvmix_r8 * zw;
cvmix_r8 * zt;
cvmix_r8 * old_mdiff;
cvmix_r8 * old_tdiff;
cvmix_r8 * old_sdiff;
cvmix_r8 * obl_depth;
cvmix_r8 * kobl_depth;
cvmix_r8 * tnonlocal;
cvmix_r8 * snonlocal;
cvmix_r8 * surf_fric;
cvmix_r8 * surf_buoy;
integer * nlev;
integer * max_nlev;
cvmix_r8 * langmuir_efactor;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_coeffs_kpp_low (struct _cvmix_coeffs_kpp_low p) {
__cvmix_kpp_MOD_cvmix_coeffs_kpp_low (p.mdiff_out, p.tdiff_out, p.sdiff_out, p.zw, p.zt, p.old_mdiff, p.old_tdiff, p.old_sdiff, p.obl_depth, p.kobl_depth, p.tnonlocal, p.snonlocal, p.surf_fric, p.surf_buoy, p.nlev, p.max_nlev, p.langmuir_efactor, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_put_kpp_real (
char * varname,
cvmix_r8 * val,
cvmix_kpp_params_type * cvmix_kpp_params_user,
long int _slvarname
);
struct _cvmix_put_kpp_real {
char * varname;
cvmix_r8 * val;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_put_kpp_real (struct _cvmix_put_kpp_real p) {
__cvmix_kpp_MOD_cvmix_put_kpp_real (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname));
}
extern void __cvmix_kpp_MOD_cvmix_put_kpp_int (
char * varname,
integer * val,
cvmix_kpp_params_type * cvmix_kpp_params_user,
long int _slvarname
);
struct _cvmix_put_kpp_int {
char * varname;
integer * val;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_put_kpp_int (struct _cvmix_put_kpp_int p) {
__cvmix_kpp_MOD_cvmix_put_kpp_int (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname));
}
extern void __cvmix_kpp_MOD_cvmix_put_kpp_logical (
char * varname,
logical * val,
cvmix_kpp_params_type * cvmix_kpp_params_user,
long int _slvarname
);
struct _cvmix_put_kpp_logical {
char * varname;
logical * val;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_put_kpp_logical (struct _cvmix_put_kpp_logical p) {
__cvmix_kpp_MOD_cvmix_put_kpp_logical (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname));
}
extern cvmix_r8 __cvmix_kpp_MOD_cvmix_get_kpp_real (
char * varname,
cvmix_kpp_params_type * cvmix_kpp_params_user,
long int _slvarname
);
struct _cvmix_get_kpp_real {
char * varname;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
cvmix_r8 cvmix_get_kpp_real (struct _cvmix_get_kpp_real p) {
return __cvmix_kpp_MOD_cvmix_get_kpp_real (p.varname, p.cvmix_kpp_params_user, strlencheck(p.varname));
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_low (
cvmix_1d * ri_bulk,
cvmix_1d * zw_iface,
cvmix_r8 * obl_depth,
cvmix_r8 * kobl_depth,
cvmix_1d * zt_cntr,
cvmix_r8 * surf_fric,
cvmix_r8 * surf_buoy,
cvmix_r8 * coriolis,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_obl_depth_low {
cvmix_1d * ri_bulk;
cvmix_1d * zw_iface;
cvmix_r8 * obl_depth;
cvmix_r8 * kobl_depth;
cvmix_1d * zt_cntr;
cvmix_r8 * surf_fric;
cvmix_r8 * surf_buoy;
cvmix_r8 * coriolis;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_obl_depth_low (struct _cvmix_kpp_compute_obl_depth_low p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_low (p.ri_bulk, p.zw_iface, p.obl_depth, p.kobl_depth, p.zt_cntr, p.surf_fric, p.surf_buoy, p.coriolis, p.cvmix_kpp_params_user);
}
extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_compute_kobl_depth (
cvmix_1d * zw_iface,
cvmix_1d * zt_cntr,
cvmix_r8 * obl_depth
);
struct _cvmix_kpp_compute_kobl_depth {
cvmix_1d * zw_iface;
cvmix_1d * zt_cntr;
cvmix_r8 * obl_depth;
};
cvmix_r8 cvmix_kpp_compute_kobl_depth (struct _cvmix_kpp_compute_kobl_depth p) {
return __cvmix_kpp_MOD_cvmix_kpp_compute_kobl_depth (p.zw_iface, p.zt_cntr, p.obl_depth);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_enhanced_diff (
cvmix_r8 * mdiff_ktup,
cvmix_r8 * tdiff_ktup,
cvmix_r8 * sdiff_ktup,
cvmix_r8 * mdiff,
cvmix_r8 * tdiff,
cvmix_r8 * sdiff,
cvmix_r8 * obl_mdiff,
cvmix_r8 * obl_tdiff,
cvmix_r8 * obl_sdiff,
cvmix_r8 * tnonlocal,
cvmix_r8 * snonlocal,
cvmix_r8 * delta,
logical * lkteqkw
);
struct _cvmix_kpp_compute_enhanced_diff {
cvmix_r8 * mdiff_ktup;
cvmix_r8 * tdiff_ktup;
cvmix_r8 * sdiff_ktup;
cvmix_r8 * mdiff;
cvmix_r8 * tdiff;
cvmix_r8 * sdiff;
cvmix_r8 * obl_mdiff;
cvmix_r8 * obl_tdiff;
cvmix_r8 * obl_sdiff;
cvmix_r8 * tnonlocal;
cvmix_r8 * snonlocal;
cvmix_r8 * delta;
logical * lkteqkw;
};
void cvmix_kpp_compute_enhanced_diff (struct _cvmix_kpp_compute_enhanced_diff p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_enhanced_diff (p.mdiff_ktup, p.tdiff_ktup, p.sdiff_ktup, p.mdiff, p.tdiff, p.sdiff, p.obl_mdiff, p.obl_tdiff, p.obl_sdiff, p.tnonlocal, p.snonlocal, p.delta, p.lkteqkw);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_wrap (
cvmix_data_type * cvmix_vars,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_obl_depth_wrap {
cvmix_data_type * cvmix_vars;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_obl_depth_wrap (struct _cvmix_kpp_compute_obl_depth_wrap p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_wrap (p.cvmix_vars, p.cvmix_kpp_params_user);
}
extern void cvmix_kpp_mod_cvmix_kpp_compute_bulk_richardson_func_ (
cvmix_r8 * cvmix_kpp_compute_bulk_richardson,
cvmix_1d * zt_cntr,
cvmix_1d * delta_buoy_cntr,
cvmix_1d * delta_vsqr_cntr,
cvmix_r8 * vt_sqr_cntr,
cvmix_r8 * ws_cntr,
cvmix_r8 * n_iface,
cvmix_r8 * nsqr_iface,
cvmix_r8 * efactor,
cvmix_r8 * lasl,
cvmix_r8 * bfsfc,
cvmix_r8 * ustar,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_bulk_richardson {
cvmix_r8 * cvmix_kpp_compute_bulk_richardson;
cvmix_1d * zt_cntr;
cvmix_1d * delta_buoy_cntr;
cvmix_1d * delta_vsqr_cntr;
cvmix_r8 * vt_sqr_cntr;
cvmix_r8 * ws_cntr;
cvmix_r8 * n_iface;
cvmix_r8 * nsqr_iface;
cvmix_r8 * efactor;
cvmix_r8 * lasl;
cvmix_r8 * bfsfc;
cvmix_r8 * ustar;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_bulk_richardson (struct _cvmix_kpp_compute_bulk_richardson p) {
cvmix_kpp_mod_cvmix_kpp_compute_bulk_richardson_func_ (p.cvmix_kpp_compute_bulk_richardson, p.zt_cntr, p.delta_buoy_cntr, p.delta_vsqr_cntr, p.vt_sqr_cntr, p.ws_cntr, p.n_iface, p.nsqr_iface, p.efactor, p.lasl, p.bfsfc, p.ustar, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_0d (
cvmix_r8 * sigma_coord,
cvmix_r8 * obl_depth,
cvmix_r8 * surf_buoy_force,
cvmix_r8 * surf_fric_vel,
cvmix_r8 * w_m,
cvmix_r8 * w_s,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_turbulent_scales_0d {
cvmix_r8 * sigma_coord;
cvmix_r8 * obl_depth;
cvmix_r8 * surf_buoy_force;
cvmix_r8 * surf_fric_vel;
cvmix_r8 * w_m;
cvmix_r8 * w_s;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_turbulent_scales_0d (struct _cvmix_kpp_compute_turbulent_scales_0d p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_0d (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_sigma (
cvmix_1d * sigma_coord,
cvmix_r8 * obl_depth,
cvmix_r8 * surf_buoy_force,
cvmix_r8 * surf_fric_vel,
cvmix_r8 * w_m,
cvmix_r8 * w_s,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_turbulent_scales_1d_sigma {
cvmix_1d * sigma_coord;
cvmix_r8 * obl_depth;
cvmix_r8 * surf_buoy_force;
cvmix_r8 * surf_fric_vel;
cvmix_r8 * w_m;
cvmix_r8 * w_s;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_turbulent_scales_1d_sigma (struct _cvmix_kpp_compute_turbulent_scales_1d_sigma p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_sigma (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_obl (
cvmix_r8 * sigma_coord,
cvmix_1d * obl_depth,
cvmix_1d * surf_buoy_force,
cvmix_r8 * surf_fric_vel,
cvmix_r8 * w_m,
cvmix_r8 * w_s,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_turbulent_scales_1d_obl {
cvmix_r8 * sigma_coord;
cvmix_1d * obl_depth;
cvmix_1d * surf_buoy_force;
cvmix_r8 * surf_fric_vel;
cvmix_r8 * w_m;
cvmix_r8 * w_s;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_turbulent_scales_1d_obl (struct _cvmix_kpp_compute_turbulent_scales_1d_obl p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_obl (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user);
}
extern void cvmix_kpp_mod_cvmix_kpp_compute_unresolved_shear_func_ (
cvmix_r8 * cvmix_kpp_compute_unresolved_shear,
cvmix_1d * zt_cntr,
cvmix_1d * ws_cntr,
cvmix_r8 * n_iface,
cvmix_r8 * nsqr_iface,
cvmix_r8 * efactor,
cvmix_r8 * lasl,
cvmix_r8 * bfsfc,
cvmix_r8 * ustar,
cvmix_kpp_params_type * cvmix_kpp_params_user
);
struct _cvmix_kpp_compute_unresolved_shear {
cvmix_r8 * cvmix_kpp_compute_unresolved_shear;
cvmix_1d * zt_cntr;
cvmix_1d * ws_cntr;
cvmix_r8 * n_iface;
cvmix_r8 * nsqr_iface;
cvmix_r8 * efactor;
cvmix_r8 * lasl;
cvmix_r8 * bfsfc;
cvmix_r8 * ustar;
cvmix_kpp_params_type * cvmix_kpp_params_user;
};
void cvmix_kpp_compute_unresolved_shear (struct _cvmix_kpp_compute_unresolved_shear p) {
cvmix_kpp_mod_cvmix_kpp_compute_unresolved_shear_func_ (p.cvmix_kpp_compute_unresolved_shear, p.zt_cntr, p.ws_cntr, p.n_iface, p.nsqr_iface, p.efactor, p.lasl, p.bfsfc, p.ustar, p.cvmix_kpp_params_user);
}
extern void __cvmix_kpp_MOD_cvmix_kpp_compute_shape_function_coeffs (
cvmix_r8 * gat1,
cvmix_r8 * dgat1,
cvmix_r8 * coeffs
);
struct _cvmix_kpp_compute_shape_function_coeffs {
cvmix_r8 * gat1;
cvmix_r8 * dgat1;
cvmix_r8 * coeffs;
};
void cvmix_kpp_compute_shape_function_coeffs (struct _cvmix_kpp_compute_shape_function_coeffs p) {
__cvmix_kpp_MOD_cvmix_kpp_compute_shape_function_coeffs (p.gat1, p.dgat1, p.coeffs);
}
extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_compute_nu_at_obl_depth_lmd94 (
cvmix_r8 * depths_cntr,
cvmix_r8 * layer_widths,
cvmix_r8 * diffs_iface,
cvmix_r8 * obl_depth,
cvmix_r8 * diff_2above,
cvmix_r8 * dnu_dz
);
struct _cvmix_kpp_compute_nu_at_obl_depth_lmd94 {
cvmix_r8 * depths_cntr;
cvmix_r8 * layer_widths;
cvmix_r8 * diffs_iface;
cvmix_r8 * obl_depth;
cvmix_r8 * diff_2above;
cvmix_r8 * dnu_dz;
};
cvmix_r8 cvmix_kpp_compute_nu_at_obl_depth_lmd94 (struct _cvmix_kpp_compute_nu_at_obl_depth_lmd94 p) {
return __cvmix_kpp_MOD_cvmix_kpp_compute_nu_at_obl_depth_lmd94 (p.depths_cntr, p.layer_widths, p.diffs_iface, p.obl_depth, p.diff_2above, p.dnu_dz);
}
extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_efactor_model (
cvmix_r8 * u10,
cvmix_r8 * ustar,
cvmix_r8 * hbl,
cvmix_global_params_type * cvmix_params_in
);
struct _cvmix_kpp_efactor_model {
cvmix_r8 * u10;
cvmix_r8 * ustar;
cvmix_r8 * hbl;
cvmix_global_params_type * cvmix_params_in;
};
cvmix_r8 cvmix_kpp_efactor_model (struct _cvmix_kpp_efactor_model p) {
return __cvmix_kpp_MOD_cvmix_kpp_efactor_model (p.u10, p.ustar, p.hbl, p.cvmix_params_in);
}
extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_ustokes_sl_model (
cvmix_r8 * u10,
cvmix_r8 * hbl,
cvmix_global_params_type * cvmix_params_in
);
struct _cvmix_kpp_ustokes_sl_model {
cvmix_r8 * u10;
cvmix_r8 * hbl;
cvmix_global_params_type * cvmix_params_in;
};
cvmix_r8 cvmix_kpp_ustokes_sl_model (struct _cvmix_kpp_ustokes_sl_model p) {
return __cvmix_kpp_MOD_cvmix_kpp_ustokes_sl_model (p.u10, p.hbl, p.cvmix_params_in);
}
|