anchor.diff:      real(kflt)                      :: tfista,tpfista,mnest
       real                            :: elapsed
       real(kflt)                      :: facc
  -    real(kflt)                      :: grd_nrm ! grd_nrm to be minimized; magnitude of the gradient
  -    real(kflt)                      :: max_err
       real(kflt),parameter            :: gamma1=0.9_kflt,gamma2=0.999_kflt
       logical                         :: fixed_gamma = .true.
       real(kflt)                      :: g1,g2
  
positive.code:              end if
            end if
            
            ! print reconstr. err. 
            max_err = sqrt(maxval((fmodel - fdata + lambda * prm)**2))
            grd_nrm = sqrt(sum((fmodel - fdata + lambda * prm)**2)/size(prm))
            
            ! compute gradient  of the cost function
            call cost_compute_gradient(fdata,fmodel,lambda,prm,grd)
  
            select case(trim(algorithm))
            case('gd')
  
negative.code:           
            call cost_compute_energies(fdata,prm,lambda,data_energy,regularization_energy)
  
         end if
  
         call float_bcast(size(prm),prm)
  