program prob6
    implicit none
    integer(8) :: N, i, j, K, L, m, o, tmp, s, ind, indd
    integer(8), allocatable :: a(:)
    character(40) :: x, y
    logical :: check

    read(*,*) N
    allocate(a(N))

    read(*,*) a

    K = 0
    L = 0
    do i = 1, N
        if(a(i) > 0)then
            K = K + 1
        else if(a(i) < 0)then
            L = L + 1
        end if
    end do

    s = 0
    do i = 1, N
        s = s + abs(a(i))
    end do

    if(K == N) then
        m = 100000
        do i = 1, N
            if(m > a(i)) then
                m = a(i)
                ind = i
            end if
        end do
        write(x,*) s - 2 * m
        write(*,'(a)') trim(adjustl(x))

        do i = 1, N
            if(i /= ind) then
                indd = i
                exit
            end if
        end do

        tmp = m
        do j = 1, N
            if(j == indd .or. j == ind) then
                cycle
            end if
            write(x,*) tmp
            write(y,*) a(j)
            write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
            tmp = tmp - a(j)   
        end do
        write(x,*) a(indd)
        write(y,*) tmp
        write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        tmp = a(indd) - tmp   

        ! if(mod(N, 2) == 1) then
        !     tmp = m
        !     do i = 1, N
        !         if(i == ind) then
        !             cycle
        !         end if
        !         write(x,*) a(i)
        !         write(y,*) tmp
        !         write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !         tmp = a(i) - tmp                 
        !     end do
        ! else
        !     tmp = m
        !     check = .false.
        !     do i = 1, N
        !         if(i == ind) then
        !             cycle
        !         end if
        !         if(check .eqv. .false.) then
        !             write(x,*) tmp
        !             write(y,*) a(i)
        !             write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !             tmp = tmp - a(i)                    
        !         else
        !             write(x,*) a(i)
        !             write(y,*) tmp
        !             write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !             tmp = a(i) - tmp 
        !         end if
        !     end do
        ! end if

    else if(L == N) then
        m = -100000
        do i = 1, N
            if(m < a(i)) then
                m = a(i)
                ind = i
            end if
        end do
        write(x,*) s + 2 * m
        write(*,'(a)') trim(adjustl(x))
        tmp = m
        do i = 1, N
            if(i == ind) then
                cycle
            end if
            write(x,*) tmp
            write(y,*) a(i)
            write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
            tmp = tmp - a(i)  
        end do

    else
        do i = 1, N
            if(a(i) <= 0) then
                m = a(i)
                ind = i
                exit
            end if
        end do
        do i = 1, N
            if(a(i) >= 0) then
                o = a(i)
                if(o == 0 .and. i == ind) then
                    cycle
                end if
                indd = i
                exit
            end if
        end do
        write(x,*) s
        write(*,'(a)') trim(adjustl(x))
        
        tmp = m
        do j = 1, N
            if(a(j) > 0) then
                    if(j == indd) then
                        cycle
                    end if
                    write(x,*) tmp
                    write(y,*) a(j)
                    write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
                    tmp = tmp - a(j)                
            end if
        end do
        write(x,*) a(indd)
        write(y,*) tmp
        write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        tmp = a(indd) - tmp
        do j = ind + 1, N
            if(a(j) <= 0) then
                    if(j == indd) then
                        cycle
                    end if
                    write(x,*) tmp
                    write(y,*) a(j)
                    write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
                    tmp = tmp - a(j)                
            end if
        end do

        ! if(mod(K, 2) == 1) then
        !     tmp = m
        !     do j = 1, N
        !         if(a(j) > 0) then
        !             write(x,*) a(j)
        !             write(y,*) tmp
        !             write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !             tmp = a(j) - tmp
        !         end if
        !     end do
        !     do j = ind+1, N
        !         if(a(j) <= 0) then
        !             write(x,*) tmp
        !             write(y,*) a(j)
        !             write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !             tmp = tmp - a(j)
        !         end if
        !     end do
        ! else
        !     tmp = m
        !     check = .false.
        !     do j = 1, N
        !         if(a(j) > 0) then
        !             if(check .eqv. .false.) then
        !                 write(x,*) tmp
        !                 write(y,*) a(j)
        !                 write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !                 tmp = tmp - a(j)
        !                 check = .true.
        !             else
        !                 write(x,*) a(j)
        !                 write(y,*) tmp
        !                 write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !                 tmp = a(j) - tmp
        !             end if
        !         end if
        !     end do
        !     do j = ind+1, N
        !         if(a(j) <= 0) then
        !             write(x,*) tmp
        !             write(y,*) a(j)
        !             write(*,'(a, 1X, a)') trim(adjustl(x)), trim(adjustl(y))
        !             tmp = tmp - a(j)
        !         end if
        !     end do
        ! end if


    end if

    
    deallocate(a)

    stop
contains
end program prob6
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEa.0 = internal unnamed_addr global ptr null
@_QFEa.8 = internal unnamed_addr global i64 0
@_QFEx = internal global [40 x i8] undef
@_QFEy = internal global [40 x i8] undef
@_QQcl.7a516fa5df825b588f736a67376d3864 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_4058/source.f\00"
@_QQcl.286129 = linkonce constant [3 x i8] c"(a)"
@_QQcl.28612C2031582C206129 = linkonce constant [10 x i8] c"(a, 1X, a)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #1

; Function Attrs: noreturn
define void @_QQmain() local_unnamed_addr #2 {
  %1 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %2 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %3 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %4 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %5 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %6 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %7 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %8 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %9 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %10 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %11 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %12 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %13 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %14 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %15 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %16 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %17 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %18 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %19 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %20 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %21 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %22 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %23 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %24 = alloca { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, align 8
  %25 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %26 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %27 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %28 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %29 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %30 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %31 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %32 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %33 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %34 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %35 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %36 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %37 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %38 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %39 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %40 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %41 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %42 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %43 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %44 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %45 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %46 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %47 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %48 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %49 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %50 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %51 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %52 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %53 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %54 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %55 = alloca i64, align 8
  %56 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 8)
  %57 = call i1 @_FortranAioInputInteger(ptr %56, ptr nonnull %55, i32 8)
  %58 = call i32 @_FortranAioEndIoStatement(ptr %56)
  %59 = load i64, ptr %55, align 8, !tbaa !3
  %60 = call i64 @llvm.smax.i64(i64 %59, i64 0)
  %61 = shl i64 %60, 3
  %62 = call ptr @malloc(i64 %61)
  store ptr %62, ptr @_QFEa.0, align 8, !tbaa !7
  store i64 %60, ptr @_QFEa.8, align 8, !tbaa !7
  %63 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 11)
  %.unpack = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %.unpack3370.unpack.unpack3372 = load i64, ptr @_QFEa.8, align 8, !tbaa !7
  store ptr %.unpack, ptr %24, align 8, !tbaa !7
  %.fca.1.gep1180 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 1
  store i64 8, ptr %.fca.1.gep1180, align 8, !tbaa !7
  %.fca.2.gep1182 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1182, align 8, !tbaa !7
  %.fca.3.gep1184 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 3
  store i8 1, ptr %.fca.3.gep1184, align 4, !tbaa !7
  %.fca.4.gep1186 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 4
  store i8 10, ptr %.fca.4.gep1186, align 1, !tbaa !7
  %.fca.5.gep1188 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1188, align 2, !tbaa !7
  %.fca.6.gep1190 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1190, align 1, !tbaa !7
  %.fca.7.0.0.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 7, i64 0, i64 0
  store i64 1, ptr %.fca.7.0.0.gep, align 8, !tbaa !7
  %.fca.7.0.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 7, i64 0, i64 1
  store i64 %.unpack3370.unpack.unpack3372, ptr %.fca.7.0.1.gep, align 8, !tbaa !7
  %.fca.7.0.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %24, i64 0, i32 7, i64 0, i64 2
  store i64 8, ptr %.fca.7.0.2.gep, align 8, !tbaa !7
  %64 = call i1 @_FortranAioInputDescriptor(ptr %63, ptr nonnull %24)
  %65 = call i32 @_FortranAioEndIoStatement(ptr %63)
  %66 = load i64, ptr %55, align 8, !tbaa !3
  %67 = icmp sgt i64 %66, 0
  br i1 %67, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %0
  %.unpack3607 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %min.iters.check = icmp ult i64 %66, 4
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph
  %n.vec = and i64 %66, -4
  %ind.end = or i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %78, %vector.body ]
  %vec.phi3724 = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %79, %vector.body ]
  %vec.phi3725 = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %76, %vector.body ]
  %vec.phi3726 = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %77, %vector.body ]
  %68 = getelementptr i64, ptr %.unpack3607, i64 %index
  %wide.load = load <2 x i64>, ptr %68, align 8, !tbaa !3
  %69 = getelementptr i64, ptr %68, i64 2
  %wide.load3727 = load <2 x i64>, ptr %69, align 8, !tbaa !3
  %70 = icmp sgt <2 x i64> %wide.load, zeroinitializer
  %71 = icmp sgt <2 x i64> %wide.load3727, zeroinitializer
  %72 = lshr <2 x i64> %wide.load, <i64 63, i64 63>
  %73 = lshr <2 x i64> %wide.load3727, <i64 63, i64 63>
  %74 = zext <2 x i1> %70 to <2 x i64>
  %75 = zext <2 x i1> %71 to <2 x i64>
  %76 = add <2 x i64> %vec.phi3725, %74
  %77 = add <2 x i64> %vec.phi3726, %75
  %78 = add <2 x i64> %72, %vec.phi
  %79 = add <2 x i64> %73, %vec.phi3724
  %index.next = add nuw i64 %index, 4
  %80 = icmp eq i64 %index.next, %n.vec
  br i1 %80, label %middle.block, label %vector.body, !llvm.loop !9

middle.block:                                     ; preds = %vector.body
  %bin.rdx3728 = add <2 x i64> %77, %76
  %81 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx3728)
  %bin.rdx = add <2 x i64> %79, %78
  %82 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx)
  %cmp.n = icmp eq i64 %66, %n.vec
  br i1 %cmp.n, label %.preheader3629, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %.lr.ph, %middle.block
  %.ph3753 = phi i64 [ 1, %.lr.ph ], [ %ind.end, %middle.block ]
  %.033213631.ph = phi i64 [ 0, %.lr.ph ], [ %82, %middle.block ]
  %.033233630.ph = phi i64 [ 0, %.lr.ph ], [ %81, %middle.block ]
  br label %scalar.ph

.preheader3629:                                   ; preds = %scalar.ph, %middle.block
  %.13324.lcssa = phi i64 [ %81, %middle.block ], [ %.13324, %scalar.ph ]
  %.13322.lcssa = phi i64 [ %82, %middle.block ], [ %.13322, %scalar.ph ]
  br i1 %67, label %.lr.ph3634, label %._crit_edge

.lr.ph3634:                                       ; preds = %.preheader3629
  %.unpack3595 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %min.iters.check3732 = icmp ult i64 %66, 4
  br i1 %min.iters.check3732, label %scalar.ph3731.preheader, label %vector.ph3733

vector.ph3733:                                    ; preds = %.lr.ph3634
  %n.vec3735 = and i64 %66, -4
  %ind.end3736 = or i64 %n.vec3735, 1
  br label %vector.body3739

vector.body3739:                                  ; preds = %vector.body3739, %vector.ph3733
  %index3740 = phi i64 [ 0, %vector.ph3733 ], [ %index.next3746, %vector.body3739 ]
  %vec.phi3741 = phi <2 x i64> [ zeroinitializer, %vector.ph3733 ], [ %87, %vector.body3739 ]
  %vec.phi3742 = phi <2 x i64> [ zeroinitializer, %vector.ph3733 ], [ %88, %vector.body3739 ]
  %83 = getelementptr i64, ptr %.unpack3595, i64 %index3740
  %wide.load3744 = load <2 x i64>, ptr %83, align 8, !tbaa !3
  %84 = getelementptr i64, ptr %83, i64 2
  %wide.load3745 = load <2 x i64>, ptr %84, align 8, !tbaa !3
  %85 = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %wide.load3744, i1 false)
  %86 = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %wide.load3745, i1 false)
  %87 = add <2 x i64> %85, %vec.phi3741
  %88 = add <2 x i64> %86, %vec.phi3742
  %index.next3746 = add nuw i64 %index3740, 4
  %89 = icmp eq i64 %index.next3746, %n.vec3735
  br i1 %89, label %middle.block3730, label %vector.body3739, !llvm.loop !12

middle.block3730:                                 ; preds = %vector.body3739
  %bin.rdx3747 = add <2 x i64> %88, %87
  %90 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx3747)
  %cmp.n3738 = icmp eq i64 %66, %n.vec3735
  br i1 %cmp.n3738, label %._crit_edge, label %scalar.ph3731.preheader

scalar.ph3731.preheader:                          ; preds = %.lr.ph3634, %middle.block3730
  %.ph = phi i64 [ 1, %.lr.ph3634 ], [ %ind.end3736, %middle.block3730 ]
  %.033143633.ph = phi i64 [ 0, %.lr.ph3634 ], [ %90, %middle.block3730 ]
  br label %scalar.ph3731

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %91 = phi i64 [ %97, %scalar.ph ], [ %.ph3753, %scalar.ph.preheader ]
  %.033213631 = phi i64 [ %.13322, %scalar.ph ], [ %.033213631.ph, %scalar.ph.preheader ]
  %.033233630 = phi i64 [ %.13324, %scalar.ph ], [ %.033233630.ph, %scalar.ph.preheader ]
  %92 = add i64 %91, -1
  %93 = getelementptr i64, ptr %.unpack3607, i64 %92
  %94 = load i64, ptr %93, align 8, !tbaa !3
  %95 = icmp sgt i64 %94, 0
  %.lobit = lshr i64 %94, 63
  %96 = zext i1 %95 to i64
  %.13324 = add i64 %.033233630, %96
  %.13322 = add i64 %.lobit, %.033213631
  %97 = add nuw i64 %91, 1
  %exitcond.not = icmp eq i64 %91, %66
  br i1 %exitcond.not, label %.preheader3629, label %scalar.ph, !llvm.loop !13

scalar.ph3731:                                    ; preds = %scalar.ph3731.preheader, %scalar.ph3731
  %98 = phi i64 [ %104, %scalar.ph3731 ], [ %.ph, %scalar.ph3731.preheader ]
  %.033143633 = phi i64 [ %103, %scalar.ph3731 ], [ %.033143633.ph, %scalar.ph3731.preheader ]
  %99 = add i64 %98, -1
  %100 = getelementptr i64, ptr %.unpack3595, i64 %99
  %101 = load i64, ptr %100, align 8, !tbaa !3
  %102 = call i64 @llvm.abs.i64(i64 %101, i1 false)
  %103 = add i64 %102, %.033143633
  %104 = add nuw i64 %98, 1
  %exitcond3693.not = icmp eq i64 %98, %66
  br i1 %exitcond3693.not, label %._crit_edge, label %scalar.ph3731, !llvm.loop !14

._crit_edge:                                      ; preds = %scalar.ph3731, %middle.block3730, %0, %.preheader3629
  %.03321.lcssa3712 = phi i64 [ %.13322.lcssa, %.preheader3629 ], [ 0, %0 ], [ %.13322.lcssa, %middle.block3730 ], [ %.13322.lcssa, %scalar.ph3731 ]
  %.03323.lcssa3711 = phi i64 [ %.13324.lcssa, %.preheader3629 ], [ 0, %0 ], [ %.13324.lcssa, %middle.block3730 ], [ %.13324.lcssa, %scalar.ph3731 ]
  %.03314.lcssa = phi i64 [ 0, %.preheader3629 ], [ 0, %0 ], [ %90, %middle.block3730 ], [ %103, %scalar.ph3731 ]
  %105 = icmp eq i64 %.03323.lcssa3711, %66
  br i1 %105, label %.preheader3625, label %179

.preheader3625:                                   ; preds = %._crit_edge
  br i1 %67, label %.lr.ph3676, label %._crit_edge3677

.lr.ph3676:                                       ; preds = %.preheader3625
  %.unpack3583 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %xtraiter3763 = and i64 %66, 1
  %106 = icmp eq i64 %66, 1
  br i1 %106, label %._crit_edge3677.loopexit.unr-lcssa, label %.lr.ph3676.new

.lr.ph3676.new:                                   ; preds = %.lr.ph3676
  %unroll_iter3768 = and i64 %66, -2
  br label %107

107:                                              ; preds = %107, %.lr.ph3676.new
  %108 = phi i64 [ 1, %.lr.ph3676.new ], [ %117, %107 ]
  %.033163675 = phi i64 [ 100000, %.lr.ph3676.new ], [ %spec.select3620.1, %107 ]
  %.033293674 = phi i64 [ undef, %.lr.ph3676.new ], [ %spec.select3619.1, %107 ]
  %niter3769 = phi i64 [ 0, %.lr.ph3676.new ], [ %niter3769.next.1, %107 ]
  %109 = add nsw i64 %108, -1
  %110 = getelementptr i64, ptr %.unpack3583, i64 %109
  %111 = load i64, ptr %110, align 8, !tbaa !3
  %112 = icmp sgt i64 %.033163675, %111
  %spec.select3619 = select i1 %112, i64 %108, i64 %.033293674
  %spec.select3620 = call i64 @llvm.smin.i64(i64 %.033163675, i64 %111)
  %113 = add nuw i64 %108, 1
  %114 = getelementptr i64, ptr %.unpack3583, i64 %108
  %115 = load i64, ptr %114, align 8, !tbaa !3
  %116 = icmp sgt i64 %spec.select3620, %115
  %spec.select3619.1 = select i1 %116, i64 %113, i64 %spec.select3619
  %spec.select3620.1 = call i64 @llvm.smin.i64(i64 %spec.select3620, i64 %115)
  %117 = add nuw i64 %108, 2
  %niter3769.next.1 = add i64 %niter3769, 2
  %niter3769.ncmp.1 = icmp eq i64 %niter3769.next.1, %unroll_iter3768
  br i1 %niter3769.ncmp.1, label %._crit_edge3677.loopexit.unr-lcssa, label %107

._crit_edge3677.loopexit.unr-lcssa:               ; preds = %107, %.lr.ph3676
  %spec.select3620.lcssa.ph = phi i64 [ undef, %.lr.ph3676 ], [ %spec.select3620.1, %107 ]
  %.unr3764 = phi i64 [ 1, %.lr.ph3676 ], [ %117, %107 ]
  %.033163675.unr = phi i64 [ 100000, %.lr.ph3676 ], [ %spec.select3620.1, %107 ]
  %.033293674.unr = phi i64 [ undef, %.lr.ph3676 ], [ %spec.select3619.1, %107 ]
  %lcmp.mod3765.not = icmp eq i64 %xtraiter3763, 0
  br i1 %lcmp.mod3765.not, label %._crit_edge3677, label %._crit_edge3677.loopexit.epilog-lcssa

._crit_edge3677.loopexit.epilog-lcssa:            ; preds = %._crit_edge3677.loopexit.unr-lcssa
  %118 = add i64 %.unr3764, -1
  %119 = getelementptr i64, ptr %.unpack3583, i64 %118
  %120 = load i64, ptr %119, align 8, !tbaa !3
  %121 = icmp sgt i64 %.033163675.unr, %120
  %spec.select3619.epil = select i1 %121, i64 %.unr3764, i64 %.033293674.unr
  %spec.select3620.epil = call i64 @llvm.smin.i64(i64 %.033163675.unr, i64 %120)
  br label %._crit_edge3677

._crit_edge3677:                                  ; preds = %._crit_edge3677.loopexit.epilog-lcssa, %._crit_edge3677.loopexit.unr-lcssa, %.preheader3625
  %.03329.lcssa = phi i64 [ undef, %.preheader3625 ], [ %.033293674.unr, %._crit_edge3677.loopexit.unr-lcssa ], [ %spec.select3619.epil, %._crit_edge3677.loopexit.epilog-lcssa ]
  %.03316.lcssa = phi i64 [ 100000, %.preheader3625 ], [ %spec.select3620.lcssa.ph, %._crit_edge3677.loopexit.unr-lcssa ], [ %spec.select3620.epil, %._crit_edge3677.loopexit.epilog-lcssa ]
  %122 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 36)
  %123 = shl i64 %.03316.lcssa, 1
  %124 = sub i64 %.03314.lcssa, %123
  %125 = call i1 @_FortranAioOutputInteger64(ptr %122, i64 %124)
  %126 = call i32 @_FortranAioEndIoStatement(ptr %122)
  %127 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.286129, i64 3, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 37)
  store ptr @_QFEx, ptr %8, align 8, !tbaa !7
  %.fca.1.gep2612 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 1
  store i64 40, ptr %.fca.1.gep2612, align 8, !tbaa !7
  %.fca.2.gep2613 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2613, align 8, !tbaa !7
  %.fca.3.gep2614 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2614, align 4, !tbaa !7
  %.fca.4.gep2615 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2615, align 1, !tbaa !7
  %.fca.5.gep2616 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2616, align 2, !tbaa !7
  %.fca.6.gep2617 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %8, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2617, align 1, !tbaa !7
  %.fca.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 1
  %.fca.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %54, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep, align 8, !tbaa !7
  %.fca.3.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep, align 4, !tbaa !7
  %.fca.4.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep, align 1, !tbaa !7
  %.fca.5.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep, align 2, !tbaa !7
  %.fca.6.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %54, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep, align 1, !tbaa !7
  %128 = call {} @_FortranAAdjustl(ptr nonnull %54, ptr nonnull %8, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 37)
  %.fca.0.load = load ptr, ptr %54, align 8, !tbaa !7
  %.fca.1.load = load i64, ptr %.fca.1.gep, align 8, !tbaa !7
  store ptr %.fca.0.load, ptr %7, align 8, !tbaa !7
  %.fca.1.gep2900 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 1
  store i64 %.fca.1.load, ptr %.fca.1.gep2900, align 8, !tbaa !7
  %.fca.2.gep2902 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2902, align 8, !tbaa !7
  %.fca.3.gep2904 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2904, align 4, !tbaa !7
  %.fca.4.gep2906 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2906, align 1, !tbaa !7
  %.fca.5.gep2908 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2908, align 2, !tbaa !7
  %.fca.6.gep2910 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %7, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2910, align 1, !tbaa !7
  %.fca.1.gep93 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 1
  %.fca.2.gep95 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %53, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep95, align 8, !tbaa !7
  %.fca.3.gep97 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep97, align 4, !tbaa !7
  %.fca.4.gep99 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep99, align 1, !tbaa !7
  %.fca.5.gep101 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep101, align 2, !tbaa !7
  %.fca.6.gep103 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %53, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep103, align 1, !tbaa !7
  %129 = call {} @_FortranATrim(ptr nonnull %53, ptr nonnull %7, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 37)
  %.fca.0.load105 = load ptr, ptr %53, align 8, !tbaa !7
  %.fca.1.load108 = load i64, ptr %.fca.1.gep93, align 8, !tbaa !7
  %130 = call i1 @_FortranAioOutputAscii(ptr %127, ptr %.fca.0.load105, i64 %.fca.1.load108)
  call void @free(ptr %.fca.0.load105)
  call void @free(ptr %.fca.0.load)
  %131 = call i32 @_FortranAioEndIoStatement(ptr %127)
  %132 = load i64, ptr %55, align 8, !tbaa !3
  %133 = icmp sgt i64 %132, 0
  %.not35823680 = icmp eq i64 %.03329.lcssa, 1
  %or.cond36243681 = select i1 %133, i1 %.not35823680, i1 false
  %.mux = select i1 %or.cond36243681, i64 2, i64 1
  br i1 %133, label %.lr.ph3688, label %._crit_edge3689

.lr.ph3688:                                       ; preds = %._crit_edge3677
  %.fca.1.gep130 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 1
  %.fca.2.gep132 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 2
  %.fca.3.gep134 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 3
  %.fca.4.gep136 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 4
  %.fca.5.gep138 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 5
  %.fca.6.gep140 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %52, i64 0, i32 6
  %.fca.1.gep3081 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 1
  %.fca.2.gep3083 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 2
  %.fca.3.gep3085 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 3
  %.fca.4.gep3087 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 4
  %.fca.5.gep3089 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 5
  %.fca.6.gep3091 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 6
  %.fca.1.gep165 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 1
  %.fca.2.gep167 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 2
  %.fca.3.gep169 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 3
  %.fca.4.gep171 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 4
  %.fca.5.gep173 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 5
  %.fca.6.gep175 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %51, i64 0, i32 6
  %.fca.1.gep3100 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 1
  %.fca.2.gep3101 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 2
  %.fca.3.gep3102 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 3
  %.fca.4.gep3103 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 4
  %.fca.5.gep3104 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 5
  %.fca.6.gep3105 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 6
  %.fca.1.gep200 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 1
  %.fca.2.gep202 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 2
  %.fca.3.gep204 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 3
  %.fca.4.gep206 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 4
  %.fca.5.gep208 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 5
  %.fca.6.gep210 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %50, i64 0, i32 6
  %.fca.1.gep3116 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 1
  %.fca.2.gep3118 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 2
  %.fca.3.gep3120 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 3
  %.fca.4.gep3122 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 4
  %.fca.5.gep3124 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 5
  %.fca.6.gep3126 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 6
  %.fca.1.gep235 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 1
  %.fca.2.gep237 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 2
  %.fca.3.gep239 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 3
  %.fca.4.gep241 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 4
  %.fca.5.gep243 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 5
  %.fca.6.gep245 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %49, i64 0, i32 6
  br label %134

134:                                              ; preds = %.lr.ph3688, %160
  %135 = phi i64 [ 1, %.lr.ph3688 ], [ %161, %160 ]
  %.03687 = phi i64 [ %.03316.lcssa, %.lr.ph3688 ], [ %.1, %160 ]
  %136 = icmp ne i64 %135, %.mux
  %137 = icmp ne i64 %135, %.03329.lcssa
  %.not3557 = and i1 %136, %137
  br i1 %.not3557, label %138, label %160

138:                                              ; preds = %134
  %139 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 51)
  %140 = call i1 @_FortranAioOutputInteger64(ptr %139, i64 %.03687)
  %141 = call i32 @_FortranAioEndIoStatement(ptr %139)
  %142 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 52)
  %.unpack3558 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %143 = add i64 %135, -1
  %144 = getelementptr i64, ptr %.unpack3558, i64 %143
  %145 = load i64, ptr %144, align 8, !tbaa !3
  %146 = call i1 @_FortranAioOutputInteger64(ptr %142, i64 %145)
  %147 = call i32 @_FortranAioEndIoStatement(ptr %142)
  %148 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 53)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %52, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep132, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep134, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep136, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep138, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep140, align 1, !tbaa !7
  %149 = call {} @_FortranAAdjustl(ptr nonnull %52, ptr nonnull %8, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 53)
  %.fca.0.load142 = load ptr, ptr %52, align 8, !tbaa !7
  %.fca.1.load145 = load i64, ptr %.fca.1.gep130, align 8, !tbaa !7
  store ptr %.fca.0.load142, ptr %3, align 8, !tbaa !7
  store i64 %.fca.1.load145, ptr %.fca.1.gep3081, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep3083, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep3085, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep3087, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep3089, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep3091, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %51, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep167, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep169, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep171, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep173, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep175, align 1, !tbaa !7
  %150 = call {} @_FortranATrim(ptr nonnull %51, ptr nonnull %3, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 53)
  %.fca.0.load177 = load ptr, ptr %51, align 8, !tbaa !7
  %.fca.1.load180 = load i64, ptr %.fca.1.gep165, align 8, !tbaa !7
  %151 = call i1 @_FortranAioOutputAscii(ptr %148, ptr %.fca.0.load177, i64 %.fca.1.load180)
  call void @free(ptr %.fca.0.load177)
  call void @free(ptr %.fca.0.load142)
  store ptr @_QFEy, ptr %2, align 8, !tbaa !7
  store i64 40, ptr %.fca.1.gep3100, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep3101, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep3102, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep3103, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep3104, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep3105, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %50, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep202, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep204, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep206, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep208, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep210, align 1, !tbaa !7
  %152 = call {} @_FortranAAdjustl(ptr nonnull %50, ptr nonnull %2, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 53)
  %.fca.0.load212 = load ptr, ptr %50, align 8, !tbaa !7
  %.fca.1.load215 = load i64, ptr %.fca.1.gep200, align 8, !tbaa !7
  store ptr %.fca.0.load212, ptr %1, align 8, !tbaa !7
  store i64 %.fca.1.load215, ptr %.fca.1.gep3116, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep3118, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep3120, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep3122, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep3124, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep3126, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %49, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep237, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep239, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep241, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep243, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep245, align 1, !tbaa !7
  %153 = call {} @_FortranATrim(ptr nonnull %49, ptr nonnull %1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 53)
  %.fca.0.load247 = load ptr, ptr %49, align 8, !tbaa !7
  %.fca.1.load250 = load i64, ptr %.fca.1.gep235, align 8, !tbaa !7
  %154 = call i1 @_FortranAioOutputAscii(ptr %148, ptr %.fca.0.load247, i64 %.fca.1.load250)
  call void @free(ptr %.fca.0.load247)
  call void @free(ptr %.fca.0.load212)
  %155 = call i32 @_FortranAioEndIoStatement(ptr %148)
  %.unpack3570 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %156 = add i64 %135, -1
  %157 = getelementptr i64, ptr %.unpack3570, i64 %156
  %158 = load i64, ptr %157, align 8, !tbaa !3
  %159 = sub i64 %.03687, %158
  br label %160

160:                                              ; preds = %138, %134
  %.1 = phi i64 [ %159, %138 ], [ %.03687, %134 ]
  %161 = add nuw i64 %135, 1
  %exitcond3700.not = icmp eq i64 %135, %132
  br i1 %exitcond3700.not, label %._crit_edge3689.loopexit, label %134

._crit_edge3689.loopexit:                         ; preds = %160
  %162 = add nsw i64 %.mux, -1
  br label %._crit_edge3689

._crit_edge3689:                                  ; preds = %._crit_edge3689.loopexit, %._crit_edge3677
  %.03334.lcssa3715 = phi i64 [ 0, %._crit_edge3677 ], [ %162, %._crit_edge3689.loopexit ]
  %.0.lcssa = phi i64 [ %.03316.lcssa, %._crit_edge3677 ], [ %.1, %._crit_edge3689.loopexit ]
  %163 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 56)
  %.unpack3543 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %164 = getelementptr i64, ptr %.unpack3543, i64 %.03334.lcssa3715
  %165 = load i64, ptr %164, align 8, !tbaa !3
  %166 = call i1 @_FortranAioOutputInteger64(ptr %163, i64 %165)
  %167 = call i32 @_FortranAioEndIoStatement(ptr %163)
  %168 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 57)
  %169 = call i1 @_FortranAioOutputInteger64(ptr %168, i64 %.0.lcssa)
  %170 = call i32 @_FortranAioEndIoStatement(ptr %168)
  %171 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 58)
  %.fca.1.gep270 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 1
  %.fca.2.gep272 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %48, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep272, align 8, !tbaa !7
  %.fca.3.gep274 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep274, align 4, !tbaa !7
  %.fca.4.gep276 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep276, align 1, !tbaa !7
  %.fca.5.gep278 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep278, align 2, !tbaa !7
  %.fca.6.gep280 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %48, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep280, align 1, !tbaa !7
  %172 = call {} @_FortranAAdjustl(ptr nonnull %48, ptr nonnull %8, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 58)
  %.fca.0.load282 = load ptr, ptr %48, align 8, !tbaa !7
  %.fca.1.load285 = load i64, ptr %.fca.1.gep270, align 8, !tbaa !7
  store ptr %.fca.0.load282, ptr %6, align 8, !tbaa !7
  %.fca.1.gep2958 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 1
  store i64 %.fca.1.load285, ptr %.fca.1.gep2958, align 8, !tbaa !7
  %.fca.2.gep2960 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2960, align 8, !tbaa !7
  %.fca.3.gep2962 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2962, align 4, !tbaa !7
  %.fca.4.gep2964 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2964, align 1, !tbaa !7
  %.fca.5.gep2966 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2966, align 2, !tbaa !7
  %.fca.6.gep2968 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2968, align 1, !tbaa !7
  %.fca.1.gep305 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 1
  %.fca.2.gep307 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep307, align 8, !tbaa !7
  %.fca.3.gep309 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep309, align 4, !tbaa !7
  %.fca.4.gep311 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep311, align 1, !tbaa !7
  %.fca.5.gep313 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep313, align 2, !tbaa !7
  %.fca.6.gep315 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %47, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep315, align 1, !tbaa !7
  %173 = call {} @_FortranATrim(ptr nonnull %47, ptr nonnull %6, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 58)
  %.fca.0.load317 = load ptr, ptr %47, align 8, !tbaa !7
  %.fca.1.load320 = load i64, ptr %.fca.1.gep305, align 8, !tbaa !7
  %174 = call i1 @_FortranAioOutputAscii(ptr %171, ptr %.fca.0.load317, i64 %.fca.1.load320)
  call void @free(ptr %.fca.0.load317)
  call void @free(ptr %.fca.0.load282)
  store ptr @_QFEy, ptr %5, align 8, !tbaa !7
  %.fca.1.gep2977 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 1
  store i64 40, ptr %.fca.1.gep2977, align 8, !tbaa !7
  %.fca.2.gep2978 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2978, align 8, !tbaa !7
  %.fca.3.gep2979 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2979, align 4, !tbaa !7
  %.fca.4.gep2980 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2980, align 1, !tbaa !7
  %.fca.5.gep2981 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2981, align 2, !tbaa !7
  %.fca.6.gep2982 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2982, align 1, !tbaa !7
  %.fca.1.gep340 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 1
  %.fca.2.gep342 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %46, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep342, align 8, !tbaa !7
  %.fca.3.gep344 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep344, align 4, !tbaa !7
  %.fca.4.gep346 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep346, align 1, !tbaa !7
  %.fca.5.gep348 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep348, align 2, !tbaa !7
  %.fca.6.gep350 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %46, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep350, align 1, !tbaa !7
  %175 = call {} @_FortranAAdjustl(ptr nonnull %46, ptr nonnull %5, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 58)
  %.fca.0.load352 = load ptr, ptr %46, align 8, !tbaa !7
  %.fca.1.load355 = load i64, ptr %.fca.1.gep340, align 8, !tbaa !7
  store ptr %.fca.0.load352, ptr %4, align 8, !tbaa !7
  %.fca.1.gep2993 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 1
  store i64 %.fca.1.load355, ptr %.fca.1.gep2993, align 8, !tbaa !7
  %.fca.2.gep2995 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2995, align 8, !tbaa !7
  %.fca.3.gep2997 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2997, align 4, !tbaa !7
  %.fca.4.gep2999 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2999, align 1, !tbaa !7
  %.fca.5.gep3001 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep3001, align 2, !tbaa !7
  %.fca.6.gep3003 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep3003, align 1, !tbaa !7
  %.fca.1.gep375 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 1
  %.fca.2.gep377 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %45, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep377, align 8, !tbaa !7
  %.fca.3.gep379 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep379, align 4, !tbaa !7
  %.fca.4.gep381 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep381, align 1, !tbaa !7
  %.fca.5.gep383 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep383, align 2, !tbaa !7
  %.fca.6.gep385 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %45, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep385, align 1, !tbaa !7
  %176 = call {} @_FortranATrim(ptr nonnull %45, ptr nonnull %4, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 58)
  %.fca.0.load387 = load ptr, ptr %45, align 8, !tbaa !7
  %.fca.1.load390 = load i64, ptr %.fca.1.gep375, align 8, !tbaa !7
  %177 = call i1 @_FortranAioOutputAscii(ptr %171, ptr %.fca.0.load387, i64 %.fca.1.load390)
  call void @free(ptr %.fca.0.load387)
  call void @free(ptr %.fca.0.load352)
  %178 = call i32 @_FortranAioEndIoStatement(ptr %171)
  br label %.loopexit

179:                                              ; preds = %._crit_edge
  %180 = icmp eq i64 %.03321.lcssa3712, %66
  br i1 %180, label %.preheader3626, label %.preheader3628

.preheader3628:                                   ; preds = %179
  br i1 %67, label %.lr.ph3638, label %._crit_edge3649

.lr.ph3638:                                       ; preds = %.preheader3628
  %.unpack3495 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %181 = add nuw i64 %66, 1
  br label %236

.preheader3626:                                   ; preds = %179
  br i1 %67, label %.lr.ph3667, label %._crit_edge3668

.lr.ph3667:                                       ; preds = %.preheader3626
  %.unpack3531 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %xtraiter = and i64 %66, 1
  %182 = icmp eq i64 %66, 1
  br i1 %182, label %._crit_edge3668.loopexit.unr-lcssa, label %.lr.ph3667.new

.lr.ph3667.new:                                   ; preds = %.lr.ph3667
  %unroll_iter = and i64 %66, -2
  br label %183

183:                                              ; preds = %183, %.lr.ph3667.new
  %184 = phi i64 [ 1, %.lr.ph3667.new ], [ %193, %183 ]
  %.233183666 = phi i64 [ -100000, %.lr.ph3667.new ], [ %spec.select3622.1, %183 ]
  %.233313665 = phi i64 [ undef, %.lr.ph3667.new ], [ %spec.select3621.1, %183 ]
  %niter = phi i64 [ 0, %.lr.ph3667.new ], [ %niter.next.1, %183 ]
  %185 = add nsw i64 %184, -1
  %186 = getelementptr i64, ptr %.unpack3531, i64 %185
  %187 = load i64, ptr %186, align 8, !tbaa !3
  %188 = icmp slt i64 %.233183666, %187
  %spec.select3621 = select i1 %188, i64 %184, i64 %.233313665
  %spec.select3622 = call i64 @llvm.smax.i64(i64 %.233183666, i64 %187)
  %189 = add nuw i64 %184, 1
  %190 = getelementptr i64, ptr %.unpack3531, i64 %184
  %191 = load i64, ptr %190, align 8, !tbaa !3
  %192 = icmp slt i64 %spec.select3622, %191
  %spec.select3621.1 = select i1 %192, i64 %189, i64 %spec.select3621
  %spec.select3622.1 = call i64 @llvm.smax.i64(i64 %spec.select3622, i64 %191)
  %193 = add nuw i64 %184, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge3668.loopexit.unr-lcssa, label %183

._crit_edge3668.loopexit.unr-lcssa:               ; preds = %183, %.lr.ph3667
  %spec.select3622.lcssa.ph = phi i64 [ undef, %.lr.ph3667 ], [ %spec.select3622.1, %183 ]
  %.unr = phi i64 [ 1, %.lr.ph3667 ], [ %193, %183 ]
  %.233183666.unr = phi i64 [ -100000, %.lr.ph3667 ], [ %spec.select3622.1, %183 ]
  %.233313665.unr = phi i64 [ undef, %.lr.ph3667 ], [ %spec.select3621.1, %183 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge3668, label %._crit_edge3668.loopexit.epilog-lcssa

._crit_edge3668.loopexit.epilog-lcssa:            ; preds = %._crit_edge3668.loopexit.unr-lcssa
  %194 = add i64 %.unr, -1
  %195 = getelementptr i64, ptr %.unpack3531, i64 %194
  %196 = load i64, ptr %195, align 8, !tbaa !3
  %197 = icmp slt i64 %.233183666.unr, %196
  %spec.select3621.epil = select i1 %197, i64 %.unr, i64 %.233313665.unr
  %spec.select3622.epil = call i64 @llvm.smax.i64(i64 %.233183666.unr, i64 %196)
  br label %._crit_edge3668

._crit_edge3668:                                  ; preds = %._crit_edge3668.loopexit.epilog-lcssa, %._crit_edge3668.loopexit.unr-lcssa, %.preheader3626
  %.23331.lcssa = phi i64 [ undef, %.preheader3626 ], [ %.233313665.unr, %._crit_edge3668.loopexit.unr-lcssa ], [ %spec.select3621.epil, %._crit_edge3668.loopexit.epilog-lcssa ]
  %.23318.lcssa = phi i64 [ -100000, %.preheader3626 ], [ %spec.select3622.lcssa.ph, %._crit_edge3668.loopexit.unr-lcssa ], [ %spec.select3622.epil, %._crit_edge3668.loopexit.epilog-lcssa ]
  %198 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 101)
  %199 = shl i64 %.23318.lcssa, 1
  %200 = add i64 %199, %.03314.lcssa
  %201 = call i1 @_FortranAioOutputInteger64(ptr %198, i64 %200)
  %202 = call i32 @_FortranAioEndIoStatement(ptr %198)
  %203 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.286129, i64 3, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 102)
  store ptr @_QFEx, ptr %13, align 8, !tbaa !7
  %.fca.1.gep2228 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 1
  store i64 40, ptr %.fca.1.gep2228, align 8, !tbaa !7
  %.fca.2.gep2229 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2229, align 8, !tbaa !7
  %.fca.3.gep2230 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2230, align 4, !tbaa !7
  %.fca.4.gep2231 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2231, align 1, !tbaa !7
  %.fca.5.gep2232 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2232, align 2, !tbaa !7
  %.fca.6.gep2233 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %13, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2233, align 1, !tbaa !7
  %.fca.1.gep410 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 1
  %.fca.2.gep412 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %44, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep412, align 8, !tbaa !7
  %.fca.3.gep414 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep414, align 4, !tbaa !7
  %.fca.4.gep416 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep416, align 1, !tbaa !7
  %.fca.5.gep418 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep418, align 2, !tbaa !7
  %.fca.6.gep420 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %44, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep420, align 1, !tbaa !7
  %204 = call {} @_FortranAAdjustl(ptr nonnull %44, ptr nonnull %13, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 102)
  %.fca.0.load422 = load ptr, ptr %44, align 8, !tbaa !7
  %.fca.1.load425 = load i64, ptr %.fca.1.gep410, align 8, !tbaa !7
  store ptr %.fca.0.load422, ptr %12, align 8, !tbaa !7
  %.fca.1.gep2410 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 1
  store i64 %.fca.1.load425, ptr %.fca.1.gep2410, align 8, !tbaa !7
  %.fca.2.gep2412 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep2412, align 8, !tbaa !7
  %.fca.3.gep2414 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep2414, align 4, !tbaa !7
  %.fca.4.gep2416 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep2416, align 1, !tbaa !7
  %.fca.5.gep2418 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep2418, align 2, !tbaa !7
  %.fca.6.gep2420 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %12, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep2420, align 1, !tbaa !7
  %.fca.1.gep445 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 1
  %.fca.2.gep447 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %43, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep447, align 8, !tbaa !7
  %.fca.3.gep449 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep449, align 4, !tbaa !7
  %.fca.4.gep451 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep451, align 1, !tbaa !7
  %.fca.5.gep453 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep453, align 2, !tbaa !7
  %.fca.6.gep455 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %43, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep455, align 1, !tbaa !7
  %205 = call {} @_FortranATrim(ptr nonnull %43, ptr nonnull %12, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 102)
  %.fca.0.load457 = load ptr, ptr %43, align 8, !tbaa !7
  %.fca.1.load460 = load i64, ptr %.fca.1.gep445, align 8, !tbaa !7
  %206 = call i1 @_FortranAioOutputAscii(ptr %203, ptr %.fca.0.load457, i64 %.fca.1.load460)
  call void @free(ptr %.fca.0.load457)
  call void @free(ptr %.fca.0.load422)
  %207 = call i32 @_FortranAioEndIoStatement(ptr %203)
  %208 = load i64, ptr %55, align 8, !tbaa !3
  %209 = icmp sgt i64 %208, 0
  br i1 %209, label %.lr.ph3673, label %.loopexit

.lr.ph3673:                                       ; preds = %._crit_edge3668
  %.fca.1.gep480 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 1
  %.fca.2.gep482 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 2
  %.fca.3.gep484 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 3
  %.fca.4.gep486 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 4
  %.fca.5.gep488 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 5
  %.fca.6.gep490 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %42, i64 0, i32 6
  %.fca.1.gep2468 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 1
  %.fca.2.gep2470 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 2
  %.fca.3.gep2472 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 3
  %.fca.4.gep2474 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 4
  %.fca.5.gep2476 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 5
  %.fca.6.gep2478 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %11, i64 0, i32 6
  %.fca.1.gep515 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 1
  %.fca.2.gep517 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 2
  %.fca.3.gep519 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 3
  %.fca.4.gep521 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 4
  %.fca.5.gep523 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 5
  %.fca.6.gep525 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %41, i64 0, i32 6
  %.fca.1.gep2487 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 1
  %.fca.2.gep2488 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 2
  %.fca.3.gep2489 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 3
  %.fca.4.gep2490 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 4
  %.fca.5.gep2491 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 5
  %.fca.6.gep2492 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %10, i64 0, i32 6
  %.fca.1.gep550 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 1
  %.fca.2.gep552 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 2
  %.fca.3.gep554 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 3
  %.fca.4.gep556 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 4
  %.fca.5.gep558 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 5
  %.fca.6.gep560 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %40, i64 0, i32 6
  %.fca.1.gep2503 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 1
  %.fca.2.gep2505 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 2
  %.fca.3.gep2507 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 3
  %.fca.4.gep2509 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 4
  %.fca.5.gep2511 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 5
  %.fca.6.gep2513 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %9, i64 0, i32 6
  %.fca.1.gep585 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 1
  %.fca.2.gep587 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 2
  %.fca.3.gep589 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 3
  %.fca.4.gep591 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 4
  %.fca.5.gep593 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 5
  %.fca.6.gep595 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %39, i64 0, i32 6
  br label %210

210:                                              ; preds = %.lr.ph3673, %234
  %211 = phi i64 [ 1, %.lr.ph3673 ], [ %235, %234 ]
  %.23671 = phi i64 [ %.23318.lcssa, %.lr.ph3673 ], [ %.3, %234 ]
  %.not = icmp eq i64 %211, %.23331.lcssa
  br i1 %.not, label %234, label %212

212:                                              ; preds = %210
  %213 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 108)
  %214 = call i1 @_FortranAioOutputInteger64(ptr %213, i64 %.23671)
  %215 = call i32 @_FortranAioEndIoStatement(ptr %213)
  %216 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 109)
  %.unpack3507 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %217 = add i64 %211, -1
  %218 = getelementptr i64, ptr %.unpack3507, i64 %217
  %219 = load i64, ptr %218, align 8, !tbaa !3
  %220 = call i1 @_FortranAioOutputInteger64(ptr %216, i64 %219)
  %221 = call i32 @_FortranAioEndIoStatement(ptr %216)
  %222 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 110)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %42, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep482, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep484, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep486, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep488, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep490, align 1, !tbaa !7
  %223 = call {} @_FortranAAdjustl(ptr nonnull %42, ptr nonnull %13, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 110)
  %.fca.0.load492 = load ptr, ptr %42, align 8, !tbaa !7
  %.fca.1.load495 = load i64, ptr %.fca.1.gep480, align 8, !tbaa !7
  store ptr %.fca.0.load492, ptr %11, align 8, !tbaa !7
  store i64 %.fca.1.load495, ptr %.fca.1.gep2468, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2470, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2472, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2474, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2476, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2478, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %41, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep517, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep519, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep521, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep523, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep525, align 1, !tbaa !7
  %224 = call {} @_FortranATrim(ptr nonnull %41, ptr nonnull %11, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 110)
  %.fca.0.load527 = load ptr, ptr %41, align 8, !tbaa !7
  %.fca.1.load530 = load i64, ptr %.fca.1.gep515, align 8, !tbaa !7
  %225 = call i1 @_FortranAioOutputAscii(ptr %222, ptr %.fca.0.load527, i64 %.fca.1.load530)
  call void @free(ptr %.fca.0.load527)
  call void @free(ptr %.fca.0.load492)
  store ptr @_QFEy, ptr %10, align 8, !tbaa !7
  store i64 40, ptr %.fca.1.gep2487, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2488, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2489, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2490, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2491, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2492, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %40, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep552, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep554, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep556, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep558, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep560, align 1, !tbaa !7
  %226 = call {} @_FortranAAdjustl(ptr nonnull %40, ptr nonnull %10, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 110)
  %.fca.0.load562 = load ptr, ptr %40, align 8, !tbaa !7
  %.fca.1.load565 = load i64, ptr %.fca.1.gep550, align 8, !tbaa !7
  store ptr %.fca.0.load562, ptr %9, align 8, !tbaa !7
  store i64 %.fca.1.load565, ptr %.fca.1.gep2503, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2505, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2507, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2509, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2511, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2513, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep587, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep589, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep591, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep593, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep595, align 1, !tbaa !7
  %227 = call {} @_FortranATrim(ptr nonnull %39, ptr nonnull %9, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 110)
  %.fca.0.load597 = load ptr, ptr %39, align 8, !tbaa !7
  %.fca.1.load600 = load i64, ptr %.fca.1.gep585, align 8, !tbaa !7
  %228 = call i1 @_FortranAioOutputAscii(ptr %222, ptr %.fca.0.load597, i64 %.fca.1.load600)
  call void @free(ptr %.fca.0.load597)
  call void @free(ptr %.fca.0.load562)
  %229 = call i32 @_FortranAioEndIoStatement(ptr %222)
  %.unpack3519 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %230 = add i64 %211, -1
  %231 = getelementptr i64, ptr %.unpack3519, i64 %230
  %232 = load i64, ptr %231, align 8, !tbaa !3
  %233 = sub i64 %.23671, %232
  br label %234

234:                                              ; preds = %212, %210
  %.3 = phi i64 [ %233, %212 ], [ %.23671, %210 ]
  %235 = add nuw i64 %211, 1
  %exitcond3698.not = icmp eq i64 %211, %208
  br i1 %exitcond3698.not, label %.loopexit, label %210

236:                                              ; preds = %.lr.ph3638, %241
  %.133353637 = phi i64 [ 1, %.lr.ph3638 ], [ %242, %241 ]
  %237 = add i64 %.133353637, -1
  %238 = getelementptr i64, ptr %.unpack3495, i64 %237
  %239 = load i64, ptr %238, align 8, !tbaa !3
  %240 = icmp slt i64 %239, 1
  br i1 %240, label %._crit_edge3639, label %241

241:                                              ; preds = %236
  %242 = add nuw i64 %.133353637, 1
  %exitcond3694.not = icmp eq i64 %.133353637, %66
  br i1 %exitcond3694.not, label %._crit_edge3639, label %236

._crit_edge3639:                                  ; preds = %241, %236
  %.13335.lcssa = phi i64 [ %181, %241 ], [ %.133353637, %236 ]
  br i1 %67, label %.lr.ph3648, label %._crit_edge3649

.lr.ph3648:                                       ; preds = %._crit_edge3639
  %.unpack3483 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %243 = add nuw i64 %66, 1
  br label %244

244:                                              ; preds = %.lr.ph3648, %253
  %.233363646 = phi i64 [ 1, %.lr.ph3648 ], [ %254, %253 ]
  %245 = add i64 %.233363646, -1
  %246 = getelementptr i64, ptr %.unpack3483, i64 %245
  %247 = load i64, ptr %246, align 8, !tbaa !3
  %248 = icmp sgt i64 %247, -1
  br i1 %248, label %249, label %253

249:                                              ; preds = %244
  %250 = icmp eq i64 %247, 0
  %251 = icmp eq i64 %.233363646, %.13335.lcssa
  %252 = and i1 %251, %250
  br i1 %252, label %253, label %._crit_edge3649

253:                                              ; preds = %249, %244
  %254 = add nuw i64 %.233363646, 1
  %exitcond3695.not = icmp eq i64 %.233363646, %66
  br i1 %exitcond3695.not, label %._crit_edge3649, label %244

._crit_edge3649:                                  ; preds = %253, %249, %.preheader3628, %._crit_edge3639
  %.433203719 = phi i64 [ %239, %._crit_edge3639 ], [ undef, %.preheader3628 ], [ %239, %249 ], [ %239, %253 ]
  %.13335.lcssa3718 = phi i64 [ %.13335.lcssa, %._crit_edge3639 ], [ 1, %.preheader3628 ], [ %.13335.lcssa, %249 ], [ %.13335.lcssa, %253 ]
  %.23336.lcssa = phi i64 [ 1, %._crit_edge3639 ], [ 1, %.preheader3628 ], [ %243, %253 ], [ %.233363646, %249 ]
  %255 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 132)
  %256 = call i1 @_FortranAioOutputInteger64(ptr %255, i64 %.03314.lcssa)
  %257 = call i32 @_FortranAioEndIoStatement(ptr %255)
  %258 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.286129, i64 3, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 133)
  store ptr @_QFEx, ptr %23, align 8, !tbaa !7
  %.fca.1.gep1195 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 1
  store i64 40, ptr %.fca.1.gep1195, align 8, !tbaa !7
  %.fca.2.gep1196 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1196, align 8, !tbaa !7
  %.fca.3.gep1197 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep1197, align 4, !tbaa !7
  %.fca.4.gep1198 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep1198, align 1, !tbaa !7
  %.fca.5.gep1199 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1199, align 2, !tbaa !7
  %.fca.6.gep1200 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %23, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1200, align 1, !tbaa !7
  %.fca.1.gep624 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 1
  %.fca.2.gep626 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep626, align 8, !tbaa !7
  %.fca.3.gep628 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep628, align 4, !tbaa !7
  %.fca.4.gep630 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep630, align 1, !tbaa !7
  %.fca.5.gep632 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep632, align 2, !tbaa !7
  %.fca.6.gep634 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %38, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep634, align 1, !tbaa !7
  %259 = call {} @_FortranAAdjustl(ptr nonnull %38, ptr nonnull %23, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 133)
  %.fca.0.load636 = load ptr, ptr %38, align 8, !tbaa !7
  %.fca.1.load639 = load i64, ptr %.fca.1.gep624, align 8, !tbaa !7
  store ptr %.fca.0.load636, ptr %22, align 8, !tbaa !7
  %.fca.1.gep1591 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 1
  store i64 %.fca.1.load639, ptr %.fca.1.gep1591, align 8, !tbaa !7
  %.fca.2.gep1593 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1593, align 8, !tbaa !7
  %.fca.3.gep1595 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep1595, align 4, !tbaa !7
  %.fca.4.gep1597 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep1597, align 1, !tbaa !7
  %.fca.5.gep1599 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1599, align 2, !tbaa !7
  %.fca.6.gep1601 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %22, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1601, align 1, !tbaa !7
  %.fca.1.gep659 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 1
  %.fca.2.gep661 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep661, align 8, !tbaa !7
  %.fca.3.gep663 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep663, align 4, !tbaa !7
  %.fca.4.gep665 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep665, align 1, !tbaa !7
  %.fca.5.gep667 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep667, align 2, !tbaa !7
  %.fca.6.gep669 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %37, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep669, align 1, !tbaa !7
  %260 = call {} @_FortranATrim(ptr nonnull %37, ptr nonnull %22, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 133)
  %.fca.0.load671 = load ptr, ptr %37, align 8, !tbaa !7
  %.fca.1.load674 = load i64, ptr %.fca.1.gep659, align 8, !tbaa !7
  %261 = call i1 @_FortranAioOutputAscii(ptr %258, ptr %.fca.0.load671, i64 %.fca.1.load674)
  call void @free(ptr %.fca.0.load671)
  call void @free(ptr %.fca.0.load636)
  %262 = call i32 @_FortranAioEndIoStatement(ptr %258)
  %263 = load i64, ptr %55, align 8, !tbaa !3
  %264 = icmp sgt i64 %263, 0
  br i1 %264, label %.lr.ph3657, label %._crit_edge3658

.lr.ph3657:                                       ; preds = %._crit_edge3649
  %.fca.1.gep696 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 1
  %.fca.2.gep698 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 2
  %.fca.3.gep700 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 3
  %.fca.4.gep702 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 4
  %.fca.5.gep704 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 5
  %.fca.6.gep706 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %36, i64 0, i32 6
  %.fca.1.gep2024 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 1
  %.fca.2.gep2026 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 2
  %.fca.3.gep2028 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 3
  %.fca.4.gep2030 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 4
  %.fca.5.gep2032 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 5
  %.fca.6.gep2034 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %16, i64 0, i32 6
  %.fca.1.gep731 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 1
  %.fca.2.gep733 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 2
  %.fca.3.gep735 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 3
  %.fca.4.gep737 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 4
  %.fca.5.gep739 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 5
  %.fca.6.gep741 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %35, i64 0, i32 6
  %.fca.1.gep2043 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 1
  %.fca.2.gep2044 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 2
  %.fca.3.gep2045 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 3
  %.fca.4.gep2046 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 4
  %.fca.5.gep2047 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 5
  %.fca.6.gep2048 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %15, i64 0, i32 6
  %.fca.1.gep766 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 1
  %.fca.2.gep768 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 2
  %.fca.3.gep770 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 3
  %.fca.4.gep772 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 4
  %.fca.5.gep774 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 5
  %.fca.6.gep776 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %34, i64 0, i32 6
  %.fca.1.gep2059 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 1
  %.fca.2.gep2061 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 2
  %.fca.3.gep2063 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 3
  %.fca.4.gep2065 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 4
  %.fca.5.gep2067 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 5
  %.fca.6.gep2069 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %14, i64 0, i32 6
  %.fca.1.gep801 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 1
  %.fca.2.gep803 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 2
  %.fca.3.gep805 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 3
  %.fca.4.gep807 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 4
  %.fca.5.gep809 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 5
  %.fca.6.gep811 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %33, i64 0, i32 6
  %.unpack3447.pre = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  br label %265

265:                                              ; preds = %.lr.ph3657, %293
  %.unpack3447 = phi ptr [ %.unpack3447.pre, %.lr.ph3657 ], [ %.unpack34473701, %293 ]
  %.43655 = phi i64 [ %.433203719, %.lr.ph3657 ], [ %.5, %293 ]
  %.033253654 = phi i64 [ 1, %.lr.ph3657 ], [ %294, %293 ]
  %266 = add i64 %.033253654, -1
  %267 = getelementptr i64, ptr %.unpack3447, i64 %266
  %268 = load i64, ptr %267, align 8, !tbaa !3
  %269 = icmp slt i64 %268, 1
  %270 = icmp eq i64 %.033253654, %.23336.lcssa
  %or.cond = select i1 %269, i1 true, i1 %270
  br i1 %or.cond, label %293, label %271

271:                                              ; preds = %265
  %272 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 141)
  %273 = call i1 @_FortranAioOutputInteger64(ptr %272, i64 %.43655)
  %274 = call i32 @_FortranAioEndIoStatement(ptr %272)
  %275 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 142)
  %.unpack3459 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %276 = add i64 %.033253654, -1
  %277 = getelementptr i64, ptr %.unpack3459, i64 %276
  %278 = load i64, ptr %277, align 8, !tbaa !3
  %279 = call i1 @_FortranAioOutputInteger64(ptr %275, i64 %278)
  %280 = call i32 @_FortranAioEndIoStatement(ptr %275)
  %281 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 143)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep698, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep700, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep702, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep704, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep706, align 1, !tbaa !7
  %282 = call {} @_FortranAAdjustl(ptr nonnull %36, ptr nonnull %23, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 143)
  %.fca.0.load708 = load ptr, ptr %36, align 8, !tbaa !7
  %.fca.1.load711 = load i64, ptr %.fca.1.gep696, align 8, !tbaa !7
  store ptr %.fca.0.load708, ptr %16, align 8, !tbaa !7
  store i64 %.fca.1.load711, ptr %.fca.1.gep2024, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2026, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2028, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2030, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2032, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2034, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %35, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep733, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep735, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep737, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep739, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep741, align 1, !tbaa !7
  %283 = call {} @_FortranATrim(ptr nonnull %35, ptr nonnull %16, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 143)
  %.fca.0.load743 = load ptr, ptr %35, align 8, !tbaa !7
  %.fca.1.load746 = load i64, ptr %.fca.1.gep731, align 8, !tbaa !7
  %284 = call i1 @_FortranAioOutputAscii(ptr %281, ptr %.fca.0.load743, i64 %.fca.1.load746)
  call void @free(ptr %.fca.0.load743)
  call void @free(ptr %.fca.0.load708)
  store ptr @_QFEy, ptr %15, align 8, !tbaa !7
  store i64 40, ptr %.fca.1.gep2043, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2044, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2045, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2046, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2047, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2048, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %34, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep768, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep770, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep772, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep774, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep776, align 1, !tbaa !7
  %285 = call {} @_FortranAAdjustl(ptr nonnull %34, ptr nonnull %15, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 143)
  %.fca.0.load778 = load ptr, ptr %34, align 8, !tbaa !7
  %.fca.1.load781 = load i64, ptr %.fca.1.gep766, align 8, !tbaa !7
  store ptr %.fca.0.load778, ptr %14, align 8, !tbaa !7
  store i64 %.fca.1.load781, ptr %.fca.1.gep2059, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep2061, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep2063, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep2065, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep2067, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep2069, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %33, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep803, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep805, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep807, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep809, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep811, align 1, !tbaa !7
  %286 = call {} @_FortranATrim(ptr nonnull %33, ptr nonnull %14, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 143)
  %.fca.0.load813 = load ptr, ptr %33, align 8, !tbaa !7
  %.fca.1.load816 = load i64, ptr %.fca.1.gep801, align 8, !tbaa !7
  %287 = call i1 @_FortranAioOutputAscii(ptr %281, ptr %.fca.0.load813, i64 %.fca.1.load816)
  call void @free(ptr %.fca.0.load813)
  call void @free(ptr %.fca.0.load778)
  %288 = call i32 @_FortranAioEndIoStatement(ptr %281)
  %.unpack3471 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %289 = add i64 %.033253654, -1
  %290 = getelementptr i64, ptr %.unpack3471, i64 %289
  %291 = load i64, ptr %290, align 8, !tbaa !3
  %292 = sub i64 %.43655, %291
  br label %293

293:                                              ; preds = %271, %265
  %.unpack34473701 = phi ptr [ %.unpack3471, %271 ], [ %.unpack3447, %265 ]
  %.5 = phi i64 [ %292, %271 ], [ %.43655, %265 ]
  %294 = add nuw i64 %.033253654, 1
  %exitcond3696.not = icmp eq i64 %.033253654, %263
  br i1 %exitcond3696.not, label %._crit_edge3658, label %265

._crit_edge3658:                                  ; preds = %293, %._crit_edge3649
  %.4.lcssa = phi i64 [ %.433203719, %._crit_edge3649 ], [ %.5, %293 ]
  %295 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 147)
  %.unpack3375 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %296 = add i64 %.23336.lcssa, -1
  %297 = getelementptr i64, ptr %.unpack3375, i64 %296
  %298 = load i64, ptr %297, align 8, !tbaa !3
  %299 = call i1 @_FortranAioOutputInteger64(ptr %295, i64 %298)
  %300 = call i32 @_FortranAioEndIoStatement(ptr %295)
  %301 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 148)
  %302 = call i1 @_FortranAioOutputInteger64(ptr %301, i64 %.4.lcssa)
  %303 = call i32 @_FortranAioEndIoStatement(ptr %301)
  %304 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 149)
  %.fca.1.gep836 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 1
  %.fca.2.gep838 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep838, align 8, !tbaa !7
  %.fca.3.gep840 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep840, align 4, !tbaa !7
  %.fca.4.gep842 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep842, align 1, !tbaa !7
  %.fca.5.gep844 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep844, align 2, !tbaa !7
  %.fca.6.gep846 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %32, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep846, align 1, !tbaa !7
  %305 = call {} @_FortranAAdjustl(ptr nonnull %32, ptr nonnull %23, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 149)
  %.fca.0.load848 = load ptr, ptr %32, align 8, !tbaa !7
  %.fca.1.load851 = load i64, ptr %.fca.1.gep836, align 8, !tbaa !7
  store ptr %.fca.0.load848, ptr %21, align 8, !tbaa !7
  %.fca.1.gep1649 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 1
  store i64 %.fca.1.load851, ptr %.fca.1.gep1649, align 8, !tbaa !7
  %.fca.2.gep1651 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1651, align 8, !tbaa !7
  %.fca.3.gep1653 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep1653, align 4, !tbaa !7
  %.fca.4.gep1655 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep1655, align 1, !tbaa !7
  %.fca.5.gep1657 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1657, align 2, !tbaa !7
  %.fca.6.gep1659 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %21, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1659, align 1, !tbaa !7
  %.fca.1.gep871 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 1
  %.fca.2.gep873 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %31, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep873, align 8, !tbaa !7
  %.fca.3.gep875 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep875, align 4, !tbaa !7
  %.fca.4.gep877 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep877, align 1, !tbaa !7
  %.fca.5.gep879 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep879, align 2, !tbaa !7
  %.fca.6.gep881 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %31, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep881, align 1, !tbaa !7
  %306 = call {} @_FortranATrim(ptr nonnull %31, ptr nonnull %21, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 149)
  %.fca.0.load883 = load ptr, ptr %31, align 8, !tbaa !7
  %.fca.1.load886 = load i64, ptr %.fca.1.gep871, align 8, !tbaa !7
  %307 = call i1 @_FortranAioOutputAscii(ptr %304, ptr %.fca.0.load883, i64 %.fca.1.load886)
  call void @free(ptr %.fca.0.load883)
  call void @free(ptr %.fca.0.load848)
  store ptr @_QFEy, ptr %20, align 8, !tbaa !7
  %.fca.1.gep1668 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 1
  store i64 40, ptr %.fca.1.gep1668, align 8, !tbaa !7
  %.fca.2.gep1669 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1669, align 8, !tbaa !7
  %.fca.3.gep1670 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep1670, align 4, !tbaa !7
  %.fca.4.gep1671 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep1671, align 1, !tbaa !7
  %.fca.5.gep1672 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1672, align 2, !tbaa !7
  %.fca.6.gep1673 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %20, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1673, align 1, !tbaa !7
  %.fca.1.gep906 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 1
  %.fca.2.gep908 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %30, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep908, align 8, !tbaa !7
  %.fca.3.gep910 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep910, align 4, !tbaa !7
  %.fca.4.gep912 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep912, align 1, !tbaa !7
  %.fca.5.gep914 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep914, align 2, !tbaa !7
  %.fca.6.gep916 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %30, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep916, align 1, !tbaa !7
  %308 = call {} @_FortranAAdjustl(ptr nonnull %30, ptr nonnull %20, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 149)
  %.fca.0.load918 = load ptr, ptr %30, align 8, !tbaa !7
  %.fca.1.load921 = load i64, ptr %.fca.1.gep906, align 8, !tbaa !7
  store ptr %.fca.0.load918, ptr %19, align 8, !tbaa !7
  %.fca.1.gep1684 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 1
  store i64 %.fca.1.load921, ptr %.fca.1.gep1684, align 8, !tbaa !7
  %.fca.2.gep1686 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep1686, align 8, !tbaa !7
  %.fca.3.gep1688 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep1688, align 4, !tbaa !7
  %.fca.4.gep1690 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep1690, align 1, !tbaa !7
  %.fca.5.gep1692 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep1692, align 2, !tbaa !7
  %.fca.6.gep1694 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %19, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep1694, align 1, !tbaa !7
  %.fca.1.gep941 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 1
  %.fca.2.gep943 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %29, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep943, align 8, !tbaa !7
  %.fca.3.gep945 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep945, align 4, !tbaa !7
  %.fca.4.gep947 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep947, align 1, !tbaa !7
  %.fca.5.gep949 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep949, align 2, !tbaa !7
  %.fca.6.gep951 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %29, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep951, align 1, !tbaa !7
  %309 = call {} @_FortranATrim(ptr nonnull %29, ptr nonnull %19, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 149)
  %.fca.0.load953 = load ptr, ptr %29, align 8, !tbaa !7
  %.fca.1.load956 = load i64, ptr %.fca.1.gep941, align 8, !tbaa !7
  %310 = call i1 @_FortranAioOutputAscii(ptr %304, ptr %.fca.0.load953, i64 %.fca.1.load956)
  call void @free(ptr %.fca.0.load953)
  call void @free(ptr %.fca.0.load918)
  %311 = call i32 @_FortranAioEndIoStatement(ptr %304)
  %312 = load i64, ptr %55, align 8, !tbaa !3
  %313 = sub i64 %312, %.13335.lcssa3718
  %314 = icmp sgt i64 %313, 0
  br i1 %314, label %.lr.ph3664, label %.loopexit

.lr.ph3664:                                       ; preds = %._crit_edge3658
  %.unpack3387 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %315 = add i64 %.23336.lcssa, -1
  %316 = getelementptr i64, ptr %.unpack3387, i64 %315
  %317 = load i64, ptr %316, align 8, !tbaa !3
  %318 = sub i64 %317, %.4.lcssa
  %.fca.1.gep978 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 1
  %.fca.2.gep980 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 2
  %.fca.3.gep982 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 3
  %.fca.4.gep984 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 4
  %.fca.5.gep986 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 5
  %.fca.6.gep988 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %28, i64 0, i32 6
  %.fca.1.gep1878 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 1
  %.fca.2.gep1880 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 2
  %.fca.3.gep1882 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 3
  %.fca.4.gep1884 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 4
  %.fca.5.gep1886 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 5
  %.fca.6.gep1888 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %18, i64 0, i32 6
  %.fca.1.gep1013 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 1
  %.fca.2.gep1015 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 2
  %.fca.3.gep1017 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 3
  %.fca.4.gep1019 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 4
  %.fca.5.gep1021 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 5
  %.fca.6.gep1023 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %27, i64 0, i32 6
  %.fca.1.gep1048 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 1
  %.fca.2.gep1050 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 2
  %.fca.3.gep1052 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 3
  %.fca.4.gep1054 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 4
  %.fca.5.gep1056 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 5
  %.fca.6.gep1058 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %26, i64 0, i32 6
  %.fca.1.gep1906 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 1
  %.fca.2.gep1908 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 2
  %.fca.3.gep1910 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 3
  %.fca.4.gep1912 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 4
  %.fca.5.gep1914 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 5
  %.fca.6.gep1916 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %17, i64 0, i32 6
  %.fca.1.gep1083 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 1
  %.fca.2.gep1085 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 2
  %.fca.3.gep1087 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 3
  %.fca.4.gep1089 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 4
  %.fca.5.gep1091 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 5
  %.fca.6.gep1093 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %25, i64 0, i32 6
  br label %319

319:                                              ; preds = %.lr.ph3664, %344
  %.unpack3411 = phi ptr [ %.unpack3387, %.lr.ph3664 ], [ %.unpack34113705, %344 ]
  %.63662 = phi i64 [ %318, %.lr.ph3664 ], [ %.7, %344 ]
  %.033153661 = phi i64 [ %313, %.lr.ph3664 ], [ %345, %344 ]
  %.133263660.in = phi i64 [ %.13335.lcssa3718, %.lr.ph3664 ], [ %.133263660, %344 ]
  %.133263660 = add i64 %.133263660.in, 1
  %320 = getelementptr i64, ptr %.unpack3411, i64 %.133263660.in
  %321 = load i64, ptr %320, align 8, !tbaa !3
  %322 = icmp sgt i64 %321, 0
  %323 = icmp eq i64 %.133263660, %.23336.lcssa
  %or.cond3623 = select i1 %322, i1 true, i1 %323
  br i1 %or.cond3623, label %344, label %324

324:                                              ; preds = %319
  %325 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEx, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 156)
  %326 = call i1 @_FortranAioOutputInteger64(ptr %325, i64 %.63662)
  %327 = call i32 @_FortranAioEndIoStatement(ptr %325)
  %328 = call ptr @_FortranAioBeginInternalListOutput(ptr nonnull @_QFEy, i64 40, ptr null, i64 0, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 157)
  %.unpack3423 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %329 = getelementptr i64, ptr %.unpack3423, i64 %.133263660.in
  %330 = load i64, ptr %329, align 8, !tbaa !3
  %331 = call i1 @_FortranAioOutputInteger64(ptr %328, i64 %330)
  %332 = call i32 @_FortranAioEndIoStatement(ptr %328)
  %333 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28612C2031582C206129, i64 10, ptr null, i32 -1, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 158)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep980, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep982, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep984, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep986, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep988, align 1, !tbaa !7
  %334 = call {} @_FortranAAdjustl(ptr nonnull %28, ptr nonnull %23, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 158)
  %.fca.0.load990 = load ptr, ptr %28, align 8, !tbaa !7
  %.fca.1.load993 = load i64, ptr %.fca.1.gep978, align 8, !tbaa !7
  store ptr %.fca.0.load990, ptr %18, align 8, !tbaa !7
  store i64 %.fca.1.load993, ptr %.fca.1.gep1878, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep1880, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep1882, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep1884, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep1886, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep1888, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep1015, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep1017, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep1019, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep1021, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep1023, align 1, !tbaa !7
  %335 = call {} @_FortranATrim(ptr nonnull %27, ptr nonnull %18, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 158)
  %.fca.0.load1025 = load ptr, ptr %27, align 8, !tbaa !7
  %.fca.1.load1028 = load i64, ptr %.fca.1.gep1013, align 8, !tbaa !7
  %336 = call i1 @_FortranAioOutputAscii(ptr %333, ptr %.fca.0.load1025, i64 %.fca.1.load1028)
  call void @free(ptr %.fca.0.load1025)
  call void @free(ptr %.fca.0.load990)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %26, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep1050, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep1052, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep1054, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep1056, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep1058, align 1, !tbaa !7
  %337 = call {} @_FortranAAdjustl(ptr nonnull %26, ptr nonnull %20, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 158)
  %.fca.0.load1060 = load ptr, ptr %26, align 8, !tbaa !7
  %.fca.1.load1063 = load i64, ptr %.fca.1.gep1048, align 8, !tbaa !7
  store ptr %.fca.0.load1060, ptr %17, align 8, !tbaa !7
  store i64 %.fca.1.load1063, ptr %.fca.1.gep1906, align 8, !tbaa !7
  store i32 20180515, ptr %.fca.2.gep1908, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep1910, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep1912, align 1, !tbaa !7
  store i8 0, ptr %.fca.5.gep1914, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep1916, align 1, !tbaa !7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %25, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep1085, align 8, !tbaa !7
  store i8 0, ptr %.fca.3.gep1087, align 4, !tbaa !7
  store i8 40, ptr %.fca.4.gep1089, align 1, !tbaa !7
  store i8 2, ptr %.fca.5.gep1091, align 2, !tbaa !7
  store i8 0, ptr %.fca.6.gep1093, align 1, !tbaa !7
  %338 = call {} @_FortranATrim(ptr nonnull %25, ptr nonnull %17, ptr nonnull @_QQcl.7a516fa5df825b588f736a67376d3864, i32 158)
  %.fca.0.load1095 = load ptr, ptr %25, align 8, !tbaa !7
  %.fca.1.load1098 = load i64, ptr %.fca.1.gep1083, align 8, !tbaa !7
  %339 = call i1 @_FortranAioOutputAscii(ptr %333, ptr %.fca.0.load1095, i64 %.fca.1.load1098)
  call void @free(ptr %.fca.0.load1095)
  call void @free(ptr %.fca.0.load1060)
  %340 = call i32 @_FortranAioEndIoStatement(ptr %333)
  %.unpack3435 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %341 = getelementptr i64, ptr %.unpack3435, i64 %.133263660.in
  %342 = load i64, ptr %341, align 8, !tbaa !3
  %343 = sub i64 %.63662, %342
  br label %344

344:                                              ; preds = %324, %319
  %.unpack34113705 = phi ptr [ %.unpack3435, %324 ], [ %.unpack3411, %319 ]
  %.7 = phi i64 [ %343, %324 ], [ %.63662, %319 ]
  %345 = add nsw i64 %.033153661, -1
  %346 = icmp sgt i64 %.033153661, 1
  br i1 %346, label %319, label %.loopexit

.loopexit:                                        ; preds = %344, %234, %._crit_edge3658, %._crit_edge3668, %._crit_edge3689
  %.unpack3399 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  call void @free(ptr %.unpack3399)
  store ptr null, ptr @_QFEa.0, align 8, !tbaa !7
  store i64 0, ptr @_QFEa.8, align 8, !tbaa !7
  %347 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare i1 @_FortranAioInputDescriptor(ptr, ptr) local_unnamed_addr

declare ptr @_FortranAioBeginInternalListOutput(ptr, i64, ptr, i64, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger64(ptr, i64) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputAscii(ptr, ptr, i64) local_unnamed_addr

declare {} @_FortranAAdjustl(ptr, ptr, ptr, i32) local_unnamed_addr

declare {} @_FortranATrim(ptr, ptr, ptr, i32) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.vector.reduce.add.v2i64(<2 x i64>) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x i64> @llvm.abs.v2i64(<2 x i64>, i1 immarg) #3

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #2 = { noreturn }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nocallback nofree nosync nounwind willreturn memory(none) }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
!9 = distinct !{!9, !10, !11}
!10 = !{!"llvm.loop.isvectorized", i32 1}
!11 = !{!"llvm.loop.unroll.runtime.disable"}
!12 = distinct !{!12, !10, !11}
!13 = distinct !{!13, !11, !10}
!14 = distinct !{!14, !11, !10}
