anchor.diff:           
   
            !M( theta^S|_op + delta theta^S )
  -         CALL Transfer_Point_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );                     IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))     
  -
  +         IF (Mesh1Type == ELEMENT_POINT ) THEN
  +            IF ( Mesh2Type == ELEMENT_POINT ) THEN                        
  +               CALL Transfer_Point_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );                     
  +            ELSEIF ( Mesh2Type == ELEMENT_LINE2) THEN                                                                
  +               CALL Transfer_Point_to_Line2( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );
  +            END IF                                                                                                   
  +         ELSEIF ( Mesh1Type == ELEMENT_LINE2 ) THEN                                                                  
  +            IF ( Mesh2Type == ELEMENT_LINE2 ) THEN                                                                   
  +               CALL Transfer_Line2_to_Line2( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );
  +            ELSEIF ( Mesh2Type == ELEMENT_POINT ) THEN        
  +               CALL Transfer_Line2_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg )
  +            END IF            
  +         END IF         
  +         IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))
  +
  +         
  +         
            ! delta theta^D = M( theta^S|_op + delta theta^S ) - x^D|_op
            j=1
            do i=1,Mesh2_O%nnodes
  
positive.code:          
  
           !M( theta^S|_op + delta theta^S )
           CALL Transfer_Point_to_Point( Mesh2_O, Mesh1_I, Map_Mod2_Mod1, ErrStat, ErrMsg, Mesh2_I_op, Mesh1_O_op );   IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))               
  
           ! delta theta^D = M( theta^S|_op + delta theta^S ) - x^D|_op
           j=1
           do i=1,Mesh1_O%nnodes
  
negative.code:          
  
           !M( theta^S|_op + delta theta^S )
           IF (Mesh1Type == ELEMENT_POINT ) THEN
              IF ( Mesh2Type == ELEMENT_POINT ) THEN                        
                 CALL Transfer_Point_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );                     
              ELSEIF ( Mesh2Type == ELEMENT_LINE2) THEN                                                                
                 CALL Transfer_Point_to_Line2( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );
              END IF                                                                                                   
           ELSEIF ( Mesh1Type == ELEMENT_LINE2 ) THEN                                                                  
              IF ( Mesh2Type == ELEMENT_LINE2 ) THEN                                                                   
                 CALL Transfer_Line2_to_Line2( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );
              ELSEIF ( Mesh2Type == ELEMENT_POINT ) THEN        
                 CALL Transfer_Line2_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg )
              END IF            
           END IF         
           IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))
  
           ! delta theta^D = M( theta^S|_op + delta theta^S ) - x^D|_op
           j=1
  