// File: /workspace/github_c_makefile_star2_O0/markpeerdeman[P]mbemm/src/emath/mcheck.c
// Function: do_meshcheck
void do_meshcheck(char *argv)
{ mesh mesh1;
  WRITE_SPECIAL = NO;
  WRITE_UNIVERSAL = NO;

  /* initialize global datastructures: */
  mesh1=(mesh)malloc(sizeof(meshtype));
  mesh1->mesh_p = point_dll((point)NULL,NEW,0);
  mesh1->mesh_e = element_dll((element)NULL,NEW,0);
  mesh1->mesh_t = restraint_dll((restraint)NULL,NEW,0); mesh1->mesh_t->type=TRACTION;
  mesh1->mesh_d = restraint_dll((restraint)NULL,NEW,0); mesh1->mesh_d->type=DISPLACEMENT;

  /* parse the inputdeck: */
  parse(argv,mesh1); 

  /* kill the boundary conditions which are read from file: */
  restraint_dll(mesh1->mesh_d,KILL,0);
  restraint_dll(mesh1->mesh_t,KILL,0);
  /* and make new ones: */
  mesh1->mesh_t = restraint_dll((restraint)NULL,NEW,0); mesh1->mesh_t->type=TRACTION;
  mesh1->mesh_d = restraint_dll((restraint)NULL,NEW,0); mesh1->mesh_d->type=DISPLACEMENT;

  evaluate_level(GREEN,130);

  /* apply the analytical displacement field: */
  make_restraints(mesh1);
  scalemesh(mesh1);

  /* do the linear analysis: */
  linear3(mesh1); 

  /* solve the linear system of equations: */
  /* solve_3(main_E,main_f); */

  process_results(mesh1,main_f);

  /* kill the globals: */
  point_dll(mesh1->mesh_p,KILL,0);
  element_dll(mesh1->mesh_e,KILL,0);
  restraint_dll(mesh1->mesh_d,KILL,0);
  restraint_dll(mesh1->mesh_t,KILL,0);
  free(mesh1);

  delmatrix(main_E);
  delvector(main_f);  
  delvector(main_u);
   
  evaluate_level(FINISH,41);

}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
leaq 0xab48(%rip), %rax      # 0x1e3f8
movl $0x0, (%rax)
leaq 0xab3f(%rip), %rax      # 0x1e3fc
movl $0x0, (%rax)
movl $0x50, %edi
callq 0x10f0
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x175c0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x14570
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x17a40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x10(%rax)
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x17a40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movl $0x1, 0x10(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x9770
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x17a40
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x17a40
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x17a40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x10(%rax)
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
xorl %edx, %edx
callq 0x17a40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movl $0x1, 0x10(%rax)
xorl %edi, %edi
movl $0x82, %esi
callq 0x15200
movq 0x8(%rsp), %rdi
callq 0x12970
movq 0x8(%rsp), %rdi
callq 0x101b0
movq 0x8(%rsp), %rdi
callq 0x12810
movq 0x8(%rsp), %rdi
leaq 0xa9f0(%rip), %rax      # 0x1e418
movq (%rax), %rsi
callq 0x12ca0
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x175c0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x14570
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x17a40
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x17a40
movq 0x8(%rsp), %rdi
callq 0x1030
leaq 0xa97c(%rip), %rax      # 0x1e410
movq (%rax), %rdi
callq 0x15690
leaq 0xa975(%rip), %rax      # 0x1e418
movq (%rax), %rdi
callq 0x15780
leaq 0xa96e(%rip), %rax      # 0x1e420
movq (%rax), %rdi
callq 0x15780
movl $0x4, %edi
movl $0x29, %esi
callq 0x15200
addq $0x18, %rsp
retq
nop