anchor.diff:  !       calculate these once for every call because they are only a function of dt
           cloud2snow = exp(-1.0*snow_formation_time_const*dt)
           cloud2rain = exp(-1.0*rain_formation_time_const*dt)
  +        snow_evap  = exp(-1.0*snow_evap_time_const*dt)
  +        rain_evap  = exp(-1.0*rain_evap_time_const*dt)
  +
           !$omp parallel private(i,j,temperature), &
           !$omp copyin(cloud2rain,cloud2snow,snow_melt,snow_evap,rain_evap),&
           !$omp shared(pressure,th,pii,qv,qc,qs,qr,rain,snow,dz),&
           !$omp firstprivate(dt,ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte)
           allocate(temperature(kts:kte))
  -        if (dt<1e-10) print*, dt ! for some reason this seems to fix an issue with ifort -O(anything) not copying dt in to the parallel region(?)
  +        if (dt<1e-10) print*, "dt=",dt ! for some reason this seems to fix an issue with ifort -O(anything) not copying dt in to the parallel region(?)
           !$omp do
           do j = jts,jte
               do i = its, ite
  
positive.code: ! arbitrary calibratable timescales default values as used in the linear model
  ! these should be pulled out to a parameter file for calibration purposes
  ! but this is approximately how they are implemented in SB04
      real, parameter :: snow_formation_time_const = 1 / 2000.0   ! [1/s]
      real, parameter :: rain_formation_time_const = 1 / 500.0    ! [1/s]
      real, parameter :: freezing_threshold        = 273.15       ! [K]
  
negative.code:             qvsat = sat_mr(temperature,pressure)
              ! if saturated create clouds
              if (qv>qvsat) then
                  excess = (qv-qvsat)*0.5
                  ! temperature change if all vapor is converted
                  temperature = temperature+(excess*vapor2temp)
                  qv = qv-excess
                  qc = qc+excess
              ! if unsaturated and clouds exist, evaporate clouds
              else if (qc>0) then
                  excess = (qvsat-qv)*0.5
                  if (excess<qc) then
                      temperature = temperature-(excess*vapor2temp)
                      qv = qv+excess
  