Ignore:
Timestamp:
13/01/05 16:03:52 (16 years ago)
Author:
selatham
Message:

bug fixes, write classes and other new classes as required.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • nappy/trunk/naFile2160.py

    r349 r361  
    2626        """ 
    2727        Reads FFI-specifc header section. 
    28         """         
     28        """ 
    2929        self._normalizedX="no" 
    3030        self._readCommonHeader() 
     
    3232        self.LENX=readItemFromLine(self.file.readline(), float) 
    3333        self.XNAME=readItemsFromLines(self._readLines(self.NIV), self.NIV, str) 
    34         self.XNAME.reverse()  # Reverse because C-type array is least-changing first           
     34        self.XNAME.reverse()  # Reverse because C-type array is least-changing first 
    3535        self._readVariablesHeaderSection() 
    3636        self._readCharAuxVariablesHeaderSection() 
    3737        self._readComments() 
     38 
     39    def writeHeader(self): 
     40        """ 
     41        Writes FFI-specific header section. 
     42        """ 
     43        self._writeCommonHeader() 
     44        self.DX.reverse() 
     45        self.file.write("%s\n" % tuple(self.DX)) 
     46        self.file.write("%s\n" % self.LENX) 
     47        self.XNAME.reverse() 
     48        self.file.write("%s\n"*self.NIV % tuple(self.XNAME)) 
     49        self._writeVariablesHeaderSection() 
     50        self._writeAuxVariablesHeaderSection() 
     51        self._writeComments() 
     52 
     53    def _writeAuxVariablesHeaderSection(self): 
     54        """ 
     55        Writes the auxiliary variables section of the header for FFI 2160. 
     56        Assumes we are at the right point in the file. 
     57        """ 
     58        self.file.write("%s\n" % self.NAUXV) 
     59        self.file.write("%s\n" % self.NAUXC) 
     60        if self.NAUXV>0: 
     61            self.file.write(("%s "*(self.NAUXV-self.NAUXC)+"\n")  % tuple(self.ASCAL)) 
     62            self.file.write(("%s "*(self.NAUXV-self.NAUXC)+"\n")  % tuple(self.AMISS[0:(self.NAUXV-self.NAUXC)])) 
     63            self.file.write(("%s "*self.NAUXC+"\n") % tuple(self.LENA[(self.NAUXV-self.NAUXC):])) 
     64            self.file.write(("%s\n"*self.NAUXC) % tuple(self.AMISS[(self.NAUXV-self.NAUXC):])) 
     65            self.file.write("%s\n"*self.NAUXV % tuple(self.ANAME)) 
    3866 
    3967    def _setupArrays(self): 
     
    5886        # Get character string independent variable 
    5987        (x1, datalines)=readItemsFromUnknownLines(datalines, 1, str) 
    60         self.X.append([]) 
    61         self.X[ivar_count].append(x1) 
     88        self.X.append([]) 
     89        self.X[ivar_count].append(x1[0]) 
    6290        # Set up list to take second changing independent variable 
    6391        self.X[ivar_count].append([])   
     
    6593        (aux, datalines)=readItemsFromUnknownLines(datalines, (self.NAUXV-self.NAUXC), float) 
    6694        self.NX.append(int(aux[0])) 
    67         for a in range(self.NAUXV-self.NAUXC): 
    68             self.A.append(aux[a]) 
     95        count=0 
     96        for a in range(self.NAUXV-self.NAUXC): 
     97            self.A[a].append(aux[count]) 
     98            count=count+1 
    6999        # Get character AUX vars 
    70100        (auxc)=readItemsFromLines(datalines[:self.NAUXC], self.NAUXC, str) 
    71101        rtlines=datalines[self.NAUXC:] 
    72         for a in range(self.NAUXC): 
    73             self.A.append(auxc[a]) 
     102        count=0 
     103        for a in range(self.NAUXC): 
     104            self.A[(self.NAUXV-self.NAUXC)+a].append(auxc[count]) 
     105            count=count+1 
    74106        return rtlines 
    75107     
     108    def writeData(self): 
     109        """ 
     110        Writes the data section of the file. 
     111        This method can be called directly by the user. 
     112        """ 
     113        # Set up unbounded IV loop 
     114       # self.NX.reverse() 
     115        for m in range(len(self.X)): 
     116             # Write Independent variable mark and auxiliary variables 
     117             var_string="%s    " % self.X[m][0] 
     118             self.file.write("%s\n" % var_string.rstrip()) 
     119             var_string="" 
     120             for a in range(self.NAUXV-self.NAUXC): 
     121                 var_string=var_string+("%s    " % self.A[a][m]) 
     122             self.file.write("%s\n" % var_string.rstrip()) 
     123 
     124             for a in range(self.NAUXC): 
     125                 var_string=("%s    " % self.A[(self.NAUXV-self.NAUXC)+a][m]) 
     126                 self.file.write("%s\n" % var_string.rstrip()) 
     127 
     128             # Write second independant variable and dependant variables 
     129             for p in range(self.NX[m]): 
     130                var_string="%s    " % self.X[m][1][p] 
     131                for n in range(self.NV): 
     132                        var_string=var_string+("%s    " %self.V[n][m][p]) 
     133                self.file.write("%s    \n" %var_string) 
Note: See TracChangeset for help on using the changeset viewer.