anchor.diff:      call hecmw_mpc_mark_slave(hecMESH, hecMAT, mark)
   
       do j = 1 ,ndof*nnod
  -      fstrDYNAMIC%VEC1(j) = (a1 + a2 *fstrDYNAMIC%ray_m) * fstrEIG%mass(j)
  -      if(mark(j) == 1) fstrDYNAMIC%VEC1(j) = 1.d0
  -      if(dabs(fstrDYNAMIC%VEC1(j)) < 1.0e-20) then
  +      fstrDYN%VEC1(j) = (a1 + a2 *fstrDYN%ray_m) * fstrEIG%mass(j)
  +      if(mark(j) == 1) fstrDYN%VEC1(j) = 1.d0
  +      if(dabs(fstrDYN%VEC1(j)) < 1.0e-20) then
           if( hecMESH%my_rank == 0 ) then
  -          write(*,*) 'stop due to fstrDYNAMIC%VEC(j) = 0 ,  j = ', j
  -          write(imsg,*) 'stop due to fstrDYNAMIC%VEC(j) = 0 ,  j = ', j
  +          write(*,*) 'stop due to fstrDYN%VEC(j) = 0 ,  j = ', j
  +          write(imsg,*) 'stop due to fstrDYN%VEC(j) = 0 ,  j = ', j
           end if
           call hecmw_abort( hecmw_comm_get_comm())
         endif
       end do
   
       deallocate(mark)
  -
   
       !C-- output of initial state
       if( restrt_step_num == 1 ) then
         do j = 1 ,ndof*nnod
  -        fstrDYNAMIC%DISP(j,3) = fstrDYNAMIC%DISP(j,1) - fstrDYNAMIC%VEL (j,1)/(2.d0*a2) &
  -          + fstrDYNAMIC%ACC (j,1)/ (2.d0*a1)
  -        fstrDYNAMIC%DISP(j,2) = fstrDYNAMIC%DISP(j,1) - fstrDYNAMIC%VEL (j,1)/ a2 &
  -          + fstrDYNAMIC%ACC (j,1)/ (2.d0*a1) * 4.d0
  +        fstrDYN%DISP(j,3) = fstrDYN%DISP(j,1) - fstrDYN%VEL (j,1)/(2.d0*a2)  + fstrDYN%ACC (j,1)/ (2.d0*a1)
  +        fstrDYN%DISP(j,2) = fstrDYN%DISP(j,1) - fstrDYN%VEL (j,1)/ a2 + fstrDYN%ACC (j,1)/ (2.d0*a1) * 4.d0
         end do
   
  -      call fstr_dynamic_Output(hecMESH, fstrSOLID, fstrDYNAMIC, fstrPARAM)
  -      call dynamic_output_monit(hecMESH, fstrPARAM, fstrDYNAMIC, fstrEIG, fstrSOLID)
  +      call fstr_dynamic_Output(hecMESH, fstrSOLID, fstrDYN, fstrPARAM)
  +      call dynamic_output_monit(hecMESH, fstrPARAM, fstrDYN, fstrEIG, fstrSOLID)
       end if
   
       if( associated( fstrSOLID%contacts ) )  then
         call initialize_contact_output_vectors(fstrSOLID,hecMAT)
  -      call forward_increment_Lagrange(1,ndof,fstrDYNAMIC%VEC1,hecMESH,fstrSOLID,infoCTChange,&
  -        & fstrDYNAMIC%DISP(:,2),fstrSOLID%ddunode)
  +      call forward_increment_Lagrange(1,ndof,fstrDYN%VEC1,hecMESH,fstrSOLID,infoCTChange,&
  +        & fstrDYN%DISP(:,2),fstrSOLID%ddunode)
       endif
   
  -    do i= restrt_step_num, fstrDYNAMIC%n_step
  -
  -      fstrDYNAMIC%i_step = i
  -      fstrDYNAMIC%t_curr = fstrDYNAMIC%t_delta * i
  -      !C
  +    do i= restrt_step_num, fstrDYN%n_step
  +
  +      fstrDYN%i_step = i
  +      fstrDYN%t_curr = fstrDYN%t_delta * i
  +
         !C-- mechanical boundary condition
  -
  -      call dynamic_mat_ass_load (hecMESH, hecMAT, fstrSOLID, fstrDYNAMIC, fstrPARAM)
  +      call dynamic_mat_ass_load (hecMESH, hecMAT, fstrSOLID, fstrDYN, fstrPARAM)
         do j=1, hecMESH%n_node*  hecMESH%n_dof
           hecMAT%B(j)=hecMAT%B(j)-fstrSOLID%QFORCE(j)
         end do
  
positive.code:           endif
            if( fstrPARAM%fg_couple_window > 0 ) then
              j = i - restrt_step_num + 1
              kk = fstrDYNAMIC%n_step - restrt_step_num + 1
              bsize = 0.5*(1.0-cos(2.0*PI*dfloat(j)/dfloat(kk)))
              do kkk0 = 1, fstrCPL%coupled_node_n
                kkk1 = 3 * kkk0
  
negative.code:   !C-- subroutine  fstr_solve_LINEAR_DYNAMIC
    !C================================================================C
    subroutine fstr_solve_dynamic_nlexplicit(hecMESH,hecMAT,fstrSOLID,fstrEIG   &
        ,fstrDYN,fstrRESULT,fstrPARAM,infoCTChange &
        ,fstrCPL, restrt_step_num )
      implicit none
      type(hecmwST_local_mesh)             :: hecMESH
      type(hecmwST_matrix)                 :: hecMAT
      type(fstr_eigen)                     :: fstrEIG
      type(fstr_solid)                     :: fstrSOLID
      type(hecmwST_result_data)            :: fstrRESULT
      type(fstr_param)                     :: fstrPARAM
      type(fstr_dynamic)                   :: fstrDYN
      type(fstrST_matrix_contact_lagrange) :: fstrMAT !< type fstrST_matrix_contact_lagrange
      type(fstr_info_contactChange)        :: infoCTChange !< fstr_info_contactChange
      type(fstr_couple)                    :: fstrCPL !for COUPLE
      type(hecmwST_matrix), pointer :: hecMATmpc
      integer(kind=kint), allocatable :: mark(:)
      integer(kind=kint) :: nnod, ndof, nn, numnp
  