anchor.diff:        CALL MeshMapCreate( Mesh1_O, Mesh2_I,     Map_Mod1_Mod2, ErrStat, ErrMsg );       IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))   
         CALL MeshMapCreate( Mesh2_O, Mesh1_I,     Map_Mod2_Mod1, ErrStat, ErrMsg );       IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
         
  -      CALL MeshMapCreate( Mesh1_I, Mesh1_I_1PT, Map_Mod1_I_1PT,  ErrStat, ErrMsg );       IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
  -      CALL MeshMapCreate( Mesh2_O, Mesh2_O_1PT, Map_Mod2_O_1PT,  ErrStat, ErrMsg );       IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
  -            
  -                  
         ! ..............................................................................................................................   
         ! Map the outputs to inputs:
         ! ..............................................................................................................................   
         IF (Mesh1Type == ELEMENT_POINT ) THEN
  -         IF ( Mesh2Type == ELEMENT_POINT ) THEN
  +         IF ( Mesh2Type == ELEMENT_POINT ) THEN            
               CALL Transfer_Point_to_Point( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );                     IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))     
  -            CALL Transfer_Point_to_Point( Mesh2_O, Mesh1_I, Map_Mod2_Mod1, ErrStat, ErrMsg, Mesh2_I, Mesh1_O );   IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))   
  +            CALL Transfer_Point_to_Point( Mesh2_O, Mesh1_I, Map_Mod2_Mod1, ErrStat, ErrMsg, Mesh2_I, Mesh1_O );   IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))               
            ELSEIF ( Mesh2Type == ELEMENT_LINE2) THEN                                                                
               CALL Transfer_Point_to_Line2( Mesh1_O, Mesh2_I, Map_Mod1_Mod2, ErrStat, ErrMsg );                     IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))     
               CALL Transfer_Line2_to_Point( Mesh2_O, Mesh1_I, Map_Mod2_Mod1, ErrStat, ErrMsg, Mesh2_I, Mesh1_O );   IF (ErrStat /= ErrID_None) CALL WrScr("*******"//TRIM(ErrMsg))         
  
positive.code: 
        call MeshMapDestroy(Map_Mod1_Mod2, ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        call MeshMapDestroy(Map_Mod2_Mod1, ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        
  
        
        CALL MeshDestroy( mesh_Motion_1PT, ErrStat, ErrMsg ); IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        CALL MeshDestroy( mesh1_I_1PT, ErrStat, ErrMsg );     IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        CALL MeshDestroy( mesh2_O_1PT, ErrStat, ErrMsg );     IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
     
        call MeshMapDestroy(Map_Mod1_I_1PT, ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        call MeshMapDestroy(Map_Mod2_O_1PT, ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
     
        
  #ifdef MESH_DEBUG  
        CALL MeshDestroy( mesh2_O_1PT_augmented,      ErrStat, ErrMsg );   IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        CALL MeshDestroy( mesh2_O_1PT_lumped,         ErrStat, ErrMsg );   IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        CALL MeshDestroy( mesh1_I_1PT_lumped,         ErrStat, ErrMsg );   IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
  
        call MeshMapDestroy(Map_Mod2_O_1PT_augmented, ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        call MeshMapDestroy(Map_Mod2_O_1PT_lumped,    ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
        call MeshMapDestroy(Map_Mod1_I_1PT_lumped,    ErrStat, ErrMsg);IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
  #endif      
        
        ! ..............................................................................................................................   
        ! open files:
        ! ..............................................................................................................................   
        close( un_out )
  
     
     end do
     
     
     
     
  contains
     ! ..............................................  
     subroutine CreateTotalLoadsPointMeshes( )
     
        CALL MeshCreate( BlankMesh       = mesh1_I_1PT        &
                       , IOS              = COMPONENT_INPUT   &
                       , NNodes           = 1                 &
                       , Force            = .TRUE.            &
                       , Moment           = .TRUE.            &
                       , ErrStat          = ErrStat           &
                       , ErrMess          = ErrMsg            )
        
        IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
           
           
        position = (/0.0_ReKi, 0.0_ReKi, 0.0_ReKi/)
        CALL MeshPositionNode ( mesh1_I_1PT, 1, position, ErrStat, ErrMsg ) ; IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))             
  
        CALL MeshConstructElement ( mesh1_I_1PT, ELEMENT_POINT, ErrStat, ErrMsg, 1 );                 IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))                     
                    
        CALL MeshCommit ( mesh1_I_1PT, ErrStat, ErrMsg )   ;      IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg)) 
        
        
        CALL MeshCopy( mesh1_I_1PT, mesh_Motion_1PT, MESH_SIBLING, ErrStat, ErrMsg &
                       , IOS              = COMPONENT_OUTPUT  &
                       , TranslationDisp  = .TRUE.            ) ;      IF (ErrStat /= ErrID_None) CALL WrScr(TRIM(ErrMsg))
                       
        !.....                 
        CALL MeshCopy( mesh1_I_1PT, mesh2_O_1PT, MESH_NEWCOPY, ErrStat, ErrMsg )  ! This thinks it's for input, but really it's for output. I don't think it matters...
  
        
        
     end subroutine CreateTotalLoadsPointMeshes
     
     ! ..............................................   
     subroutine CreateOutputMeshes_Test1()   
        ! this is a point-to-point mapping, with one point going to many.
  
negative.code: 
     TYPE(meshtype) :: mesh1_I, mesh1_O
     TYPE(meshtype) :: mesh2_I, mesh2_O 
  
     TYPE(meshtype) :: mesh1_I_op, mesh1_O_op
     TYPE(meshtype) :: mesh2_I_op, mesh2_O_op 
     
     
     TYPE(MeshMapType)       :: Map_Mod1_Mod2        ! Data for mapping meshes from mod1 to mod2
     TYPE(MeshMapType)       :: Map_Mod2_Mod1        ! Data for mapping meshes from mod1 to mod2
     
     REAL(R8Ki)              :: Orientation(3,3)
     REAL(ReKi)              :: position(3)
     REAL(ReKi)              :: Angle
     REAL(ReKi), allocatable :: LinVec_1(:), LinVec_1_theta(:), LinVec_1_a(:), LinVec_1_b(:), LinVec_1_c(:)
     REAL(ReKi), allocatable :: LinVec_2(:), LinVec_2_theta(:) ! data for linearization testing
     
     CHARACTER(*), PARAMETER :: Fmt = '(ES10.3E2)'
     
     !
     INTEGER :: NNodes, I,J, n1, n2
        
     INTEGER :: Mesh1Type
     INTEGER :: Mesh2Type
     
     INTEGER(IntKi) :: ErrStat
     CHARACTER(1024) :: ErrMsg   
     
     logical, parameter :: TestLinearization = .true.
     
     INTEGER :: TestNumber 
     CHARACTER(256) :: BinOutputName 
        
  
     call NWTC_Init()
     
     DO TestNumber=1,13 !1,9
  
        print *, '---------------------------------------------------------------'
        print *, '   Test ', TestNumber
  