https://github.com/SimonUnterstrasser/ColumnModel
Raw File
Tip revision: 8c4e8c105fdfa552938c3dcbe71de99be72243f3 authored by SimonUnterstrasser on 15 September 2020, 15:26:46 UTC
Update README.md
Tip revision: 8c4e8c1
InputOutput.gcc.py
import os
import numpy as np
import Misc as FK
#GCCif (COLUMN == 0)
def readSingleSimulationSIPdata(fp_in, nr_sip_max=500):
# >>>> box model version >>>>>>
# Read SIP data of a single simulation.
# In the default case, all SIP data are stored in the specified folder fp_in.
# If a simulation was split into several subs-simulations, then read SIP data from the various subfolders.

# default case, where all SIP data lie in folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

# Cases with sub-simulations
    # if a given simulation is divided into sub-simulations, then by definition file InstanzenMeta.dat exists

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder = 0
        fu = open(fp_in + 'InstanzenMeta.dat','r')
        nr_subsims = int(fu.readline())
        nr_inst_tot = int(fu.readline())
        dirs_subsim = fu.readlines()
        for i,s in enumerate(dirs_subsim):  # remove trailing \n and other whitespace
            dirs_subsim[i] = s.strip()+'/'

        print('nr_subsims, nr_inst_tot: ', nr_subsims, nr_inst_tot)
        print(dirs_subsim)
        fu.close()

    itot_inst = 0
    for i_subsim,folder in enumerate(dirs_subsim):
    # read SIP data of all realisations
        fp = fp_in + folder
        fu = open(fp + 'SIP_meta.dat','r')
        nr_inst = int(fu.readline())
        nr_GVplot = int(fu.readline())
        t_vec_GVplot= np.array(fu.readline().split(), dtype='float' )
        #print(t_vec_GVplot)
        fu.close()
        fu = open(fp + 'Moments_meta.dat','r')
        dV = float(fu.readline())
        skal_m = float(fu.readline())
        fu.close()

        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst
            nEK_sip_plot=np.zeros([nr_inst_tot,nr_GVplot,nr_sip_max])
            mEK_sip_plot=np.zeros([nr_inst_tot,nr_GVplot,nr_sip_max])
            nr_SIPs_plot=np.zeros([nr_inst_tot,nr_GVplot],dtype='int')

        fu = FK.openfile(fp + 'SIP.dat',options='r')
        for i_inst in range(0,nr_inst):
            for i_plot in range(0,nr_GVplot):
                nr_SIPs = int(fu.readline())
                nr_SIPs_plot[itot_inst,i_plot] = nr_SIPs
                #print(i_inst,iplot,nr_SIPs)
                strline=fu.readline().split()
                nEK_sip_plot[itot_inst,i_plot,0:nr_SIPs]= np.array( strline, dtype='float' ) #, sep=','
                strline=fu.readline().split()
                mEK_sip_plot[itot_inst,i_plot,0:nr_SIPs]= np.array( strline, dtype='float' )
            itot_inst += 1
        fu.close()

    return nEK_sip_plot, mEK_sip_plot, None, nr_SIPs_plot, None, t_vec_GVplot, dV, skal_m
#<<<<<<<<< box model version <<<<<<<<<<<<<
#<<<<<<<< end subroutine readSingleSimulationSIPdata

def readSingleSimulationMoments(fp_in):
# >>>> box model version >>>>>>
# box model version
# read moments data of a single simulation
# In the default case, all moment data are stored in the specified folder fp_in.
# If a simulation was split into several subs-simulations, then read moment data from the various subfolders.

# default case, where all SIP data lie in folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

# Cases with sub-simulations
    # if a given simulation is divided into sub-simulations, then by definition file InstanzenMeta.dat exists

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder = 0
        fu = open(fp_in + 'InstanzenMeta.dat','r')
        nr_subsims = int(fu.readline())
        nr_inst_tot = int(fu.readline())
        dirs_subsim = fu.readlines()
        for i,s in enumerate(dirs_subsim):  # remove trailing \n and other whitespace
            dirs_subsim[i] = s.strip()+'/'

        print('nr_subsims, nr_inst_tot: ', nr_subsims, nr_inst_tot)
        print(dirs_subsim)
        fu.close()

    itot_inst = 0
    for i_subsim,folder in enumerate(dirs_subsim):
        fp = fp_in + folder

        # read moments data
        fu = open(fp + 'Moments_meta.dat','r')
        dV = float(fu.readline())
        skal_m = float(fu.readline())
        nr_inst = int(fu.readline())
        nr_MOMsave = int(fu.readline())
        t_vec_MOMsave= np.array(fu.readline().split(), dtype='float' )
        #print(t_vec_GVplot)
        fu.close()

        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst
            MOMsave=np.zeros([nr_inst_tot,nr_MOMsave,4])
        fu = FK.openfile(fp + 'Moments.dat',options='rb')
        MOMsave[itot_inst:itot_inst+nr_inst,:,:]=np.loadtxt(fu).reshape((nr_inst,nr_MOMsave,4))
        itot_inst += nr_inst

    for i in range (4): MOMsave[:,:,i] = MOMsave[:,:,i]*skal_m**i/dV

    return MOMsave, t_vec_MOMsave, skal_m, dV
#<<<<<<<<< box model version <<<<<<<<<<<<<
#<<<<<<<< end subroutine readSingleSimulationMoments
#GCCendif /* (COLUMN == 0) */
#<<<<<<<<<<<<<<<<<<<<<<<<< box model <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


#>>>>>>>>>>>>>>>>>>>>>>>>> column model >>>>>>>>>>>>>>>>>>>>>>>>>>>>
#GCCif (COLUMN == 1)

def get_SubSimsData(fp_in):
    fu = open(fp_in + 'InstanzenMeta.dat','r')
    nr_subsims = int(fu.readline())
    nr_inst_tot = int(fu.readline())
    dirs_subsim = fu.readlines()
    for i,s in enumerate(dirs_subsim):  # remove trailing \n and other whitespace
        dirs_subsim[i] = s.strip()+'/'

    print('nr_subsims, nr_inst_tot: ', nr_subsims, nr_inst_tot)
    print(dirs_subsim)
    fu.close()
    return 0,nr_subsims,nr_inst_tot,dirs_subsim

def get_nz(fp):
    return get_MetaData(fp)[0]

def get_dz(fp):
    return get_MetaData(fp)[1]

def get_MetaData(fp):
    #get meta data of single column model simulation
    dirs_subsim=['']
    #check existence of file InstanzenMeta.dat. If it exists, then read Meta.dat of first sub-simulation.
    if os.path.isfile(fp + 'InstanzenMeta.dat'):
        i_singlefolder,nr_subsims,nr_inst_tot,dirs_subsim = get_SubSimsData(fp)

    fMeta = open(fp +dirs_subsim[0] +'Meta.dat','r')
    str_array = fMeta.readline().split()
    nz=int(str_array[0])
    dz=float(str_array[1])
    Tsim=float(str_array[2])
    nr_inst=int(str_array[3])
    str_array = fMeta.readline().split()
    LWC=float(str_array[0])
    r0=float(str_array[1])
    xf0=float(str_array[2])
    ikernel=int(str_array[3])
    i_init_1D=int(str_array[4])
    i_process=int(str_array[5])

    return nz,dz,Tsim,nr_inst,LWC,r0,xf0,ikernel,i_init_1D,i_process
#<<<<<<<< end routine get_MetaData

def readSingleSimulationSIPdata(fp_in, nr_sip_max=1):
# >>>>colum model version >>>>>>
# Read SIP data of a single simulation.
# In the default case, all SIP data are stored in the specified folder fp_in.
# If a simulation was split into several subs-simulations, then read SIP data from the various subfolders.# nr_sip_max is dummy argument, introduced for consistency with COLUMN =0 version of this routine

# default case, where all SIP data lie in folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

# Cases with sub-simulations
    # if a given simulation is divided into sub-simulations, then by definition file InstanzenMeta.dat exists

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder,nr_subsims,nr_inst_tot,dirs_subsim = get_SubSimsData(fp_in)

    nr_inst=np.zeros(nr_subsims,dtype='int')

    for i_subsim,folder in enumerate(dirs_subsim):
    # Read SIP meta data of all realisations
    # get maximum number of SIPs of full column and of a single grid box over all realisations.
        fp = fp_in + folder
        fGVMeta = open(fp + 'SIP_meta.dat','r')
        nr_inst[i_subsim] = int(fGVMeta.readline())
        nr_GVplot = int(fGVMeta.readline())
        t_vec_GVplot= np.array(fGVMeta.readline().split(), dtype='float' )
        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst[i_subsim]
            nr_SIPs_max=0 #total SIP number over full column, maximum over time and instances
            nr_SIPs_GB_maxmax=0 # nr_SIPs_GB_max: highest SIP number in a single grid box; nr_SIPs_GB_maxmax: take maximum over time and instances
        for i_inst in range(nr_inst[i_subsim]):
            fGVMeta.readline()
            for i_GVplot in range(nr_GVplot):
                [nr_SIPs,nr_SIPs_GB_max]=np.array(fGVMeta.readline().split(), dtype='int')
                nr_SIPs_max=max([nr_SIPs,nr_SIPs_max])
                nr_SIPs_GB_maxmax=max([nr_SIPs_GB_max,nr_SIPs_GB_maxmax]) # currently not used in the following evaluation
        fGVMeta.close()

    itot_inst = 0
    for i_subsim,folder in enumerate(dirs_subsim):
    # read SIP data of all realisations
        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst[0]
            nEK_sip_plot=np.zeros([nr_inst_tot,nr_GVplot,nr_SIPs_max])
            mEK_sip_plot=np.zeros([nr_inst_tot,nr_GVplot,nr_SIPs_max])
            zEK_sip_plot=np.zeros([nr_inst_tot,nr_GVplot,nr_SIPs_max])
            nz=get_nz(fp)
            nr_SIPs_prof=np.zeros([nr_inst_tot,nr_GVplot,nz],dtype='int')
            nr_SIPs_plot=np.zeros([nr_inst_tot,nr_GVplot],dtype='int')
            fu = open(fp + 'Moments_meta.dat','r')
            dV = float(fu.readline())
            skal_m = float(fu.readline())
            fu.close()
            V = nz * dV
        fGV = FK.openfile(fp + 'SIP.dat',options='r')
        print(folder)
        for i_inst in range(0,nr_inst[i_subsim]):
            #print(i_subsim,i_inst,itot_inst)
            for i_plot in range(0,nr_GVplot):
                iSIP=0

                for k in range(nz):
                    [nr_SIPs,iz]=np.array(fGV.readline().split(),dtype='int')
                    nr_SIPs_prof[itot_inst,i_plot,k]= nr_SIPs
                    if (nr_SIPs > 0):
                        ia=iSIP
                        ie=ia+nr_SIPs
                        nEK_sip_plot[itot_inst,i_plot,ia:ie]=np.array(fGV.readline().split())
                        mEK_sip_plot[itot_inst,i_plot,ia:ie]=np.array(fGV.readline().split())
                        zEK_sip_plot[itot_inst,i_plot,ia:ie]=np.array(fGV.readline().split())
                        iSIP=iSIP+nr_SIPs
                nr_SIPs_plot[itot_inst,i_plot]= iSIP
            itot_inst += 1
        fGV.close()

    return nEK_sip_plot, mEK_sip_plot, zEK_sip_plot, nr_SIPs_plot, nr_SIPs_prof, t_vec_GVplot, V, skal_m
#<<<<<<<<<colum model version <<<<<<<<<<<<<
#<<<<<<< end subroutine readSingleSimulationSIPdata

def readSingleSimulationMoments(fp_in):
# >>>>colum model version >>>>>>
# read Moments.dat in folder fp_in
# if simulation is divided in several sub-simulations, then read according files from all sub-folders

# Default Case, where simulation data lie in specified folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

#Case, where multiple sub-simulations exist and data lie in sub-folders
    #if file InstanzenMeta.dat exists, then sub-simulations exist (the sub-folders are listed in InstanzenMeta.dat)

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder,nr_subsims,nr_inst_tot,dirs_subsim = get_SubSimsData(fp_in)

    itot_inst = 0
    for i_subsim,folder in enumerate(dirs_subsim):
        fp = fp_in + folder

        #Read meta file
        fu = open(fp + 'Moments_meta.dat','r')
        dV = float(fu.readline())
        skal_m = float(fu.readline())
        #print(dV,skal_m)
        nr_inst = int(fu.readline())
        print('i_subsim, nr_inst', i_subsim, nr_inst,itot_inst)
        nr_MOMsave = int(fu.readline())
        t_vec_MOMsave= np.array(fu.readline().split(), dtype='float' )
        #print(t_vec_GVplot)
        fu.close()

        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst
            nz=get_nz(fp)
            MOMsave=np.zeros([nr_inst_tot,nr_MOMsave,nz,4])
            print('MOMsave.shape', MOMsave.shape)

        fu = FK.openfile(fp + 'Moments.dat',options='rb')
        MOMsave[itot_inst:itot_inst+nr_inst,:,:,:]=np.loadtxt(fu).reshape((nr_inst,nr_MOMsave,nz,4))
        itot_inst += nr_inst
    for i in range (4): MOMsave[:,:,:,i] = MOMsave[:,:,:,i]*(skal_m**i)/dV
    return MOMsave, t_vec_MOMsave, skal_m, dV
#<<<<<<<<<colum model version <<<<<<<<<<<<<
#<<<<<<<< end subroutine readSingleSimulationMoments

def readSingleSimulationMomentsMeanFinal(fp_in, iPlotextras=0, iTimesCross=0, thresh=None):
# >>>>colum model version >>>>>>
# read MomentsMean.dat in folder fp_in
# if simulation is divided in several sub-simulations then read according files from all sub-folders

# Default Case, where simulation data lie in specified folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

#Case, where multiple sub-simulations exist and data lie in sub-folders
    #if file InstanzenMeta.dat exists, then sub-simulations exist (the sub-folders are listed in InstanzenMeta.dat)

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder,nr_subsims,nr_inst_tot,dirs_subsim = get_SubSimsData(fp_in)

    for i_subsim,folder in enumerate(dirs_subsim):
        fp = fp_in + folder

        #Read meta file
        fu = open(fp + 'Moments_meta.dat','r')
        dV = float(fu.readline())
        skal_m = float(fu.readline())
        #print(dV,skal_m)
        nr_inst = int(fu.readline())
        nr_MOMsave = int(fu.readline())
        t_vec_MOMsave= np.array(fu.readline().split(), dtype='float' )
        #print(t_vec_GVplot)
        fu.close()

        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst
            nz=get_nz(fp)
            if (iTimesCross == 0):
                MOMsave=np.zeros([4])
            else:
                MOMsave = np.zeros([nr_MOMsave,4])
                indices = np.zeros([2,3],dtype='int')

        fu = FK.openfile(fp + 'MomentsMean.dat',options='rb')
        if (iTimesCross == 0):
            if (fu is None):
                return 0, 0, 0, 0
            nt_time_pick = nr_MOMsave-1
            if (iPlotextras == 10):
                nt_time_pick = 72
            MOMsave[:] += nr_inst*np.loadtxt(fu).reshape((nr_MOMsave,4))[nt_time_pick,:]
        else:
            if (fu is None):
                return 0, 0, 0, 0
            MOMsave[:,:] += nr_inst*np.loadtxt(fu).reshape((nr_MOMsave,4))

    # Averaging over final data
    MOMsave = MOMsave/dV/nr_inst_tot

    if (iTimesCross == 0):
        for i in range (4):
            MOMsave[i] = MOMsave[i]*(skal_m**i)
        return MOMsave, skal_m, dV, 1
    else:
        iMom = 0
        iiMom = 0
        for ithr in range(3):
            print('iMom,ithr',iMom,ithr)
            indices[iiMom,ithr] = np.where(MOMsave[:,iMom].reshape((nr_MOMsave)) < thresh[iiMom,ithr])[0][0]
        iMom = 2
        iiMom = 1
        for ithr in range(3):
            print('iMom,ithr',iMom,ithr)
            indices[iiMom,ithr] = np.where(MOMsave[:,iMom].reshape((nr_MOMsave)) > thresh[iiMom,ithr])[0][0]

        return t_vec_MOMsave[indices]


#<<<<<<<<<colum model version <<<<<<<<<<<<<
#<<<<<<<< end subroutine readSingleSimulationMomentsMean


def readSingleSimulationFluxes(fp_in):
# >>>>colum model version >>>>>>
# read flux data of a single simulation
# if simulation is divided in several sub-simulations then read according files from all sub-folders

# Default Case, where simulation data lie in specified folder fp_in
    i_singlefolder = 1
    dirs_subsim=['']
    # nr_inst_tot not yet known
    nr_subsims = 1

#Case, where multiple sub-simulations exist and data lie in sub-folders
    #if file InstanzenMeta.dat exists, then sub-simulations exist (the sub-folders are listed in InstanzenMeta.dat)

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder,nr_subsims,nr_inst_tot,dirs_subsim = get_SubSimsData(fp_in)

    #nz,dz,Tsim,nr_inst,LWC,r0,xf0,ikernel,i_init_1D,i_process=get_MetaData(fp_in)

    itot_inst = 0
    for i_subsim,folder in enumerate(dirs_subsim):
        fp = fp_in + folder

        fGVMeta = open(fp + 'SIP_meta.dat','r')
        nr_inst = int(fGVMeta.readline())
        nr_GVplot = int(fGVMeta.readline())
        t_vec_GVplot= np.array(fGVMeta.readline().split(), dtype='float' )
        fGVMeta.close()

        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot=nr_inst
            FluxIn=np.zeros([nr_inst_tot,nr_GVplot-1,5])
            FluxOut=np.zeros([nr_inst_tot,nr_GVplot-1,5])
            FluxInAcc=np.zeros([nr_inst_tot,nr_GVplot-1,5])
            FluxOutAcc=np.zeros([nr_inst_tot,nr_GVplot-1,5])

        #FluxIn,FluxOut,FluxInAcc,FluxOutAcc
        FluxIn[itot_inst:itot_inst+nr_inst,:,:]=np.loadtxt(fp+'Fluxes_in.dat').reshape(nr_inst,nr_GVplot-1,5)
        FluxInAcc[itot_inst:itot_inst+nr_inst,:,:]=np.loadtxt(fp+'Fluxes_in_acc.dat').reshape(nr_inst,nr_GVplot-1,5)
        FluxOut[itot_inst:itot_inst+nr_inst,:,:]=np.loadtxt(fp+'Fluxes_out.dat').reshape(nr_inst,nr_GVplot-1,5)
        FluxOutAcc[itot_inst:itot_inst+nr_inst,:,:]=np.loadtxt(fp+'Fluxes_out_acc.dat').reshape(nr_inst,nr_GVplot-1,5)
        itot_inst += nr_inst

    return FluxIn,FluxOut,FluxInAcc,FluxOutAcc,t_vec_GVplot
#<<<<<<<<<colum model version <<<<<<<<<<<<<
#<<<<<<<< end subroutine readSingleSimulationFluxes


def readSingleSimulationSIP_outfalling_data(fp_in,infalling=0):
# if simulation is divided in several sub-simulations then read according files from all sub-folders
    #fu_log = open(fp_in + 'LOG_out.txt','w')
# Default Case, where simulation data lie in specified folder fp_in
    i_singlefolder = 1
    dirs_subsim = ['']
    # nr_inst_tot not yet known
    nr_subsims = 1
    suffix=['out','in'][infalling]

#Case, where multiple sub-simulations exist and data lie in sub-folders
    #if file InstanzenMeta.dat exists, then sub-simulations exist (the sub-folders are listed in InstanzenMeta.dat)

    if os.path.isfile(fp_in + 'InstanzenMeta.dat'):
        i_singlefolder, nr_subsims, nr_inst_tot, dirs_subsim = get_SubSimsData(fp_in)

    nr_inst = np.zeros(nr_subsims, dtype='int')

    #get number of instances of each subsim
    for i_subsim, folder in enumerate(dirs_subsim):
        fp = fp_in + folder
        fGVMeta = open(fp + 'SIP_meta.dat','r')
        nr_inst[i_subsim] = int(fGVMeta.readline())
        nr_GVplot = int(fGVMeta.readline())
        t_vec_GVplot = np.array(fGVMeta.readline().split(), dtype='float' )
        fGVMeta.close()
        if (i_subsim == 0):
            if (i_singlefolder == 1): nr_inst_tot = nr_inst[i_subsim]

    print('nr_inst: ', nr_inst)
    # get number of outfalling SIPs per instance
    nr_SIPs_out = np.zeros(nr_inst_tot, dtype='int')
    nr_times_out = np.zeros(nr_inst_tot, dtype='int')
    itot_inst = 0
    for i_subsim, folder in enumerate(dirs_subsim):
        fp = fp_in + folder
        #print(fp)
        #tmpread = np.loadtxt(fp+'Fluxes_out_acc.dat').reshape(nr_inst[i_subsim], nr_GVplot-1, 5)
        #print(itot_inst, nr_inst[i_subsim], tmpread.shape, tmpread[:, nr_GVplot-2, 4].shape)
        #print('II', itot_inst,itot_inst+nr_inst[i_subsim])
        #print(nr_SIPs_out[itot_inst:itot_inst+nr_inst[i_subsim]].shape)
        nr_SIPs_out[itot_inst:itot_inst+nr_inst[i_subsim]] = \
           np.loadtxt(fp+'Fluxes_'+suffix+'_acc.dat').reshape(nr_inst[i_subsim], nr_GVplot-1, 5)[:, nr_GVplot-2, 4]
        #print('nrSIPs_out: ', nr_SIPs_out[itot_inst:itot_inst+nr_inst[i_subsim]])
        nr_times_out[itot_inst:itot_inst+nr_inst[i_subsim]] = \
            np.loadtxt(fp+'SIP'+suffix+'_meta.dat')
        #print('nrTimes_out: ', nr_times_out[itot_inst:itot_inst+nr_inst[i_subsim]])
        itot_inst += nr_inst[i_subsim]
    # end meta data processing

    nr_SIPs_out_max = nr_SIPs_out.max()
    itot_inst = 0
    for i_subsim, folder in enumerate(dirs_subsim):
        fp = fp_in + folder
        #Einlesen SIP-Daten aller Instanzen
        if (i_subsim == 0):
            nEK_sip_out = np.zeros([nr_inst_tot, nr_SIPs_out_max])
            mEK_sip_out = np.zeros([nr_inst_tot, nr_SIPs_out_max])
            tEK_sip_out = np.zeros([nr_inst_tot, nr_SIPs_out_max])
            dz=get_dz(fp)
            fu = open(fp + 'Moments_meta.dat','r')
            dV = float(fu.readline())
            fu.close()
            A = dV / dz
        fGVout = FK.openfile(fp + 'SIP'+suffix+'.dat',options='r')

        for i_inst in range(nr_inst[i_subsim]):
            iSIP = 0
            itimes_tot=0
            #print('BB', i_subsim, i_inst, nr_times_out[itot_inst])
            for itimes in range(nr_times_out[itot_inst]):
                [time, nr_SIPs]=np.array(fGVout.readline().split(), dtype='int')
                #fu_log.write("{:3d} {:3d} {:3d} {:5d} {:5d} {:5d} {:7d} {:7d} {:7d}\n".format(i_subsim, i_inst, itot_inst, itimes,itimes_tot, nr_times_out[itot_inst], time, iSIP, nr_SIPs))
                ia = iSIP
                ie = ia + nr_SIPs
                nEK_sip_out[itot_inst, ia:ie] = np.array(fGVout.readline().split())
                mEK_sip_out[itot_inst, ia:ie] = np.array(fGVout.readline().split())
                tEK_sip_out[itot_inst, ia:ie] = time
                iSIP += nr_SIPs
                itimes_tot += 1
            itot_inst += 1

        fGVout.close()

    return nEK_sip_out, mEK_sip_out, tEK_sip_out, nr_SIPs_out, t_vec_GVplot[nr_GVplot-1], A
#<<<<<<<<<colum model version <<<<<<<<<<<<<
#<<<<<<< end subroutine readSingleSimulationSIP_outfalling_data


#GCCendif /* (COLUMN == 1) */
back to top