Changeset 23365


Ignore:
Timestamp:
10/02/18 03:56:24 (6 years ago)
Author:
bdef
Message:

NEW: adding a smb scheme that compute runoff separately (also fixing stallo cluster)

Location:
issm/trunk-jpl/src/m
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/clusters/stallo.m

    r23230 r23365  
    105105                         fprintf(fid,'#SBATCH --nodes=%i \n',cluster.numnodes);
    106106                         fprintf(fid,'#SBATCH --ntasks-per-node=%i \n',cluster.cpuspernode);
    107                          fprintf(fid,'#SBATCH --time=%02i-%02i:%02i:00 \n',floor(cluster.time/(3600*24)),floor(cluster.time/3600),floor(mod(cluster.time,60)));
    108                          fprintf(fid,'#SBATCH --mem-per-cpu=%iMB\n',1000*cluster.mem); ...
    109        % mem in MB
     107                         days=floor(cluster.time/(60*24));
     108                         hours=floor((cluster.time-(days*60*24))/60);
     109                         minutes=floor(mod((cluster.time-(days*60*24)-(hours*60)),60));
     110                         fprintf(fid,'#SBATCH --time=%02i-%02i:%02i:00 \n',days,hours,minutes);
     111                         fprintf(fid,'#SBATCH --mem-per-cpu=%iMB\n',1000*cluster.mem); % mem in MB
    110112                         if (mod(cluster.np,16)+mod(cluster.np,20))==0,
    111113                                fprintf(fid,'#SBATCH --ntask=%i\n',cluster.np);
  • issm/trunk-jpl/src/m/classes/clusters/stallo.py

    r23230 r23365  
    120120                h,m=divmod(m, 60)
    121121                d,h=divmod(h, 60)
    122 #               timestring="%02d-%02d:%02d:%02d" % (d, h, m, s)
     122                timestring="%02d-%02d:%02d:%02d" % (d, h, m, s)
    123123                fid.write('#SBATCH --time={}\n'.format(timestring)) #walltime is minutes
    124                 fid.write('#SBATCH --mem-per-cpu={}MB\n'.format(1000*self.mem))# mem is in MB (to keep it integral)
     124                fid.write('#SBATCH --mem-per-cpu={}MB\n'.format(int(1000*self.mem)))# mem is in MB (to keep it integral)
    125125                if (np.mod(self.np,16)+np.mod(self.np,20))==0:
    126126                        fid.write('#SBATCH --ntask=%i\n' % self.np)
  • issm/trunk-jpl/src/m/classes/taoinversion.py

    r22267 r23365  
    9797                else:
    9898                        self.algorithm = 'tao_blmvm';
    99                
     99
    100100                #several responses can be used:
    101101                self.cost_functions=101;
     
    110110                if numel(self.cost_functions_coefficients) > 1:
    111111                        self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')
    112                
     112
    113113                if numel(self.min_parameters) > 1:
    114114                        self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node')
    115                
     115
    116116                if numel(self.max_parameters)>1:
    117117                        self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node')
     
    123123                        return md
    124124                if not IssmConfig('_HAVE_TAO_')[0]:
    125                         md = checkmessage(md,['TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO'])
     125                        md = md.checkmessage('TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO')
    126126
    127127
  • issm/trunk-jpl/src/m/contrib/defleurian/paraview/enveloppeVTK.py

    r23211 r23365  
    8585                        if (np.size(res_struct.__dict__[solution])>num_of_timesteps):
    8686                                num_of_timesteps=np.size(res_struct.__dict__[solution])
    87                                 num_of_timesteps=int(num_of_timesteps)+1
     87                                num_of_timesteps=int(num_of_timesteps)
    8888        else:
    8989                num_of_timesteps=1
     
    125125                                #getting the  fields in the solution
    126126                                if(np.size(res_struct.__dict__[sol])>1):
    127                                         fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep-1).__dict__)
     127                                        fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep).__dict__)
    128128                                else:
    129129                                        fieldnames=dict.keys(res_struct.__dict__[sol].__dict__)
     
    131131                                for field in fieldnames:
    132132                                        if(np.size(res_struct.__dict__[sol])>1):
    133                                                 fieldstruct=res_struct.__dict__[sol].__getitem__(timestep-1).__dict__[field]
     133                                                fieldstruct=res_struct.__dict__[sol].__getitem__(timestep).__dict__[field]
    134134                                        else:
    135135                                                fieldstruct=res_struct.__dict__[sol].__dict__[field]
  • issm/trunk-jpl/src/m/solve/WriteData.py

    r23095 r23365  
    77        """
    88        WRITEDATA - write model field in binary file
    9  
     9
    1010           Usage:
    1111              WriteData(fid,varargin)
     
    5757        #Step 1: write the enum to identify this record uniquely
    5858        fid.write(struct.pack('i',len(name)))
    59         fid.write(struct.pack('%ds' % len(name),name)) 
     59        fid.write(struct.pack('%ds' % len(name),name))
    6060
    6161        #Step 2: write the data itself.
     
    6767                fid.write(struct.pack('i',4+4))  #1 bool (disguised as an int)+code
    6868
    69                 #write data code: 
    70                 fid.write(struct.pack('i',FormatToCode(format))) 
     69                #write data code:
     70                fid.write(struct.pack('i',FormatToCode(format)))
    7171
    7272                #now write integer
     
    8181                fid.write(struct.pack('i',4+4))  #1 integer + code
    8282
    83                 #write data code: 
    84                 fid.write(struct.pack('i',FormatToCode(format))) 
     83                #write data code:
     84                fid.write(struct.pack('i',FormatToCode(format)))
    8585
    8686                #now write integer
    87                 fid.write(struct.pack('i',data)) 
     87                fid.write(struct.pack('i',data))
    8888                # }}}
    8989
     
    9595                fid.write(struct.pack('i',8+4))  #1 double+code
    9696
    97                 #write data code: 
    98                 fid.write(struct.pack('i',FormatToCode(format))) 
     97                #write data code:
     98                fid.write(struct.pack('i',FormatToCode(format)))
    9999
    100100                #now write double
    101                 fid.write(struct.pack('d',data)) 
     101                fid.write(struct.pack('d',data))
    102102                # }}}
    103103
     
    106106                fid.write(struct.pack('i',len(data)+4+4))  #string + string size + code
    107107
    108                 #write data code: 
    109                 fid.write(struct.pack('i',FormatToCode(format))) 
     108                #write data code:
     109                fid.write(struct.pack('i',FormatToCode(format)))
    110110
    111111                #now write string
    112                 fid.write(struct.pack('i',len(data))) 
    113                 fid.write(struct.pack('%ds' % len(data),data)) 
     112                fid.write(struct.pack('i',len(data)))
     113                fid.write(struct.pack('%ds' % len(data),data))
    114114                # }}}
    115115
     
    135135                fid.write(struct.pack('i',4+4+8*np.product(s)+4+4))    #2 integers (32 bits) + the double matrix + code + matrix type
    136136
    137                 #write data code and matrix type: 
    138                 fid.write(struct.pack('i',FormatToCode(format))) 
     137                #write data code and matrix type:
     138                fid.write(struct.pack('i',FormatToCode(format)))
    139139                fid.write(struct.pack('i',mattype))
    140140
    141141                #now write matrix
    142142                if np.ndim(data)==1:
    143                         fid.write(struct.pack('i',s[0])) 
    144                         fid.write(struct.pack('i',1)) 
     143                        fid.write(struct.pack('i',s[0]))
     144                        fid.write(struct.pack('i',1))
    145145                        for i in xrange(s[0]):
    146146                                fid.write(struct.pack('d',float(data[i])))    #get to the "c" convention, hence the transpose
    147147                else:
    148                         fid.write(struct.pack('i',s[0])) 
    149                         fid.write(struct.pack('i',s[1])) 
     148                        fid.write(struct.pack('i',s[0]))
     149                        fid.write(struct.pack('i',s[1]))
    150150                        for i in xrange(s[0]):
    151151                                for j in xrange(s[1]):
     
    174174                fid.write(struct.pack('i',4+4+8*np.product(s)+4+4))    #2 integers (32 bits) + the double matrix + code + matrix type
    175175
    176                 #write data code and matrix type: 
    177                 fid.write(struct.pack('i',FormatToCode(format))) 
     176                #write data code and matrix type:
     177                fid.write(struct.pack('i',FormatToCode(format)))
    178178                fid.write(struct.pack('i',mattype))
    179179
    180180                #now write matrix
    181181                if np.ndim(data) == 1:
    182                         fid.write(struct.pack('i',s[0])) 
    183                         fid.write(struct.pack('i',1)) 
     182                        fid.write(struct.pack('i',s[0]))
     183                        fid.write(struct.pack('i',1))
    184184                        for i in xrange(s[0]):
    185185                                fid.write(struct.pack('d',float(data[i])))    #get to the "c" convention, hence the transpose
    186186                else:
    187                         fid.write(struct.pack('i',s[0])) 
    188                         fid.write(struct.pack('i',s[1])) 
     187                        fid.write(struct.pack('i',s[0]))
     188                        fid.write(struct.pack('i',s[1]))
    189189                        for i in xrange(s[0]):
    190190                                for j in xrange(s[1]):
     
    217217                fid.write(struct.pack('i',recordlength))  #2 integers (32 bits) + the double matrix + code + matrix type
    218218
    219                 #write data code and matrix type: 
    220                 fid.write(struct.pack('i',FormatToCode(format))) 
     219                #write data code and matrix type:
     220                fid.write(struct.pack('i',FormatToCode(format)))
    221221                fid.write(struct.pack('i',mattype))
    222222
    223223                #now write matrix
    224224                if np.ndim(data) == 1:
    225                         fid.write(struct.pack('i',s[0])) 
    226                         fid.write(struct.pack('i',1)) 
     225                        fid.write(struct.pack('i',s[0]))
     226                        fid.write(struct.pack('i',1))
    227227                        for i in xrange(s[0]):
    228228                                fid.write(struct.pack('d',float(data[i])))    #get to the "c" convention, hence the transpose
    229229                else:
    230                         fid.write(struct.pack('i',s[0])) 
    231                         fid.write(struct.pack('i',s[1])) 
     230                        fid.write(struct.pack('i',s[0]))
     231                        fid.write(struct.pack('i',s[1]))
    232232                        for i in xrange(s[0]):
    233233                                for j in xrange(s[1]):
     
    266266                fid.write(struct.pack('i',recordlength))  #2 integers (32 bits) + the matrix + code + matrix type
    267267
    268                 #write data code and matrix type: 
    269                 fid.write(struct.pack('i',FormatToCode(format))) 
     268                #write data code and matrix type:
     269                fid.write(struct.pack('i',FormatToCode(format)))
    270270                fid.write(struct.pack('i',mattype))
    271271
     
    276276
    277277                if rangeA == 0:
    278                         A = A*0 
    279                 else:
    280                         A = (A-offsetA)/rangeA*255. 
    281                
     278                        A = A*0
     279                else:
     280                        A = (A-offsetA)/rangeA*255.
     281
    282282                #now write matrix
    283283                if np.ndim(data) == 1:
    284                         fid.write(struct.pack('i',s[0])) 
    285                         fid.write(struct.pack('i',1)) 
     284                        fid.write(struct.pack('i',s[0]))
     285                        fid.write(struct.pack('i',1))
    286286                        fid.write(struct.pack('d',float(offsetA)))
    287287                        fid.write(struct.pack('d',float(rangeA)))
     
    292292
    293293                elif np.product(s) > 0:
    294                         fid.write(struct.pack('i',s[0])) 
    295                         fid.write(struct.pack('i',s[1])) 
     294                        fid.write(struct.pack('i',s[0]))
     295                        fid.write(struct.pack('i',s[1]))
    296296                        fid.write(struct.pack('d',float(offsetA)))
    297297                        fid.write(struct.pack('d',float(rangeA)))
     
    324324
    325325                #write length of record
    326                 fid.write(struct.pack('i',recordlength)) 
    327 
    328                 #write data code: 
    329                 fid.write(struct.pack('i',FormatToCode(format))) 
     326                fid.write(struct.pack('i',recordlength))
     327
     328                #write data code:
     329                fid.write(struct.pack('i',FormatToCode(format)))
    330330
    331331                #write data, first number of records
    332                 fid.write(struct.pack('i',len(data))) 
     332                fid.write(struct.pack('i',len(data)))
    333333
    334334                for matrix in data:
     
    343343
    344344                        if np.ndim(matrix) == 1:
    345                                 fid.write(struct.pack('i',s[0])) 
    346                                 fid.write(struct.pack('i',1)) 
     345                                fid.write(struct.pack('i',s[0]))
     346                                fid.write(struct.pack('i',1))
    347347                                for i in xrange(s[0]):
    348348                                        fid.write(struct.pack('d',float(matrix[i])))    #get to the "c" convention, hence the transpose
    349349                        else:
    350                                 fid.write(struct.pack('i',s[0])) 
    351                                 fid.write(struct.pack('i',s[1])) 
     350                                fid.write(struct.pack('i',s[0]))
     351                                fid.write(struct.pack('i',s[1]))
    352352                                for i in xrange(s[0]):
    353353                                        for j in xrange(s[1]):
     
    363363
    364364                #write length of record
    365                 fid.write(struct.pack('i',recordlength)) 
    366 
    367                 #write data code: 
    368                 fid.write(struct.pack('i',FormatToCode(format))) 
     365                fid.write(struct.pack('i',recordlength))
     366
     367                #write data code:
     368                fid.write(struct.pack('i',FormatToCode(format)))
    369369
    370370                #now write length of string array
    371                 fid.write(struct.pack('i',len(data))) 
     371                fid.write(struct.pack('i',len(data)))
    372372
    373373                #now write the strings
    374374                for string in data:
    375                         fid.write(struct.pack('i',len(string))) 
    376                         fid.write(struct.pack('%ds' % len(string),string)) 
     375                        fid.write(struct.pack('i',len(string)))
     376                        fid.write(struct.pack('%ds' % len(string),string))
    377377                # }}}
    378378
     
    383383def FormatToCode(format): # {{{
    384384        """
    385         This routine takes the format string, and hardcodes it into an integer, which 
    386         is passed along the record, in order to identify the nature of the dataset being 
     385        This routine takes the format string, and hardcodes it into an integer, which
     386        is passed along the record, in order to identify the nature of the dataset being
    387387        sent.
    388388        """
Note: See TracChangeset for help on using the changeset viewer.