// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/output.c
// Function: output_init
int output_init(
                struct background * pba,
                struct thermodynamics * pth,
                struct perturbations * ppt,
                struct primordial * ppm,
                struct transfer * ptr,
                struct harmonic * phr,
                struct fourier * pfo,
                struct lensing * ple,
                struct distortions * psd,
                struct output * pop
                ) {

  /** Summary: */

  /** - check that we really want to output at least one file */

  if ((ppt->has_cls == _FALSE_) && (ppt->has_pk_matter == _FALSE_) && (ppt->has_density_transfers == _FALSE_) && (ppt->has_velocity_transfers == _FALSE_) && (pop->write_background == _FALSE_) && (pop->write_thermodynamics == _FALSE_) && (pop->write_primordial == _FALSE_)) {
    if (pop->output_verbose > 0)
      printf("No output files requested. Output module skipped.\n");
    return _SUCCESS_;
  }
  else {
    if (pop->output_verbose > 0)
      printf("Writing output files in %s... \n",pop->root);
  }

  /** - deal with all anisotropy power spectra \f$ C_l\f$'s */

  if (ppt->has_cls == _TRUE_) {

    class_call(output_cl(pba,ppt,phr,ple,pop),
               pop->error_message,
               pop->error_message);
  }

  /** - deal with all Fourier matter power spectra P(k)'s */

  if (ppt->has_pk_matter == _TRUE_) {

    class_call(output_pk(pba,ppt,pfo,pop,pk_linear),
               pop->error_message,
               pop->error_message);

    if (pfo->method != nl_none) {

      class_call(output_pk(pba,ppt,pfo,pop,pk_nonlinear),
                 pop->error_message,
                 pop->error_message);

    }

    if (pfo->has_pk_numerical_nowiggle == _TRUE_) {

      class_call(output_pk(pba,ppt,pfo,pop,pk_numerical_nowiggle),
                 pop->error_message,
                 pop->error_message);
    }

    if (pfo->has_pk_analytic_nowiggle == _TRUE_) {

      class_call(output_pk(pba,ppt,pfo,pop,pk_analytic_nowiggle),
                 pop->error_message,
                 pop->error_message);
    }
  }

  /** - deal with density and matter power spectra */

  if ((ppt->has_density_transfers == _TRUE_) || (ppt->has_velocity_transfers == _TRUE_)) {

    class_call(output_tk(pba,ppt,pop),
               pop->error_message,
               pop->error_message);

  }

  /** - deal with background quantities */

  if (pop->write_background == _TRUE_) {

    class_call(output_background(pba,pop),
               pop->error_message,
               pop->error_message);

  }

  /** - deal with thermodynamics quantities */

  if (pop->write_thermodynamics == _TRUE_) {

    class_call(output_thermodynamics(pba,pth,pop),
               pop->error_message,
               pop->error_message);

  }

  /** - deal with perturbation quantities */

  if (pop->write_perturbations == _TRUE_ && ppt->has_perturbations) {

    class_call(output_perturbations(pba,ppt,pop),
               pop->error_message,
               pop->error_message);

  }

  /** - deal with primordial spectra */

  if (pop->write_primordial == _TRUE_ && ppt->has_perturbations) {

    class_call(output_primordial(ppt,ppm,pop),
               pop->error_message,
               pop->error_message);

  }

  /** - deal with heating */

  if (pop->write_exotic_injection == _TRUE_ || pop->write_noninjection == _TRUE_) {

    class_call(output_heating(&(pth->in),&(psd->ni),pop),
               pop->error_message,
               pop->error_message);
  }

  /** - deal with spectral distortions */

  if (pop->write_distortions == _TRUE_) {

    class_call(output_distortions(psd,pop),
               pop->error_message,
               pop->error_message);
  }

  return _SUCCESS_;

}

// Assembly:
subq $0x6038, %rsp           # imm = 0x6038
movq 0x6058(%rsp), %rax
movq 0x6050(%rsp), %rax
movq 0x6048(%rsp), %rax
movq 0x6040(%rsp), %rax
movq %rdi, 0x6028(%rsp)
movq %rsi, 0x6020(%rsp)
movq %rdx, 0x6018(%rsp)
movq %rcx, 0x6010(%rsp)
movq %r8, 0x6008(%rsp)
movq %r9, 0x6000(%rsp)
movq 0x6018(%rsp), %rax
movswl 0xc(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6018(%rsp), %rax
movswl 0x32(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6018(%rsp), %rax
movswl 0x34(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6018(%rsp), %rax
movswl 0x36(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6058(%rsp), %rax
movswl 0x410(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6058(%rsp), %rax
movswl 0x412(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6058(%rsp), %rax
movswl 0x416(%rax), %eax
cmpl $0x0, %eax
jne 0x1c78b1
movq 0x6058(%rsp), %rax
movswl 0x41e(%rax), %eax
cmpl $0x0, %eax
jle 0x1c78a1
leaq 0x4b49d(%rip), %rdi     # 0x212d37
movb $0x0, %al
callq 0x8030
movl $0x0, 0x6034(%rsp)
jmp 0x1c813d
movq 0x6058(%rsp), %rax
movswl 0x41e(%rax), %eax
cmpl $0x0, %eax
jle 0x1c78db
movq 0x6058(%rsp), %rsi
leaq 0x4b496(%rip), %rdi     # 0x212d6a
movb $0x0, %al
callq 0x8030
jmp 0x1c78dd
movq 0x6018(%rsp), %rax
movswl 0xc(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7993
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6000(%rsp), %rdx
movq 0x6048(%rsp), %rcx
movq 0x6058(%rsp), %r8
callq 0x1c8150
cmpl $0x1, %eax
jne 0x1c7991
leaq 0x5800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xaa96(%rip), %rsi      # 0x1d23d8
leaq 0x4b441(%rip), %rdx     # 0x212d8a
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x5800(%rsp), %r8
leaq 0xa6c6(%rip), %rsi      # 0x1d2034
leaq 0x4b434(%rip), %rdx     # 0x212da9
movl $0x8e, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7993
movq 0x6018(%rsp), %rax
movswl 0x32(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7c5c
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6040(%rsp), %rdx
movq 0x6058(%rsp), %rcx
xorl %r8d, %r8d
callq 0x1ca420
cmpl $0x1, %eax
jne 0x1c7a42
leaq 0x5000(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa9e5(%rip), %rsi      # 0x1d23d8
leaq 0x4b3bb(%rip), %rdx     # 0x212db5
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x5000(%rsp), %r8
leaq 0xa615(%rip), %rsi      # 0x1d2034
leaq 0x4b383(%rip), %rdx     # 0x212da9
movl $0x97, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
movq 0x6040(%rsp), %rax
cmpl $0x0, (%rax)
je 0x1c7af2
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6040(%rsp), %rdx
movq 0x6058(%rsp), %rcx
movl $0x1, %r8d
callq 0x1ca420
cmpl $0x1, %eax
jne 0x1c7af0
leaq 0x4800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa937(%rip), %rsi      # 0x1d23d8
leaq 0x4b332(%rip), %rdx     # 0x212dda
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x4800(%rsp), %r8
leaq 0xa567(%rip), %rsi      # 0x1d2034
leaq 0x4b2d5(%rip), %rdx     # 0x212da9
movl $0x9d, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7af2
movq 0x6040(%rsp), %rax
movswl 0x3a(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7ba6
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6040(%rsp), %rdx
movq 0x6058(%rsp), %rcx
movl $0x2, %r8d
callq 0x1ca420
cmpl $0x1, %eax
jne 0x1c7ba4
leaq 0x4000(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa883(%rip), %rsi      # 0x1d23d8
leaq 0x4b2a6(%rip), %rdx     # 0x212e02
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x4000(%rsp), %r8
leaq 0xa4b3(%rip), %rsi      # 0x1d2034
leaq 0x4b221(%rip), %rdx     # 0x212da9
movl $0xa5, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7ba6
movq 0x6040(%rsp), %rax
movswl 0x38(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7c5a
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6040(%rsp), %rdx
movq 0x6058(%rsp), %rcx
movl $0x3, %r8d
callq 0x1ca420
cmpl $0x1, %eax
jne 0x1c7c58
leaq 0x3800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa7cf(%rip), %rsi      # 0x1d23d8
leaq 0x4b223(%rip), %rdx     # 0x212e33
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x3800(%rsp), %r8
leaq 0xa3ff(%rip), %rsi      # 0x1d2034
leaq 0x4b16d(%rip), %rdx     # 0x212da9
movl $0xac, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7c5a
jmp 0x1c7c5c
movq 0x6018(%rsp), %rax
movswl 0x34(%rax), %eax
cmpl $0x1, %eax
je 0x1c7c82
movq 0x6018(%rsp), %rax
movswl 0x36(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7d13
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6058(%rsp), %rdx
callq 0x1cc800
cmpl $0x1, %eax
jne 0x1c7d11
leaq 0x3000(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa716(%rip), %rsi      # 0x1d23d8
leaq 0x4b19a(%rip), %rdx     # 0x212e63
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x3000(%rsp), %r8
leaq 0xa346(%rip), %rsi      # 0x1d2034
leaq 0x4b0b4(%rip), %rdx     # 0x212da9
movl $0xb6, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7d13
movq 0x6058(%rsp), %rax
movswl 0x410(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7db4
movq 0x6028(%rsp), %rdi
movq 0x6058(%rsp), %rsi
callq 0x1cd400
cmpl $0x1, %eax
jne 0x1c7db2
leaq 0x2800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa675(%rip), %rsi      # 0x1d23d8
leaq 0x4b110(%rip), %rdx     # 0x212e7a
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x2800(%rsp), %r8
leaq 0xa2a5(%rip), %rsi      # 0x1d2034
leaq 0x4b013(%rip), %rdx     # 0x212da9
movl $0xc0, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7db4
movq 0x6058(%rsp), %rax
movswl 0x412(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7e5d
movq 0x6028(%rsp), %rdi
movq 0x6020(%rsp), %rsi
movq 0x6058(%rsp), %rdx
callq 0x1cd820
cmpl $0x1, %eax
jne 0x1c7e5b
leaq 0x2000(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa5cc(%rip), %rsi      # 0x1d23d8
leaq 0x4b082(%rip), %rdx     # 0x212e95
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x2000(%rsp), %r8
leaq 0xa1fc(%rip), %rsi      # 0x1d2034
leaq 0x4af6a(%rip), %rdx     # 0x212da9
movl $0xca, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7e5d
movq 0x6058(%rsp), %rax
movswl 0x414(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7f1a
movq 0x6018(%rsp), %rax
movswl (%rax), %eax
cmpl $0x0, %eax
je 0x1c7f1a
movq 0x6028(%rsp), %rdi
movq 0x6018(%rsp), %rsi
movq 0x6058(%rsp), %rdx
callq 0x1cdd70
cmpl $0x1, %eax
jne 0x1c7f18
leaq 0x1800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa50f(%rip), %rsi      # 0x1d23d8
leaq 0x4afe8(%rip), %rdx     # 0x212eb8
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x1800(%rsp), %r8
leaq 0xa13f(%rip), %rsi      # 0x1d2034
leaq 0x4aead(%rip), %rdx     # 0x212da9
movl $0xd4, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7f1a
movq 0x6058(%rsp), %rax
movswl 0x416(%rax), %eax
cmpl $0x1, %eax
jne 0x1c7fd7
movq 0x6018(%rsp), %rax
movswl (%rax), %eax
cmpl $0x0, %eax
je 0x1c7fd7
movq 0x6018(%rsp), %rdi
movq 0x6010(%rsp), %rsi
movq 0x6058(%rsp), %rdx
callq 0x1ce430
cmpl $0x1, %eax
jne 0x1c7fd5
leaq 0x1000(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa452(%rip), %rsi      # 0x1d23d8
leaq 0x4af4d(%rip), %rdx     # 0x212eda
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x1000(%rsp), %r8
leaq 0xa082(%rip), %rsi      # 0x1d2034
leaq 0x4adf0(%rip), %rdx     # 0x212da9
movl $0xde, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c7fd7
movq 0x6058(%rsp), %rax
movswl 0x418(%rax), %eax
cmpl $0x1, %eax
je 0x1c8003
movq 0x6058(%rsp), %rax
movswl 0x41a(%rax), %eax
cmpl $0x1, %eax
jne 0x1c80a2
movq 0x6020(%rsp), %rdi
addq $0xc0, %rdi
movq 0x6050(%rsp), %rsi
addq $0xcf0, %rsi            # imm = 0xCF0
movq 0x6058(%rsp), %rdx
callq 0x1ce7c0
cmpl $0x1, %eax
jne 0x1c80a0
leaq 0x800(%rsp), %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa387(%rip), %rsi      # 0x1d23d8
leaq 0x4aea1(%rip), %rdx     # 0x212ef9
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x800(%rsp), %r8
leaq 0x9fb7(%rip), %rsi      # 0x1d2034
leaq 0x4ad25(%rip), %rdx     # 0x212da9
movl $0xe8, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c80a2
movq 0x6058(%rsp), %rax
movswl 0x41c(%rax), %eax
cmpl $0x1, %eax
jne 0x1c8132
movq 0x6050(%rsp), %rdi
movq 0x6058(%rsp), %rsi
callq 0x1ceee0
cmpl $0x1, %eax
jne 0x1c8130
movq %rsp, %rdi
movq 0x6058(%rsp), %rcx
addq $0x420, %rcx            # imm = 0x420
leaq 0xa2ef(%rip), %rsi      # 0x1d23d8
leaq 0x4ae33(%rip), %rdx     # 0x212f23
movb $0x0, %al
callq 0x5b9c0
movq 0x6058(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
movq %rsp, %r8
leaq 0x9f24(%rip), %rsi      # 0x1d2034
leaq 0x4ac92(%rip), %rdx     # 0x212da9
movl $0xf1, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x6034(%rsp)
jmp 0x1c813d
jmp 0x1c8132
movl $0x0, 0x6034(%rsp)
movl 0x6034(%rsp), %eax
addq $0x6038, %rsp           # imm = 0x6038
retq
nopl (%rax)