title: Compile user subroutine only once when running consecutive jobs in Abaqus
body: <p>I have a script written in Python which calibrates material parameters based on the output of the last job, that is, it runs many jobs in Abaqus consecutively until an error is small enough.</p>
  
  <p>I use a Fortran subroutine which compiles before each job.</p>
  
  <p>The problem is that for each job I submit, the user subroutine compiles. Even though the input parameters are different from the last job the user subroutine does not have to be compiled again. Compilation of the subroutine takes about 80% of the time of running a job.</p>
  
  <p><strong>How can I specify to only compile the user subroutine ONCE and use it for all consecutive runs?</strong></p>
  
  <p>The following is snippets of relevant code written in Python. I execute my script by typing</p>
  
  <pre><code>abaqus cae nogui=script.py
  </code></pre>
  
  <p>in a terminal. The code uses the Abaqus scripting interface.</p>
  
  <p>Creating a job:</p>
  
  <pre><code>mdb.Job(name=self.jobName, model='Model-1', description='', type=ANALYSIS, 
          atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, 
          memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True, 
          explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, 
          modelPrint=OFF, contactPrint=OFF, historyPrint=OFF,
          userSubroutine=self.userSubroutinePath, 
          scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1, 
          numGPUs=0)
  </code></pre>
  
  <p>Submit and wait for job completion:</p>
  
  <pre><code>mdb.jobs[self.jobName].submit(consistencyChecking=OFF)
  mdb.jobs[self.jobName].waitForCompletion()
  </code></pre>
  
  <p>This code is run each time I run a consecutive job with data from the previous run.</p>
  
  <p>The compiler is Intel 64 Fortran Compiler XE, Version 15.0.0.090 Build 20140723.</p>