FEAP Version 8.6.1n released: February 14, 2022
Nodal values of forces FORCe and displacements DISPl are stored in the array "F": f(ndf,numnp,2) --> 1 = force; 2= displacements. However, these are not used directly as they need to be multiplied by the proportional load. You can look in pmacr1.f and follow what happens with the call to "pload".
To tell what type of condition is set look at ID(ndf,numnp,2) == mr(np(31)+nneq).For example, for degree of freedom 3 at node 10, ID(3,10,2) .eq. 0 means a force boundary condition, ID(3,10,2) .ne. 0 means a displacement boundary condition.
... integer id(ndf,numnp,2)... id(ndf,numnp,2) = mr(np(31)+nneq)...open(unit = ios, file = "test.txt") write(ios,*) id(2,1,2)close(ios)...
include 'comblk.h'include 'sdata.h'call suba(mr(np(31)+nneq)
subroutine suba(id)include 'sdata.h'integer id(ndf,*)
You have misunderstood.mr(np(31)+nneq) is the same location in memory as id(1,1,2). Thus a normal way to access id would beCode: [Select]include 'comblk.h'include 'sdata.h'call suba(mr(np(31)+nneq)thenCode: [Select]subroutine suba(id)include 'sdata.h'integer id(ndf,*)at this stage inside subroutine suba you have access to ID. The other way to access ID would be to directly index into MR( ) at locationnp(31)+nneq and beyond, which is not advised.