user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x198,%rsp
  pxor   %xmm0,%xmm0
  movapd D108(%rip),%xmm2
  movsd  D256(%rip),%xmm1
  mov    %fs:0x28,%rax
  mov    %rax,0x2188(%rsp)
  xor    %eax,%eax
  movaps %xmm0,0x80(%rsp)
  mov    D35(%rip),%rax
  lea    0x220(%rsp),%r15
  movaps %xmm0,0xa0(%rsp)
  lea    0x120(%rsp),%r13
  lea    0x2e0(%rsp),%r14
  mov    %r15,%r8
  movaps %xmm0,0x220(%rsp)
  lea    0x140(%rsp),%r12
  lea    0x260(%rsp),%r9
  movaps %xmm0,0x230(%rsp)
  movaps %xmm0,0x260(%rsp)
  movaps %xmm0,0x270(%rsp)
  movaps %xmm0,0x280(%rsp)
  pxor   %xmm0,%xmm0
  movaps %xmm0,0x2a0(%rsp)
  movaps %xmm0,0x2b0(%rsp)
  movaps %xmm0,0x2c0(%rsp)
  movdqa D216(%rip),%xmm0
  mov    %rax,0x50(%rsp)
  movaps %xmm0,0xc0(%rsp)
  movdqa D270(%rip),%xmm0
  movaps %xmm2,0x60(%rsp)
  movaps %xmm0,0xe0(%rsp)
  pxor   %xmm0,%xmm0
  movsd  %xmm1,0x90(%rsp)
  movaps %xmm2,0x240(%rsp)
  movsd  %xmm1,0x290(%rsp)
  movl   $0x1,0x58(%rsp)
  movq   $0x0,0x70(%rsp)
  movq   $0x0,0xb0(%rsp)
  movq   $0x0,0x250(%rsp)
  movq   $0x0,0x2d0(%rsp)
  movq   $0x0,0xd0(%rsp)
  movl   $0x0,0xd8(%rsp)
  movq   $0x0,0xf0(%rsp)
  movl   $0x0,0xf8(%rsp)
  mov    D372(%rip),%rax
  movaps %xmm0,0x100(%rsp)
  movapd D247(%rip),%xmm0
  movapd D312(%rip),%xmm1
  mov    %rax,0x110(%rsp)
  mov    D280(%rip),%rax
  movaps %xmm0,0x2e0(%rsp)
  movapd D47(%rip),%xmm0
  movapd D111(%rip),%xmm2
  mov    %rax,0x310(%rsp)
  mov    D231(%rip),%rax
  movaps %xmm0,0x2f0(%rsp)
  movapd D72(%rip),%xmm0
  mov    %rax,0x130(%rsp)
  mov    D159(%rip),%rax
  movaps %xmm0,0x300(%rsp)
  movdqa D218(%rip),%xmm0
  mov    %rax,0x150(%rsp)
  movaps %xmm0,0x120(%rsp)
  movdqa D159(%rip),%xmm0
  movaps %xmm1,0x340(%rsp)
  movaps %xmm0,0x140(%rsp)
  movapd D279(%rip),%xmm0
  movaps %xmm2,0x360(%rsp)
  movaps %xmm0,0x320(%rsp)
  movapd D52(%rip),%xmm0
  movl   $0x0,0x118(%rsp)
  movaps %xmm0,0x330(%rsp)
  movapd D427(%rip),%xmm0
  movl   $0x12,0x138(%rsp)
  movaps %xmm0,0x350(%rsp)
  movl   $0x3,0x158(%rsp)
  movaps %xmm1,0x370(%rsp)
  movapd D87(%rip),%xmm1
  mov    D109(%rip),%rax
  movaps %xmm0,0x380(%rsp)
  movapd D442(%rip),%xmm0
  movapd D425(%rip),%xmm2
  movaps %xmm1,0x3e0(%rsp)
  movapd D262(%rip),%xmm1
  movaps %xmm0,0x390(%rsp)
  movapd D74(%rip),%xmm0
  movaps %xmm1,0x3f0(%rsp)
  movapd D226(%rip),%xmm1
  movaps %xmm0,0x3a0(%rsp)
  movapd D23(%rip),%xmm0
  movaps %xmm1,0x400(%rsp)
  movaps %xmm0,0x3b0(%rsp)
  movapd D77(%rip),%xmm0
  movaps %xmm1,0x430(%rsp)
  movapd D103(%rip),%xmm1
  movaps %xmm0,0x3d0(%rsp)
  movaps %xmm0,0x460(%rsp)
  movapd D367(%rip),%xmm0
  mov    %rax,0x3c0(%rsp)
  mov    D87(%rip),%rax
  movaps %xmm2,0x410(%rsp)
  movapd D193(%rip),%xmm2
  movaps %xmm1,0x440(%rsp)
  movapd D75(%rip),%xmm1
  movaps %xmm0,0x480(%rsp)
  movapd D150(%rip),%xmm0
  movaps %xmm2,0x420(%rsp)
  mov    %rax,0x470(%rsp)
  movaps %xmm1,0x450(%rsp)
  movaps %xmm0,0x490(%rsp)
  movapd D431(%rip),%xmm0
  movapd D301(%rip),%xmm1
  mov    D309(%rip),%rax
  movaps %xmm0,0x4a0(%rsp)
  movapd D141(%rip),%xmm0
  movaps %xmm1,0x4c0(%rsp)
  movapd D98(%rip),%xmm1
  movaps %xmm0,0x4b0(%rsp)
  movaps %xmm0,0x4e0(%rsp)
  movapd D356(%rip),%xmm0
  mov    %rax,0x520(%rsp)
  lea    0x6c0(%rsp),%rax
  movaps %xmm0,0x4f0(%rsp)
  movapd D286(%rip),%xmm0
  movaps %xmm1,0x4d0(%rsp)
  movaps %xmm0,0x500(%rsp)
  movapd D282(%rip),%xmm0
  mov    %rax,0x10(%rsp)
  movaps %xmm0,0x510(%rsp)
  push   %rax
  lea    0x328(%rsp),%rbx
  push   %rbx
  lea    0x3e0(%rsp),%rax
  mov    %rax,0x10(%rsp)
  push   %rax
  lea    0x498(%rsp),%rdx
  mov    %rdx,0x20(%rsp)
  push   %rdx
  mov    %r14,%rdx
  lea    0x120(%rsp),%rsi
  mov    %rsi,0x38(%rsp)
  push   %rsi
  mov    %r12,%rsi
  lea    0x108(%rsp),%rdi
  mov    %rdi,0x48(%rsp)
  push   %rdi
  mov    $0x7,%edi
  lea    0xf0(%rsp),%rcx
  mov    %rcx,0x58(%rsp)
  push   %rcx
  mov    %r13,%rcx
  lea    0x2d8(%rsp),%r10
  mov    %r10,0x68(%rsp)
  push   %r10
  mov    %r9,0x78(%rsp)
  call   <getS@plt>
  add    $0x40,%rsp
  mov    %r15,%r8
  mov    %r13,%rcx
  lea    0x850(%rsp),%rbp
  mov    %r14,%rdx
  mov    %r12,%rsi
  mov    $0x7,%edi
  push   %rbp
  mov    %rbx,0x48(%rsp)
  push   %rbx
  push   0x10(%rsp)
  push   0x20(%rsp)
  push   0x38(%rsp)
  push   0x48(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  mov    0x78(%rsp),%r9
  call   <getT@plt>
  add    $0x38,%rsp
  mov    %r15,%r8
  mov    %r13,%rcx
  lea    0x9e8(%rsp),%rbx
  mov    %r14,%rdx
  mov    %r12,%rsi
  mov    $0x7,%edi
  push   %rbx
  lea    0xb0(%rsp),%rax
  push   %rax
  lea    0x98(%rsp),%rax
  push   %rax
  lea    0x80(%rsp),%rax
  push   %rax
  lea    0x78(%rsp),%rax
  push   %rax
  push   $0x3
  push   0x78(%rsp)
  push   0x40(%rsp)
  push   0x50(%rsp)
  push   0x68(%rsp)
  push   0x78(%rsp)
  push   0x88(%rsp)
  push   0x98(%rsp)
  mov    0xa8(%rsp),%r9
  mov    %r9,0xb8(%rsp)
  call   <getV@plt>
  add    $0x70,%rsp
  mov    %r14,%rdx
  mov    %r15,%r8
  lea    0x14d0(%rsp),%r11
  mov    %r13,%rcx
  mov    %r12,%rsi
  mov    $0x7,%edi
  mov    %r11,0x38(%rsp)
  push   %r11
  push   0x48(%rsp)
  push   0x10(%rsp)
  push   0x20(%rsp)
  push   0x38(%rsp)
  push   0x48(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  mov    0x88(%rsp),%r9
  call   <getInts@plt>
  add    $0x40,%rsp
  xor    %eax,%eax
  lea    0x530(%rsp),%rdx
  mov    %rdx,0x8(%rsp)
  nopl   0x0(%rax)
L34:
  movapd 0x0(%rbp,%rax,1),%xmm0
  addpd  (%rbx,%rax,1),%xmm0
  movaps %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    $0x180,%rax
  jne    L34
  lea    0x1020(%rsp),%r12
  lea    0xb70(%rsp),%rbx
  xor    %r14d,%r14d
  movsd  0x9d0(%rsp),%xmm0
  mov    %rbx,%rcx
  mov    %r12,%rdx
  mov    $0x5,%esi
  mov    $0x7,%edi
  lea    0x11b0(%rsp),%rbp
  lea    0x1340(%rsp),%r13
  addsd  0xb60(%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  movsd  %xmm0,0x6b0(%rsp)
  call   <getD@plt>
  mov    0x8(%rsp),%rsi
  mov    %r12,%rdi
  mov    %r12,%r8
  lea    0x1a0(%rsp),%r9
  mov    $0x31,%ecx
  mov    $0x7,%edx
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    0x8(%rsp),%rsi
  lea    0x1340(%rsp),%rdi
  mov    $0x31,%ecx
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    0x10(%rsp),%rsi
  lea    0x11b0(%rsp),%rdi
  mov    $0x31,%ecx
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    %r9,0x28(%rsp)
  mov    %rbp,%rsi
  mov    %r13,%rdi
  lea    0x160(%rsp),%rcx
  sub    $0x8,%rsp
  mov    %rcx,0x20(%rsp)
  lea    0x1e8(%rsp),%rax
  mov    %rax,0x28(%rsp)
  push   %rax
  call   <gjacobi@plt>
  pop    %rcx
  pop    %rsi
  lea    0xe90(%rsp),%rax
  lea    0xd00(%rsp),%r15
  mov    %rax,0x30(%rsp)
L26:
  mov    %rbx,%rcx
  mov    %r12,%rdx
  mov    $0x5,%esi
  mov    $0x7,%edi
  call   <getD@plt>
  mov    0x38(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbx,%rsi
  mov    $0x7,%edi
  call   <getJ@plt>
  mov    0x30(%rsp),%rcx
  mov    0x38(%rsp),%rdx
  mov    %rbx,%rsi
  mov    $0x7,%edi
  call   <getK@plt>
  mov    0x8(%rsp),%rdx
  mov    0x30(%rsp),%rcx
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L51:
  movapd (%r15,%rax,1),%xmm0
  addpd  %xmm0,%xmm0
  addpd  (%rdx,%rax,1),%xmm0
  subpd  (%rcx,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x180,%rax
  jne    L51
  mov    0x10(%rsp),%rsi
  mov    %rbp,%rdi
  mov    $0x31,%ecx
  mov    %r12,%r8
  rep movsq %ds:(%rsi),%es:(%rdi)
  lea    0x11b0(%rsp),%rbp
  sub    $0x8,%rsp
  mov    %r13,%rdi
  movsd  0xe88(%rsp),%xmm0
  mov    $0x7,%edx
  mov    %rbp,%rsi
  addsd  %xmm0,%xmm0
  addsd  0x8(%rsp),%xmm0
  subsd  0x1018(%rsp),%xmm0
  movsd  %xmm0,0x14c8(%rsp)
  push   0x28(%rsp)
  mov    0x38(%rsp),%r9
  mov    0x28(%rsp),%rcx
  call   <gjacobi@plt>
  pop    %rax
  pop    %rdx
  xor    %eax,%eax
  mov    0x8(%rsp),%rdx
  pxor   %xmm1,%xmm1
L15:
  movapd (%rdx,%rax,1),%xmm2
  mulpd  (%rbx,%rax,1),%xmm2
  add    $0x10,%rax
  addsd  %xmm2,%xmm1
  unpckhpd %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  cmp    $0x180,%rax
  jne    L15
  movsd  0xcf0(%rsp),%xmm0
  movsd  (%rsp),%xmm2
  xor    %eax,%eax
  mulsd  %xmm0,%xmm2
  addsd  %xmm1,%xmm2
  pxor   %xmm1,%xmm1
L1:
  movapd (%r15,%rax,1),%xmm4
  mulpd  (%rbx,%rax,1),%xmm4
  add    $0x10,%rax
  addsd  %xmm4,%xmm1
  unpckhpd %xmm4,%xmm4
  addsd  %xmm4,%xmm1
  cmp    $0x180,%rax
  jne    L1
  movsd  0xe80(%rsp),%xmm3
  xor    %eax,%eax
  mulsd  %xmm0,%xmm3
  addsd  %xmm1,%xmm3
  pxor   %xmm1,%xmm1
L27:
  mov    0x30(%rsp),%rdx
  movapd (%rbx,%rax,1),%xmm5
  mulpd  (%rdx,%rax,1),%xmm5
  add    $0x10,%rax
  addsd  %xmm5,%xmm1
  unpckhpd %xmm5,%xmm5
  addsd  %xmm5,%xmm1
  cmp    $0x180,%rax
  jne    L27
  movsd  0x1010(%rsp),%xmm4
  mov    D81(%rip),%rax
  mov    %r14d,%esi
  lea    D249(%rip),%rdi
  add    $0x1,%r14d
  mulsd  %xmm0,%xmm4
  movapd %xmm2,%xmm0
  addsd  %xmm2,%xmm0
  addsd  D81(%rip),%xmm0
  addsd  %xmm1,%xmm4
  movapd %xmm3,%xmm1
  addsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  movq   %rax,%xmm1
  subsd  %xmm4,%xmm0
  call   <printf@plt>
  cmp    $0x5,%r14d
  jne    L26
  mov    0x2188(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L60
  add    $0x2198,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L60:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D108
type_infered: f64[2]
name: parse_data
arguments: data_tag: D256
type_infered: f64
name: parse_data
arguments: data_tag: D35
type_infered: byte[8]
name: parse_data
arguments: data_tag: D216
type_infered: f64[2]
name: parse_data
arguments: data_tag: D270
type_infered: f64[2]
name: parse_data
arguments: data_tag: D372
type_infered: byte[8]
name: parse_data
arguments: data_tag: D247
type_infered: f64[2]
name: parse_data
arguments: data_tag: D312
type_infered: f64[2]
name: parse_data
arguments: data_tag: D280
type_infered: f64
name: parse_data
arguments: data_tag: D47
type_infered: f64[2]
name: parse_data
arguments: data_tag: D111
type_infered: f64[2]
name: parse_data
arguments: data_tag: D231
type_infered: byte[8]
name: parse_data
arguments: data_tag: D72
type_infered: f64[2]
name: parse_data
arguments: data_tag: D159
type_infered: byte[16]
name: parse_data
arguments: data_tag: D218
type_infered: byte[16]
name: parse_data
arguments: data_tag: D279
type_infered: f64[2]
name: parse_data
arguments: data_tag: D52
type_infered: f64[2]
name: parse_data
arguments: data_tag: D427
type_infered: f64[2]
name: parse_data
arguments: data_tag: D87
type_infered: f64[2]
name: parse_data
arguments: data_tag: D109
type_infered: f64
name: parse_data
arguments: data_tag: D442
type_infered: f64[2]
name: parse_data
arguments: data_tag: D425
type_infered: f64[2]
name: parse_data
arguments: data_tag: D262
type_infered: f64[2]
name: parse_data
arguments: data_tag: D74
type_infered: f64[2]
name: parse_data
arguments: data_tag: D226
type_infered: f64[2]
name: parse_data
arguments: data_tag: D23
type_infered: f64[2]
name: parse_data
arguments: data_tag: D77
type_infered: f64[2]
name: parse_data
arguments: data_tag: D103
type_infered: f64[2]
name: parse_data
arguments: data_tag: D367
type_infered: f64[2]
name: parse_data
arguments: data_tag: D193
type_infered: f64[2]
name: parse_data
arguments: data_tag: D75
type_infered: f64[2]
name: parse_data
arguments: data_tag: D150
type_infered: f64[2]
name: parse_data
arguments: data_tag: D431
type_infered: f64[2]
name: parse_data
arguments: data_tag: D301
type_infered: f64[2]
name: parse_data
arguments: data_tag: D309
type_infered: f64
name: parse_data
arguments: data_tag: D141
type_infered: f64[2]
name: parse_data
arguments: data_tag: D98
type_infered: f64[2]
name: parse_data
arguments: data_tag: D356
type_infered: f64[2]
name: parse_data
arguments: data_tag: D286
type_infered: f64[2]
name: parse_data
arguments: data_tag: D282
type_infered: f64[2]
name: parse_data
arguments: data_tag: D81
type_infered: f64
name: parse_data
arguments: data_tag: D249
type_infered: string

tool: {"D108": [0.0,1.88971616463]}

tool: D256: 1.88971616463

tool: {"D35": [0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

tool: {"D216": [0.0,5e-324]}

tool: {"D270": [0.0,2.121995791e-314]}

tool: {"D372": [0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D247": [0.99999971621,1.0000001911]}

tool: {"D312": [1.169596,0.380389]}

tool: D280: 0.999999946968

tool: {"D47": [1.00000019021,1.00000019021]}

tool: {"D111": [0.380389,5.033151]}

tool: {"D231": [0x0c,0x00,0x00,0x00,0x0f,0x00,0x00,0x00]}

tool: {"D72": [1.00000019021,0.999999946968]}

tool: {"D159": [0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

tool: {"D218": [0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00]}

tool: {"D279": [130.709321,23.808866]}

tool: {"D52": [6.443608,5.033151]}

tool: {"D427": [5.033151,1.169596]}

tool: {"D87": [0.444635,-0.099967]}

tool: D109: 0.168855

tool: {"D442": [0.380389,3.425251]}

tool: {"D425": [0.391957,0.155916]}

tool: {"D262": [0.399513,0.700115]}

tool: {"D74": [0.623914,0.168855]}

tool: {"D226": [0.155916,0.607684]}

tool: {"D23": [3.425251,0.623914]}

tool: {"D77": [0.154329,0.535328]}

tool: {"D103": [0.391957,0.154329]}

tool: {"D367": [27.5511677588,7.68181997711]}

tool: {"D193": [0.607684,0.391957]}

tool: {"D75": [0.535328,0.444635]}

tool: {"D150": [2.88241776816,2.39491476866]}

tool: {"D431": [0.801561774379,0.345208161164]}

tool: {"D301": [0.425818989418,10.7458317829]}

tool: D309: 0.187735124967

tool: {"D141": [10.7458317829,1.73374383911]}

tool: {"D98": [1.73374383911,0.425818989418]}

tool: {"D356": [0.425818989418,1.79444186758]}

tool: {"D286": [0.500326654719,0.187735124967]}

tool: {"D282": [1.79444186758,0.500326654719]}

tool: D81: 8.841067

tool: D249: %d %f %f %f %f %f


assistant: ```c
int main() {
  int i = 0;
  int nat = 3;
  int nbf = 7;
  int nocc = 5, info;
  int iter, maxiter = 5;
  double h[49], S[49], T[49], V[49], Ints[406];
  double D[49], J[49], K[49];
  double orbe[7], orbs[49], temp[49];
  double temp1[7], temp2[7];
  double H[49];
  double energy, eone, ej, ek;
  double enuke = 8.841067;
  int atno[] = {
      8,
      1,
      1,
  };
  double x[] = {
      0.0,
      1.88971616463,
      0.0,
  };
  double y[] = {
      0.0,
      0.0,
      1.88971616463,
  };
  double z[] = {
      0.0,
      0.0,
      0.0,
  };
  double xcenter[] = {
      0.0, 0.0, 0.0, 0.0, 0.0, 1.88971616463, 0.0,
  };
  double ycenter[] = {
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.88971616463,
  };
  double zcenter[] = {
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  };
  int lpower[] = {
      0, 0, 1, 0, 0, 0, 0,
  };
  int mpower[] = {
      0, 0, 0, 1, 0, 0, 0,
  };
  int npower[] = {
      0, 0, 0, 0, 1, 0, 0,
  };
  double normc[] = {
      0.99999971621, 1.0000001911, 1.00000019021, 1.00000019021, 1.00000019021, 0.999999946968, 0.999999946968,
  };
  int istart[] = {
      0, 3, 6, 9, 12, 15, 18,
  };
  int nprim[] = {
      3, 3, 3, 3, 3, 3, 3,
  };
  double alpha[] = {
      130.709321, 23.808866, 6.443608, 5.033151, 1.169596, 0.380389, 5.033151, 1.169596, 0.380389, 5.033151, 1.169596, 0.380389, 5.033151, 1.169596, 0.380389, 3.425251, 0.623914, 0.168855, 3.425251, 0.623914, 0.168855,
  };
  double coef[] = {
      0.154329, 0.535328, 0.444635, -0.099967, 0.399513, 0.700115, 0.155916, 0.607684, 0.391957, 0.155916, 0.607684, 0.391957, 0.155916, 0.607684, 0.391957, 0.154329, 0.535328, 0.444635, 0.154329, 0.535328, 0.444635,
  };
  double normp[] = {
      27.5511677588, 7.68181997711, 2.88241776816, 2.39491476866, 0.801561774379, 0.345208161164, 10.7458317829, 1.73374383911, 0.425818989418, 10.7458317829, 1.73374383911, 0.425818989418, 10.7458317829, 1.73374383911, 0.425818989418, 1.79444186758, 0.500326654719, 0.187735124967, 1.79444186758, 0.500326654719, 0.187735124967,
  };
  getS(nbf, nprim, normc, istart, xcenter, ycenter, zcenter, lpower, mpower, npower, normp, coef, alpha, S);
  getT(nbf, nprim, normc, istart, xcenter, ycenter, zcenter, lpower, mpower, npower, normp, coef, alpha, T);
  getV(nbf, nprim, normc, istart, xcenter, ycenter, zcenter, lpower, mpower, npower, normp, coef, alpha, nat, atno, x, y, z, V);
  getInts(nbf, nprim, normc, istart, xcenter, ycenter, zcenter, lpower, mpower, npower, normp, coef, alpha, Ints);
  for (i = 0; i < nbf * nbf; i++)
    h[i] = T[i] + V[i];
  getD(nbf, nocc, orbs, D);
  for (i = 0; i < nbf * nbf; i++) {
    orbs[i] = h[i];
    H[i] = h[i];
    temp[i] = S[i];
  }
  info = gjacobi(H, temp, nbf, orbe, orbs, temp1, temp2);
  for (iter = 0; iter < maxiter; iter++) {
    getD(nbf, nocc, orbs, D);
    getJ(nbf, D, Ints, J);
    getK(nbf, D, Ints, K);
    for (i = 0; i < nbf * nbf; i++) {
      H[i] = h[i] + 2 * J[i] - K[i];
      temp[i] = S[i];
    };
    info = gjacobi(H, temp, nbf, orbe, orbs, temp1, temp2);
    eone = 0.;
    for (i = 0; i < nbf * nbf; i++)
      eone += h[i] * D[i];
    ej = 0.;
    for (i = 0; i < nbf * nbf; i++)
      ej += D[i] * J[i];
    ek = 0.;
    for (i = 0; i < nbf * nbf; i++)
      ek += D[i] * K[i];
    energy = enuke + 2 * eone + 2 * ej - ek;
    printf("%d %f %f %f %f %f\n", iter, energy, enuke, eone, ej, ek);
  }
  return 0;
}
```