In checking the output file just make sure that the partition command is correctly displayed in the output. The manner in specifying partitions changed during v8.3 and also the storage for the ID array changed. There may be more than one allocation location for the ID array: the initial one when all other arrays are allocated and a second one after partitions are allocated. In particular we now store a copy of the ID array for each partition. I just want to know how your program is storing the array. One way to discover is to enter the program interactively after all the data is given and before you solve any problems. Use the command SHOW ID to display the array. The program should tell you how many parts exist for your problem (normally this is only two, but with partitions it is now more than two). My version of 8.3 has an allocation in pcontr.f at line 817 that allocates npart+1 copies of the ID array. The storage in the array is a bit awkward as it was changed form an earlier form:
(1) the first part id(ndf,numnp,1) stores the equations for partition 1 (this is the storage when no staggers are used)
(2) the second part id(ndf,numnp,2) stores the boundary codes for all the dofs, a 0 or an active dof and a non-zero for a fixed or unused one
(3) the remaining parts id(ndf,numnp,3) etc. store the equation numbers for partiaion 2 etc.
You should be able to follow how this is set up in the lines after the allocation in pcontr.f
So if the equations are getting set correctly (you can break the batch solution after every CRACk and OPTI command) and use an interactive solution command SHOW ID to look - then at least you know you are setting the equations correctly.
The remainder is to set the values for the solution. It appears you are setting these in the array "F" np(27) with an offset; so SHOW F should tell you if they are correctly done.
Once this seems correct then check if the solution is as expected. The process you are doing is fairly complex and it is possible that some other changes are still needed -- but the above is what is done when we use MESH commands to change BOUN and DISP values (or their E or C alternatives). I have noted that the current version of feap does not force a renumber of equations if a BOUN type change is made. An improvement will be implemented in future releases.