B A K S O L :

This Command is used to compute the back solution of the helmert block adjustment. The blocks are stored in sub-directories in a tree like fashion where the parent sub-directory contains the junction information between two or more sibling blocks stored in sub-directories of the parent blocks as shown below.

                 Sudbury             <== Parent                 (c:/sudbury/)

      Block 1               Block 2  <== Sibling <== Parent  (c:/sudbury/block1/)

 Block 11  Block 12    Block 21  Block 22        <== Sibling (c:/sudbury/block1/block11)
 

The coordinates in the parent block are defined on the coordinate records in the sibling directory files as a code 5 or 6.

The blocks are partially reduced for each level starting at the lowest or last sub-directory of the adjustment. Each level is partially reduced by combining the partally reduced files from the immediate lower levels.

When the top is reached a standard adjustment is performed. Program BAKSOL uses the adjustment files from both the parent and the sibling directory to compute the solution for

the sibling level.
                  Sudbury

      Block 1               Block 2

  Block 11  Block 12    Block 21  Block 22
 

For the above case BAKSOL would be executed first at the SUDBURY (parent) level. The procedure would ask for a sub-directory to back-solve. In this case BLOCK1 would be solved followed by BLOCK2. The user would then move to a sibling directory, say BLOCK1 and solve for Block11 and Block12 or move to BLOCK2 and solve for block21 and Block22.

         Interactive processing: (PC)

 [ denotes optional

 [sd @                         <== set the default directory to
                                   the user root
 [sd .data.sudbury             <== set the default directory
                                   to the parent
 [ghost                        <== make ghost interactive
 BAKSOL                        <== execute procedure
 $ Sibling directory ? block12 <== enter sibling directory
 $ Sibling directory ? block34 <== enter sibling directory
 $ Sibling directory ? <CR>    <== exit procedure
 sd .block1                    <== set default directory to
                                     second level
 BAKSOL  <==Execute procedure
 $ Sibling directory ? block1  <== Enter sibling directory
 $ Sibling directory ? block2  <== Enter sibling directory
 $ Sibling directory ? <CR>    <== Exit procedure
 sd [-.block2]                <== go to another parent
 BAKSOL                        <== Execute procedure
 $ Sibling directory ? block3  <== enter sibling directory
 $ Sibling directory ? block4  <== enter sibling directory
 $ Sibling directory ? <CR>    <== Exit procedure
                                   Etc.
 type BAKSOL.lis
 comres
 type COMRES.LIS
      .
      .


         Batch processing:

The program can also be run in batch mode however
each parent sub-directoy must contain a file
(SIBLING.DAT) that contains a list of all the
sibling sub-directories

             e.g.
BLOCK1
BLOCK2
blank

The procedure will read this file rather than querying
the user fo the sibling sub-directories.

The user batches a job for each parent in turn

             e.g.
The user enters a parameter in the batch procedure

1. The sub-directory for the files.

   SUBMIT/PARAMETER=(DUA1:[BEATTIE.DATA.SUDBURY])/NOPRINT -
                         GHOST$CMND:BAKSOL.COM

           NOTE: To allow for entry from different drives the full
                 directory specification must be used in the submit
                 parameter.