OpenFAST
Wind turbine multiphysics simulator
Functions/Subroutines | Variables
beamdyn_io Module Reference

This module contains the input/output parameters and routines for the BeamDyn module. More...

Functions/Subroutines

subroutine bd_readinput (InputFileName, InputFileData, OutFileRoot, Default_DT, ErrStat, ErrMsg)
 
subroutine bd_readprimaryfile (InputFile, InputFileData, OutFileRoot, UnEc, ErrStat, ErrMsg)
 This routine reads in the primary BeamDyn input file and places the values it reads in the InputFileData structure. More...
 
subroutine bd_readbladefile (BldFile, BladeInputFileData, UnEc, ErrStat, ErrMsg)
 
subroutine setoutparam (OutList, p, ErrStat, ErrMsg)
 This routine checks to see if any requested output channel names (stored in the OutList(:)) are invalid. More...
 
subroutine bd_validateinputdata (InitInp, InputFileData, ErrStat, ErrMsg)
 This routine validates the inputs from the BeamDyn input files. More...
 
subroutine calc_writeoutput (p, AllOuts, y, m, ErrStat, ErrMsg, CalcWriteOutput)
 this routine fills the AllOuts array, which is used to send data to the glue code to be written to an output file. More...
 
subroutine bd_printsum (p, x, m, InitInp, ErrStat, ErrMsg)
 This routine generates the summary file, which contains a regurgitation of the input data and interpolated flexible body data. More...
 
subroutine init_jacobian (p, u, y, m, InitOut, ErrStat, ErrMsg)
 This routine initializes the array that maps rows/columns of the Jacobian to specific mesh fields. More...
 
subroutine init_jacobian_y (p, y, InitOut, ErrStat, ErrMsg)
 This routine initializes the Jacobian parameters and initialization outputs for the linearized outputs. More...
 
subroutine init_jacobian_x_z (p, InitOut, ErrStat, ErrMsg)
 This routine initializes the Jacobian parameters and initialization outputs for the linearized continuous states. More...
 
subroutine perturb_u (p, n, perturb_sign, u, du)
 This routine perturbs the nth element of the u array (and mesh/field it corresponds to) Do not change this without making sure subroutine beamdyn::init_jacobian is consistant with this routine! More...
 
subroutine compute_dy (p, y_p, y_m, delta, dY)
 This routine uses values of two output types to compute an array of differences. More...
 
subroutine perturb_x (p, fieldIndx, node, dof, perturb_sign, x, dx)
 This routine perturbs the nth element of the x array (and mesh/field it corresponds to) Do not change this without making sure subroutine beamdyn::init_jacobian is consistant with this routine! More...
 
subroutine compute_dx (p, x_p, x_m, delta, dX)
 This routine uses values of two output types to compute an array of differences. More...
 
subroutine compute_relstate_matrix (p, u, x, RelState_x, RelState_xdot)
 This routine uses values of two output types to compute an array of differences. More...
 

Variables

type(progdesc), parameter beamdyn_ver = ProgDesc('BeamDyn', '', '')
 
real(siki), parameter mass0tol = 1E-3
 
integer(intki), parameter outstrlenm1 = ChanLen - 1
 
integer(intki), parameter time = 0
 
integer(intki), parameter rootfxr = 1
 
integer(intki), parameter rootfyr = 2
 
integer(intki), parameter rootfzr = 3
 
integer(intki), parameter rootmxr = 4
 
integer(intki), parameter rootmyr = 5
 
integer(intki), parameter rootmzr = 6
 
integer(intki), parameter tiptdxr = 7
 
integer(intki), parameter tiptdyr = 8
 
integer(intki), parameter tiptdzr = 9
 
integer(intki), parameter tiprdxr = 10
 
integer(intki), parameter tiprdyr = 11
 
integer(intki), parameter tiprdzr = 12
 
integer(intki), parameter tiptvxg = 13
 
integer(intki), parameter tiptvyg = 14
 
integer(intki), parameter tiptvzg = 15
 
integer(intki), parameter tiprvxg = 16
 
integer(intki), parameter tiprvyg = 17
 
integer(intki), parameter tiprvzg = 18
 
integer(intki), parameter tiptaxl = 19
 
integer(intki), parameter tiptayl = 20
 
integer(intki), parameter tiptazl = 21
 
integer(intki), parameter tipraxl = 22
 
integer(intki), parameter tiprayl = 23
 
integer(intki), parameter tiprazl = 24
 
integer(intki), parameter n1fxl = 25
 
integer(intki), parameter n1fyl = 26
 
integer(intki), parameter n1fzl = 27
 
integer(intki), parameter n2fxl = 28
 
integer(intki), parameter n2fyl = 29
 
integer(intki), parameter n2fzl = 30
 
integer(intki), parameter n3fxl = 31
 
integer(intki), parameter n3fyl = 32
 
integer(intki), parameter n3fzl = 33
 
integer(intki), parameter n4fxl = 34
 
integer(intki), parameter n4fyl = 35
 
integer(intki), parameter n4fzl = 36
 
integer(intki), parameter n5fxl = 37
 
integer(intki), parameter n5fyl = 38
 
integer(intki), parameter n5fzl = 39
 
integer(intki), parameter n6fxl = 40
 
integer(intki), parameter n6fyl = 41
 
integer(intki), parameter n6fzl = 42
 
integer(intki), parameter n7fxl = 43
 
integer(intki), parameter n7fyl = 44
 
integer(intki), parameter n7fzl = 45
 
integer(intki), parameter n8fxl = 46
 
integer(intki), parameter n8fyl = 47
 
integer(intki), parameter n8fzl = 48
 
integer(intki), parameter n9fxl = 49
 
integer(intki), parameter n9fyl = 50
 
integer(intki), parameter n9fzl = 51
 
integer(intki), parameter n1mxl = 52
 
integer(intki), parameter n1myl = 53
 
integer(intki), parameter n1mzl = 54
 
integer(intki), parameter n2mxl = 55
 
integer(intki), parameter n2myl = 56
 
integer(intki), parameter n2mzl = 57
 
integer(intki), parameter n3mxl = 58
 
integer(intki), parameter n3myl = 59
 
integer(intki), parameter n3mzl = 60
 
integer(intki), parameter n4mxl = 61
 
integer(intki), parameter n4myl = 62
 
integer(intki), parameter n4mzl = 63
 
integer(intki), parameter n5mxl = 64
 
integer(intki), parameter n5myl = 65
 
integer(intki), parameter n5mzl = 66
 
integer(intki), parameter n6mxl = 67
 
integer(intki), parameter n6myl = 68
 
integer(intki), parameter n6mzl = 69
 
integer(intki), parameter n7mxl = 70
 
integer(intki), parameter n7myl = 71
 
integer(intki), parameter n7mzl = 72
 
integer(intki), parameter n8mxl = 73
 
integer(intki), parameter n8myl = 74
 
integer(intki), parameter n8mzl = 75
 
integer(intki), parameter n9mxl = 76
 
integer(intki), parameter n9myl = 77
 
integer(intki), parameter n9mzl = 78
 
integer(intki), parameter n1tdxr = 79
 
integer(intki), parameter n1tdyr = 80
 
integer(intki), parameter n1tdzr = 81
 
integer(intki), parameter n2tdxr = 82
 
integer(intki), parameter n2tdyr = 83
 
integer(intki), parameter n2tdzr = 84
 
integer(intki), parameter n3tdxr = 85
 
integer(intki), parameter n3tdyr = 86
 
integer(intki), parameter n3tdzr = 87
 
integer(intki), parameter n4tdxr = 88
 
integer(intki), parameter n4tdyr = 89
 
integer(intki), parameter n4tdzr = 90
 
integer(intki), parameter n5tdxr = 91
 
integer(intki), parameter n5tdyr = 92
 
integer(intki), parameter n5tdzr = 93
 
integer(intki), parameter n6tdxr = 94
 
integer(intki), parameter n6tdyr = 95
 
integer(intki), parameter n6tdzr = 96
 
integer(intki), parameter n7tdxr = 97
 
integer(intki), parameter n7tdyr = 98
 
integer(intki), parameter n7tdzr = 99
 
integer(intki), parameter n8tdxr = 100
 
integer(intki), parameter n8tdyr = 101
 
integer(intki), parameter n8tdzr = 102
 
integer(intki), parameter n9tdxr = 103
 
integer(intki), parameter n9tdyr = 104
 
integer(intki), parameter n9tdzr = 105
 
integer(intki), parameter n1rdxr = 106
 
integer(intki), parameter n1rdyr = 107
 
integer(intki), parameter n1rdzr = 108
 
integer(intki), parameter n2rdxr = 109
 
integer(intki), parameter n2rdyr = 110
 
integer(intki), parameter n2rdzr = 111
 
integer(intki), parameter n3rdxr = 112
 
integer(intki), parameter n3rdyr = 113
 
integer(intki), parameter n3rdzr = 114
 
integer(intki), parameter n4rdxr = 115
 
integer(intki), parameter n4rdyr = 116
 
integer(intki), parameter n4rdzr = 117
 
integer(intki), parameter n5rdxr = 118
 
integer(intki), parameter n5rdyr = 119
 
integer(intki), parameter n5rdzr = 120
 
integer(intki), parameter n6rdxr = 121
 
integer(intki), parameter n6rdyr = 122
 
integer(intki), parameter n6rdzr = 123
 
integer(intki), parameter n7rdxr = 124
 
integer(intki), parameter n7rdyr = 125
 
integer(intki), parameter n7rdzr = 126
 
integer(intki), parameter n8rdxr = 127
 
integer(intki), parameter n8rdyr = 128
 
integer(intki), parameter n8rdzr = 129
 
integer(intki), parameter n9rdxr = 130
 
integer(intki), parameter n9rdyr = 131
 
integer(intki), parameter n9rdzr = 132
 
integer(intki), parameter n1tvxg = 133
 
integer(intki), parameter n1tvyg = 134
 
integer(intki), parameter n1tvzg = 135
 
integer(intki), parameter n2tvxg = 136
 
integer(intki), parameter n2tvyg = 137
 
integer(intki), parameter n2tvzg = 138
 
integer(intki), parameter n3tvxg = 139
 
integer(intki), parameter n3tvyg = 140
 
integer(intki), parameter n3tvzg = 141
 
integer(intki), parameter n4tvxg = 142
 
integer(intki), parameter n4tvyg = 143
 
integer(intki), parameter n4tvzg = 144
 
integer(intki), parameter n5tvxg = 145
 
integer(intki), parameter n5tvyg = 146
 
integer(intki), parameter n5tvzg = 147
 
integer(intki), parameter n6tvxg = 148
 
integer(intki), parameter n6tvyg = 149
 
integer(intki), parameter n6tvzg = 150
 
integer(intki), parameter n7tvxg = 151
 
integer(intki), parameter n7tvyg = 152
 
integer(intki), parameter n7tvzg = 153
 
integer(intki), parameter n8tvxg = 154
 
integer(intki), parameter n8tvyg = 155
 
integer(intki), parameter n8tvzg = 156
 
integer(intki), parameter n9tvxg = 157
 
integer(intki), parameter n9tvyg = 158
 
integer(intki), parameter n9tvzg = 159
 
integer(intki), parameter n1rvxg = 160
 
integer(intki), parameter n1rvyg = 161
 
integer(intki), parameter n1rvzg = 162
 
integer(intki), parameter n2rvxg = 163
 
integer(intki), parameter n2rvyg = 164
 
integer(intki), parameter n2rvzg = 165
 
integer(intki), parameter n3rvxg = 166
 
integer(intki), parameter n3rvyg = 167
 
integer(intki), parameter n3rvzg = 168
 
integer(intki), parameter n4rvxg = 169
 
integer(intki), parameter n4rvyg = 170
 
integer(intki), parameter n4rvzg = 171
 
integer(intki), parameter n5rvxg = 172
 
integer(intki), parameter n5rvyg = 173
 
integer(intki), parameter n5rvzg = 174
 
integer(intki), parameter n6rvxg = 175
 
integer(intki), parameter n6rvyg = 176
 
integer(intki), parameter n6rvzg = 177
 
integer(intki), parameter n7rvxg = 178
 
integer(intki), parameter n7rvyg = 179
 
integer(intki), parameter n7rvzg = 180
 
integer(intki), parameter n8rvxg = 181
 
integer(intki), parameter n8rvyg = 182
 
integer(intki), parameter n8rvzg = 183
 
integer(intki), parameter n9rvxg = 184
 
integer(intki), parameter n9rvyg = 185
 
integer(intki), parameter n9rvzg = 186
 
integer(intki), parameter n1taxl = 187
 
integer(intki), parameter n1tayl = 188
 
integer(intki), parameter n1tazl = 189
 
integer(intki), parameter n2taxl = 190
 
integer(intki), parameter n2tayl = 191
 
integer(intki), parameter n2tazl = 192
 
integer(intki), parameter n3taxl = 193
 
integer(intki), parameter n3tayl = 194
 
integer(intki), parameter n3tazl = 195
 
integer(intki), parameter n4taxl = 196
 
integer(intki), parameter n4tayl = 197
 
integer(intki), parameter n4tazl = 198
 
integer(intki), parameter n5taxl = 199
 
integer(intki), parameter n5tayl = 200
 
integer(intki), parameter n5tazl = 201
 
integer(intki), parameter n6taxl = 202
 
integer(intki), parameter n6tayl = 203
 
integer(intki), parameter n6tazl = 204
 
integer(intki), parameter n7taxl = 205
 
integer(intki), parameter n7tayl = 206
 
integer(intki), parameter n7tazl = 207
 
integer(intki), parameter n8taxl = 208
 
integer(intki), parameter n8tayl = 209
 
integer(intki), parameter n8tazl = 210
 
integer(intki), parameter n9taxl = 211
 
integer(intki), parameter n9tayl = 212
 
integer(intki), parameter n9tazl = 213
 
integer(intki), parameter n1raxl = 214
 
integer(intki), parameter n1rayl = 215
 
integer(intki), parameter n1razl = 216
 
integer(intki), parameter n2raxl = 217
 
integer(intki), parameter n2rayl = 218
 
integer(intki), parameter n2razl = 219
 
integer(intki), parameter n3raxl = 220
 
integer(intki), parameter n3rayl = 221
 
integer(intki), parameter n3razl = 222
 
integer(intki), parameter n4raxl = 223
 
integer(intki), parameter n4rayl = 224
 
integer(intki), parameter n4razl = 225
 
integer(intki), parameter n5raxl = 226
 
integer(intki), parameter n5rayl = 227
 
integer(intki), parameter n5razl = 228
 
integer(intki), parameter n6raxl = 229
 
integer(intki), parameter n6rayl = 230
 
integer(intki), parameter n6razl = 231
 
integer(intki), parameter n7raxl = 232
 
integer(intki), parameter n7rayl = 233
 
integer(intki), parameter n7razl = 234
 
integer(intki), parameter n8raxl = 235
 
integer(intki), parameter n8rayl = 236
 
integer(intki), parameter n8razl = 237
 
integer(intki), parameter n9raxl = 238
 
integer(intki), parameter n9rayl = 239
 
integer(intki), parameter n9razl = 240
 
integer(intki), parameter n1pfxl = 241
 
integer(intki), parameter n1pfyl = 242
 
integer(intki), parameter n1pfzl = 243
 
integer(intki), parameter n2pfxl = 244
 
integer(intki), parameter n2pfyl = 245
 
integer(intki), parameter n2pfzl = 246
 
integer(intki), parameter n3pfxl = 247
 
integer(intki), parameter n3pfyl = 248
 
integer(intki), parameter n3pfzl = 249
 
integer(intki), parameter n4pfxl = 250
 
integer(intki), parameter n4pfyl = 251
 
integer(intki), parameter n4pfzl = 252
 
integer(intki), parameter n5pfxl = 253
 
integer(intki), parameter n5pfyl = 254
 
integer(intki), parameter n5pfzl = 255
 
integer(intki), parameter n6pfxl = 256
 
integer(intki), parameter n6pfyl = 257
 
integer(intki), parameter n6pfzl = 258
 
integer(intki), parameter n7pfxl = 259
 
integer(intki), parameter n7pfyl = 260
 
integer(intki), parameter n7pfzl = 261
 
integer(intki), parameter n8pfxl = 262
 
integer(intki), parameter n8pfyl = 263
 
integer(intki), parameter n8pfzl = 264
 
integer(intki), parameter n9pfxl = 265
 
integer(intki), parameter n9pfyl = 266
 
integer(intki), parameter n9pfzl = 267
 
integer(intki), parameter n1pmxl = 268
 
integer(intki), parameter n1pmyl = 269
 
integer(intki), parameter n1pmzl = 270
 
integer(intki), parameter n2pmxl = 271
 
integer(intki), parameter n2pmyl = 272
 
integer(intki), parameter n2pmzl = 273
 
integer(intki), parameter n3pmxl = 274
 
integer(intki), parameter n3pmyl = 275
 
integer(intki), parameter n3pmzl = 276
 
integer(intki), parameter n4pmxl = 277
 
integer(intki), parameter n4pmyl = 278
 
integer(intki), parameter n4pmzl = 279
 
integer(intki), parameter n5pmxl = 280
 
integer(intki), parameter n5pmyl = 281
 
integer(intki), parameter n5pmzl = 282
 
integer(intki), parameter n6pmxl = 283
 
integer(intki), parameter n6pmyl = 284
 
integer(intki), parameter n6pmzl = 285
 
integer(intki), parameter n7pmxl = 286
 
integer(intki), parameter n7pmyl = 287
 
integer(intki), parameter n7pmzl = 288
 
integer(intki), parameter n8pmxl = 289
 
integer(intki), parameter n8pmyl = 290
 
integer(intki), parameter n8pmzl = 291
 
integer(intki), parameter n9pmxl = 292
 
integer(intki), parameter n9pmyl = 293
 
integer(intki), parameter n9pmzl = 294
 
integer(intki), parameter n1dfxl = 295
 
integer(intki), parameter n1dfyl = 296
 
integer(intki), parameter n1dfzl = 297
 
integer(intki), parameter n2dfxl = 298
 
integer(intki), parameter n2dfyl = 299
 
integer(intki), parameter n2dfzl = 300
 
integer(intki), parameter n3dfxl = 301
 
integer(intki), parameter n3dfyl = 302
 
integer(intki), parameter n3dfzl = 303
 
integer(intki), parameter n4dfxl = 304
 
integer(intki), parameter n4dfyl = 305
 
integer(intki), parameter n4dfzl = 306
 
integer(intki), parameter n5dfxl = 307
 
integer(intki), parameter n5dfyl = 308
 
integer(intki), parameter n5dfzl = 309
 
integer(intki), parameter n6dfxl = 310
 
integer(intki), parameter n6dfyl = 311
 
integer(intki), parameter n6dfzl = 312
 
integer(intki), parameter n7dfxl = 313
 
integer(intki), parameter n7dfyl = 314
 
integer(intki), parameter n7dfzl = 315
 
integer(intki), parameter n8dfxl = 316
 
integer(intki), parameter n8dfyl = 317
 
integer(intki), parameter n8dfzl = 318
 
integer(intki), parameter n9dfxl = 319
 
integer(intki), parameter n9dfyl = 320
 
integer(intki), parameter n9dfzl = 321
 
integer(intki), parameter n1dmxl = 322
 
integer(intki), parameter n1dmyl = 323
 
integer(intki), parameter n1dmzl = 324
 
integer(intki), parameter n2dmxl = 325
 
integer(intki), parameter n2dmyl = 326
 
integer(intki), parameter n2dmzl = 327
 
integer(intki), parameter n3dmxl = 328
 
integer(intki), parameter n3dmyl = 329
 
integer(intki), parameter n3dmzl = 330
 
integer(intki), parameter n4dmxl = 331
 
integer(intki), parameter n4dmyl = 332
 
integer(intki), parameter n4dmzl = 333
 
integer(intki), parameter n5dmxl = 334
 
integer(intki), parameter n5dmyl = 335
 
integer(intki), parameter n5dmzl = 336
 
integer(intki), parameter n6dmxl = 337
 
integer(intki), parameter n6dmyl = 338
 
integer(intki), parameter n6dmzl = 339
 
integer(intki), parameter n7dmxl = 340
 
integer(intki), parameter n7dmyl = 341
 
integer(intki), parameter n7dmzl = 342
 
integer(intki), parameter n8dmxl = 343
 
integer(intki), parameter n8dmyl = 344
 
integer(intki), parameter n8dmzl = 345
 
integer(intki), parameter n9dmxl = 346
 
integer(intki), parameter n9dmyl = 347
 
integer(intki), parameter n9dmzl = 348
 
integer(intki), parameter panginp = 349
 
integer(intki), parameter pangact = 350
 
integer(intki), parameter pratact = 351
 
integer(intki), parameter paccact = 352
 
integer(intki), parameter maxoutpts = 352
 
integer, dimension(9, 3), parameter nfl = RESHAPE( (/ N1Fxl,N2Fxl,N3Fxl,N4Fxl,N5Fxl,N6Fxl,N7Fxl,N8Fxl,N9Fxl, N1Fyl,N2Fyl,N3Fyl,N4Fyl,N5Fyl,N6Fyl,N7Fyl,N8Fyl,N9Fyl, N1Fzl,N2Fzl,N3Fzl,N4Fzl,N5Fzl,N6Fzl,N7Fzl,N8Fzl,N9Fzl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter nml = RESHAPE( (/ N1Mxl,N2Mxl,N3Mxl,N4Mxl,N5Mxl,N6Mxl,N7Mxl,N8Mxl,N9Mxl, N1Myl,N2Myl,N3Myl,N4Myl,N5Myl,N6Myl,N7Myl,N8Myl,N9Myl, N1Mzl,N2Mzl,N3Mzl,N4Mzl,N5Mzl,N6Mzl,N7Mzl,N8Mzl,N9Mzl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter ntdr = RESHAPE( (/ N1TDxr,N2TDxr,N3TDxr,N4TDxr,N5TDxr,N6TDxr,N7TDxr,N8TDxr,N9TDxr, N1TDyr,N2TDyr,N3TDyr,N4TDyr,N5TDyr,N6TDyr,N7TDyr,N8TDyr,N9TDyr, N1TDzr,N2TDzr,N3TDzr,N4TDzr,N5TDzr,N6TDzr,N7TDzr,N8TDzr,N9TDzr /), (/9, 3/) )
 
integer, dimension(9, 3), parameter nrdr = RESHAPE( (/ N1RDxr,N2RDxr,N3RDxr,N4RDxr,N5RDxr,N6RDxr,N7RDxr,N8RDxr,N9RDxr, N1RDyr,N2RDyr,N3RDyr,N4RDyr,N5RDyr,N6RDyr,N7RDyr,N8RDyr,N9RDyr, N1RDzr,N2RDzr,N3RDzr,N4RDzr,N5RDzr,N6RDzr,N7RDzr,N8RDzr,N9RDzr /), (/9, 3/) )
 
integer, dimension(9, 3), parameter ntvg = RESHAPE( (/ N1TVXg,N2TVXg,N3TVXg,N4TVXg,N5TVXg,N6TVXg,N7TVXg,N8TVXg,N9TVXg, N1TVYg,N2TVYg,N3TVYg,N4TVYg,N5TVYg,N6TVYg,N7TVYg,N8TVYg,N9TVYg, N1TVZg,N2TVZg,N3TVZg,N4TVZg,N5TVZg,N6TVZg,N7TVZg,N8TVZg,N9TVZg /), (/9, 3/) )
 
integer, dimension(9, 3), parameter nrvg = RESHAPE( (/ N1RVXg,N2RVXg,N3RVXg,N4RVXg,N5RVXg,N6RVXg,N7RVXg,N8RVXg,N9RVXg, N1RVYg,N2RVYg,N3RVYg,N4RVYg,N5RVYg,N6RVYg,N7RVYg,N8RVYg,N9RVYg, N1RVZg,N2RVZg,N3RVZg,N4RVZg,N5RVZg,N6RVZg,N7RVZg,N8RVZg,N9RVZg /), (/9, 3/) )
 
integer, dimension(9, 3), parameter ntal = RESHAPE( (/ N1TAXl,N2TAXl,N3TAXl,N4TAXl,N5TAXl,N6TAXl,N7TAXl,N8TAXl,N9TAXl, N1TAYl,N2TAYl,N3TAYl,N4TAYl,N5TAYl,N6TAYl,N7TAYl,N8TAYl,N9TAYl, N1TAZl,N2TAZl,N3TAZl,N4TAZl,N5TAZl,N6TAZl,N7TAZl,N8TAZl,N9TAZl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter nral = RESHAPE( (/ N1RAXl,N2RAXl,N3RAXl,N4RAXl,N5RAXl,N6RAXl,N7RAXl,N8RAXl,N9RAXl, N1RAYl,N2RAYl,N3RAYl,N4RAYl,N5RAYl,N6RAYl,N7RAYl,N8RAYl,N9RAYl, N1RAZl,N2RAZl,N3RAZl,N4RAZl,N5RAZl,N6RAZl,N7RAZl,N8RAZl,N9RAZl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter npfl = RESHAPE( (/ N1PFxl,N2PFxl,N3PFxl,N4PFxl,N5PFxl,N6PFxl,N7PFxl,N8PFxl,N9PFxl, N1PFyl,N2PFyl,N3PFyl,N4PFyl,N5PFyl,N6PFyl,N7PFyl,N8PFyl,N9PFyl, N1PFzl,N2PFzl,N3PFzl,N4PFzl,N5PFzl,N6PFzl,N7PFzl,N8PFzl,N9PFzl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter npml = RESHAPE( (/ N1PMxl,N2PMxl,N3PMxl,N4PMxl,N5PMxl,N6PMxl,N7PMxl,N8PMxl,N9PMxl, N1PMyl,N2PMyl,N3PMyl,N4PMyl,N5PMyl,N6PMyl,N7PMyl,N8PMyl,N9PMyl, N1PMzl,N2PMzl,N3PMzl,N4PMzl,N5PMzl,N6PMzl,N7PMzl,N8PMzl,N9PMzl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter ndfl = RESHAPE( (/ N1DFxl,N2DFxl,N3DFxl,N4DFxl,N5DFxl,N6DFxl,N7DFxl,N8DFxl,N9DFxl, N1DFyl,N2DFyl,N3DFyl,N4DFyl,N5DFyl,N6DFyl,N7DFyl,N8DFyl,N9DFyl, N1DFzl,N2DFzl,N3DFzl,N4DFzl,N5DFzl,N6DFzl,N7DFzl,N8DFzl,N9DFzl /), (/9, 3/) )
 
integer, dimension(9, 3), parameter ndml = RESHAPE( (/ N1DMxl,N2DMxl,N3DMxl,N4DMxl,N5DMxl,N6DMxl,N7DMxl,N8DMxl,N9DMxl, N1DMyl,N2DMyl,N3DMyl,N4DMyl,N5DMyl,N6DMyl,N7DMyl,N8DMyl,N9DMyl, N1DMzl,N2DMzl,N3DMzl,N4DMzl,N5DMzl,N6DMzl,N7DMzl,N8DMzl,N9DMzl /), (/9, 3/) )
 

Detailed Description

This module contains the input/output parameters and routines for the BeamDyn module.

Function/Subroutine Documentation

◆ bd_printsum()

subroutine beamdyn_io::bd_printsum ( type(bd_parametertype), intent(in)  p,
type(bd_continuousstatetype), intent(in)  x,
type(bd_miscvartype), intent(inout)  m,
type(bd_initinputtype), intent(in)  InitInp,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine generates the summary file, which contains a regurgitation of the input data and interpolated flexible body data.

Parameters
[in]pParameters of the structural dynamics module
[in]xContinuous states
[in,out]mmisc/optimization variables
[in]initinpInput data for initialization routine
[out]errstaterror status
[out]errmsgerror message

◆ bd_readbladefile()

subroutine beamdyn_io::bd_readbladefile ( character(*), intent(in)  BldFile,
type(bladeinputdata), intent(out)  BladeInputFileData,
integer(intki), intent(in)  UnEc,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)
Parameters
[out]errstatError status
[out]errmsgError message

◆ bd_readinput()

subroutine beamdyn_io::bd_readinput ( character(*), intent(in)  InputFileName,
type(bd_inputfile), intent(out)  InputFileData,
character(*), intent(in)  OutFileRoot,
real(dbki), intent(in)  Default_DT,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)
Parameters
[in]inputfilenameName of the input file
[in]outfilerootName of the input file
[in]default_dtThe default DT (from glue code)
[out]inputfiledataData stored in the module's input file
[out]errstatThe error status code
[out]errmsgThe error message, if an error occurred

◆ bd_readprimaryfile()

subroutine beamdyn_io::bd_readprimaryfile ( character(*), intent(in)  InputFile,
type(bd_inputfile), intent(inout)  InputFileData,
character(*), intent(in)  OutFileRoot,
integer(intki), intent(out)  UnEc,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine reads in the primary BeamDyn input file and places the values it reads in the InputFileData structure.

It opens an echo file if requested and returns the (still-open) echo file to the calling routine.

◆ bd_validateinputdata()

subroutine beamdyn_io::bd_validateinputdata ( type(bd_initinputtype), intent(in)  InitInp,
type(bd_inputfile), intent(in)  InputFileData,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine validates the inputs from the BeamDyn input files.

Parameters
[in]initinpInput data for initialization routine
[in]inputfiledataAll the data in the BeamDyn input file
[out]errstatError status
[out]errmsgError message

◆ calc_writeoutput()

subroutine beamdyn_io::calc_writeoutput ( type(bd_parametertype), intent(in)  p,
real(reki), dimension(0:), intent(inout)  AllOuts,
type(bd_outputtype), intent(in)  y,
type(bd_miscvartype), intent(inout)  m,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg,
logical, intent(in)  CalcWriteOutput 
)

this routine fills the AllOuts array, which is used to send data to the glue code to be written to an output file.

Parameters
[in]pThe module parameters
[in,out]alloutsarray of values to potentially write to file
[in]youtputs
[in,out]mmisc/optimization variables (for computing mesh transfers)
[out]errstatThe error status code
[out]errmsgThe error message, if an error occurred
[in]calcwriteoutputflag that determines if we need to compute AllOuts (or just the reaction loads that get returned to ServoDyn)

FIXME: If we are on the finite element points, the input and output meshes are siblings, otherwise we need to multiply by a different orientation (if we're okay with the nodes meaning something different) or we need to map the u2PointLoad like we do for the mu2DistrLoadForce loads.

◆ compute_dx()

subroutine beamdyn_io::compute_dx ( type(bd_parametertype), intent(in)  p,
type(bd_continuousstatetype), intent(in)  x_p,
type(bd_continuousstatetype), intent(in)  x_m,
real(r8ki), intent(in)  delta,
real(r8ki), dimension(:), intent(inout)  dX 
)

This routine uses values of two output types to compute an array of differences.

Do not change this packing without making sure subroutine beamdyn::init_jacobian is consistant with this routine!

Parameters
[in]pparameters
[in]x_pBD continuous states at \( u + \Delta_p u \) or \( x + \Delta_p x \) (p=plus)
[in]x_mBD continuous states at \( u - \Delta_m u \) or \( x - \Delta_m x \) (m=minus)
[in]deltadifference in inputs or states \( delta_p = \Delta_p u \) or \( delta_p = \Delta_p x \)
[in,out]dxcolumn of dXdu or dXdx: \( \frac{\partial X}{\partial u_i} = \frac{x_p - x_m}{2 \, \Delta u}\) or \( \frac{\partial X}{\partial x_i} = \frac{x_p - x_m}{2 \, \Delta x}\)

◆ compute_dy()

subroutine beamdyn_io::compute_dy ( type(bd_parametertype), intent(in)  p,
type(bd_outputtype), intent(in)  y_p,
type(bd_outputtype), intent(in)  y_m,
real(r8ki), intent(in)  delta,
real(r8ki), dimension(:), intent(inout)  dY 
)

This routine uses values of two output types to compute an array of differences.

Do not change this packing without making sure subroutine beamdyn::init_jacobian is consistant with this routine!

Parameters
[in]pparameters
[in]y_pBD outputs at \( u + \Delta_p u \) or \( z + \Delta_p z \) (p=plus)
[in]y_mBD outputs at \( u - \Delta_m u \) or \( z - \Delta_m z \) (m=minus)
[in]deltadifference in inputs or states \( delta_p = \Delta_p u \) or \( delta_p = \Delta_p x \)
[in,out]dycolumn of dYdu or dYdx: \( \frac{\partial Y}{\partial u_i} = \frac{y_p - y_m}{2 \, \Delta u}\) or \( \frac{\partial Y}{\partial z_i} = \frac{y_p - y_m}{2 \, \Delta x}\)

◆ compute_relstate_matrix()

subroutine beamdyn_io::compute_relstate_matrix ( type(bd_parametertype), intent(in)  p,
type(bd_inputtype), intent(in)  u,
type(bd_continuousstatetype), intent(in)  x,
real(r8ki), dimension(:,:), intent(inout)  RelState_x,
real(r8ki), dimension(:,:), intent(inout)  RelState_xdot 
)

This routine uses values of two output types to compute an array of differences.

Do not change this packing without making sure subroutine beamdyn::init_jacobian is consistant with this routine!

Parameters
[in]pparameters
[in]uBD inputs
[in]xBD continuous states

◆ init_jacobian()

subroutine beamdyn_io::init_jacobian ( type(bd_parametertype), intent(inout)  p,
type(bd_inputtype), intent(in)  u,
type(bd_outputtype), intent(in)  y,
type(bd_miscvartype), intent(inout)  m,
type(bd_initoutputtype), intent(inout)  InitOut,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine initializes the array that maps rows/columns of the Jacobian to specific mesh fields.

Do not change the order of this packing without changing subroutine !

Parameters
[in,out]pparameters
[in]uinputs
[in]youtputs
[in,out]mmisc var data
[in,out]initoutInitialization output data (for Jacobian row/column names)
[out]errstatError status of the operation
[out]errmsgError message if ErrStat /= ErrID_None

◆ init_jacobian_x_z()

subroutine beamdyn_io::init_jacobian_x_z ( type(bd_parametertype), intent(inout)  p,
type(bd_initoutputtype), intent(inout)  InitOut,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine initializes the Jacobian parameters and initialization outputs for the linearized continuous states.

Parameters
[in,out]pparameters
[in,out]initoutOutput for initialization routine
[out]errstatError status of the operation
[out]errmsgError message if ErrStat /= ErrID_None

◆ init_jacobian_y()

subroutine beamdyn_io::init_jacobian_y ( type(bd_parametertype), intent(inout)  p,
type(bd_outputtype), intent(in)  y,
type(bd_initoutputtype), intent(inout)  InitOut,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine initializes the Jacobian parameters and initialization outputs for the linearized outputs.

Parameters
[in,out]pparameters
[in]youtputs
[in,out]initoutInitialization output data (for Jacobian row/column names)
[out]errstatError status of the operation
[out]errmsgError message if ErrStat /= ErrID_None

◆ perturb_u()

subroutine beamdyn_io::perturb_u ( type(bd_parametertype), intent(in)  p,
integer( intki ), intent(in)  n,
integer( intki ), intent(in)  perturb_sign,
type(bd_inputtype), intent(inout)  u,
real( r8ki ), intent(out)  du 
)

This routine perturbs the nth element of the u array (and mesh/field it corresponds to) Do not change this without making sure subroutine beamdyn::init_jacobian is consistant with this routine!

Parameters
[in]pparameters
[in]nnumber of array element to use
[in]perturb_sign+1 or -1 (value to multiply perturbation by; positive or negative difference)
[in,out]uperturbed BD inputs
[out]duamount that specific input was perturbed

◆ perturb_x()

subroutine beamdyn_io::perturb_x ( type(bd_parametertype), intent(in)  p,
integer( intki ), intent(in)  fieldIndx,
integer( intki ), intent(in)  node,
integer( intki ), intent(in)  dof,
integer( intki ), intent(in)  perturb_sign,
type(bd_continuousstatetype), intent(inout)  x,
real( r8ki ), intent(out)  dx 
)

This routine perturbs the nth element of the x array (and mesh/field it corresponds to) Do not change this without making sure subroutine beamdyn::init_jacobian is consistant with this routine!

Parameters
[in]pparameters
[in]fieldindxfield in the state type: 1=displacements; 2=velocities
[in]nodenode number
[in]dofdof for this perturbation
[in]perturb_sign+1 or -1 (value to multiply perturbation by; positive or negative difference)
[in,out]xperturbed BD states
[out]dxamount that specific state was perturbed

◆ setoutparam()

subroutine beamdyn_io::setoutparam ( character(chanlen), dimension(:), intent(in)  OutList,
type(bd_parametertype), intent(inout)  p,
integer(intki), intent(out)  ErrStat,
character(*), intent(out)  ErrMsg 
)

This routine checks to see if any requested output channel names (stored in the OutList(:)) are invalid.

It returns a warning if any of the channels are not available outputs from the module. It assigns the settings for OutParam(:) (i.e, the index, name, and units of the output channels, WriteOutput(:)). the sign is set to 0 if the channel is invalid. It sets assumes the value pNumOuts has been set before this routine has been called, and it sets the values of pOutParam here.

Parameters
[in]outlistThe list out user-requested outputs
[in,out]pThe module parameters
[out]errstatThe error status code
[out]errmsgThe error message, if an error occurred