diff --git a/columnphysics/icepack_flux.F90 b/columnphysics/icepack_flux.F90
index 5be93277d..ce0b4b72c 100644
--- a/columnphysics/icepack_flux.F90
+++ b/columnphysics/icepack_flux.F90
@@ -9,10 +9,10 @@
       module icepack_flux
 
       use icepack_kinds
-      use icepack_parameters, only: c1, emissivity
+      use icepack_parameters, only: c1, emissivity, snwgrain
       use icepack_warnings, only: warnstr, icepack_warnings_add
       use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
-      use icepack_tracers, only: tr_iso, tr_snow
+      use icepack_tracers, only: tr_iso
 
       implicit none
       private
@@ -217,7 +217,7 @@ subroutine merge_fluxes (aicen,                &
       meltt     = meltt     + melttn    * aicen
       meltb     = meltb     + meltbn    * aicen
       melts     = melts     + meltsn    * aicen
-      if (tr_snow) then
+      if (snwgrain) then
          meltsliq  = meltsliq  + meltsliqn * aicen
       endif
       if (present(dsnow)) then
diff --git a/columnphysics/icepack_itd.F90 b/columnphysics/icepack_itd.F90
index c42dd8401..f6f042106 100644
--- a/columnphysics/icepack_itd.F90
+++ b/columnphysics/icepack_itd.F90
@@ -28,13 +28,13 @@ module icepack_itd
       use icepack_kinds
       use icepack_parameters, only: c0, c1, c2, c3, c15, c25, c100, p1, p01, p001, p5, puny
       use icepack_parameters, only: Lfresh, rhos, ice_ref_salinity, hs_min, cp_ice, rhoi
-      use icepack_parameters, only: rhosi, sk_l, hs_ssl, min_salin, rsnw_fall
+      use icepack_parameters, only: rhosi, sk_l, hs_ssl, min_salin, rsnw_fall, rhosnew
       use icepack_tracers,    only: nt_Tsfc, nt_qice, nt_qsno, nt_aero, nt_isosno, nt_isoice
       use icepack_tracers,    only: nt_apnd, nt_hpnd, nt_fbri, tr_brine, nt_bgc_S, bio_index
-      use icepack_tracers,    only: n_iso, tr_iso, tr_snow, nt_smice, nt_rsnw, nt_rhos, nt_sice
+      use icepack_tracers,    only: n_iso, tr_iso, nt_smice, nt_rsnw, nt_rhos, nt_sice
       use icepack_tracers,    only: icepack_compute_tracers
       use icepack_parameters, only: solve_zsal, skl_bgc, z_tracers, hi_min
-      use icepack_parameters, only: kcatbound, kitd, saltflux_option
+      use icepack_parameters, only: kcatbound, kitd, saltflux_option, snwgrain, snwredist
       use icepack_therm_shared, only: Tmin
       use icepack_warnings,   only: warnstr, icepack_warnings_add
       use icepack_warnings,   only: icepack_warnings_setabort, icepack_warnings_aborted
@@ -1239,9 +1239,13 @@ subroutine zap_small_areas (dt,        ntrcr,        &
                enddo
             endif
             if (tr_brine) trcrn(nt_fbri,n) = c1
-            if (tr_snow) then
+            if (snwredist(1:3) == 'ITD') then
+               do k = 1, nslyr
+                  trcrn(nt_rhos +k-1,n) = rhosnew
+               enddo
+            endif
+            if (snwgrain) then
                do k = 1, nslyr
-                  trcrn(nt_rhos +k-1,n) = rhos
                   trcrn(nt_smice+k-1,n) = rhos
                   trcrn(nt_rsnw +k-1,n) = rsnw_fall
                enddo
diff --git a/columnphysics/icepack_mechred.F90 b/columnphysics/icepack_mechred.F90
index 845ac6ddb..3ddd36d31 100644
--- a/columnphysics/icepack_mechred.F90
+++ b/columnphysics/icepack_mechred.F90
@@ -428,12 +428,7 @@ subroutine ridge_ice (dt,          ndtd,       &
       ! If done, exit.  If not, prepare to ridge again.
       !-----------------------------------------------------------------
 
-         if (iterate_ridging) then
-            if (niter > 1) then
-               write(warnstr,*) subname, 'Repeat ridging, niter =', niter
-               call icepack_warnings_add(warnstr)
-            endif
-         else
+         if (.not.iterate_ridging) then
             exit rdg_iteration
          endif
 
diff --git a/columnphysics/icepack_snow.F90 b/columnphysics/icepack_snow.F90
index 94a0f1251..8def9b45f 100644
--- a/columnphysics/icepack_snow.F90
+++ b/columnphysics/icepack_snow.F90
@@ -309,14 +309,12 @@ subroutine icepack_step_snow(dt,        nilyr,     &
       ! Initialize effective snow density (compaction) for new snow
       !-----------------------------------------------------------------
 
-      if (trim(snwredist) /= 'none') then
+      if (snwredist(1:3) == 'ITD') then
          do n = 1, ncat
             do k = 1, nslyr
                if (rhos_cmpn(k,n) < rhosmin) rhos_cmpn(k,n) = rhosnew
             enddo
          enddo
-      else
-         rhos_cmpn(:,:) = rhos
       endif
 
       !-----------------------------------------------------------------
diff --git a/columnphysics/icepack_therm_itd.F90 b/columnphysics/icepack_therm_itd.F90
index 301369aa7..ccf5035fe 100644
--- a/columnphysics/icepack_therm_itd.F90
+++ b/columnphysics/icepack_therm_itd.F90
@@ -25,7 +25,7 @@ module icepack_therm_itd
       use icepack_parameters, only: rhos, rhoi, Lfresh, ice_ref_salinity
       use icepack_parameters, only: phi_init, dsin0_frazil, hs_ssl, salt_loss
       use icepack_parameters, only: Tliquidus_max
-      use icepack_parameters, only: rhosi, conserv_check, rhosmin
+      use icepack_parameters, only: rhosi, conserv_check, rhosmin, snwredist
       use icepack_parameters, only: kitd, ktherm
       use icepack_parameters, only: z_tracers, solve_zsal, hfrazilmin, hi_min
       use icepack_parameters, only: saltflux_option
@@ -36,7 +36,7 @@ module icepack_therm_itd
       use icepack_tracers, only: nt_apnd, nt_hpnd, nt_aero, nt_isosno, nt_isoice
       use icepack_tracers, only: nt_Tsfc, nt_iage, nt_FY, nt_fsd, nt_rhos, nt_sice
       use icepack_tracers, only: nt_alvl, nt_vlvl
-      use icepack_tracers, only: tr_pond_lvl, tr_pond_topo, tr_snow
+      use icepack_tracers, only: tr_pond_lvl, tr_pond_topo
       use icepack_tracers, only: tr_iage, tr_FY, tr_lvl, tr_aero, tr_iso, tr_brine, tr_fsd
       use icepack_tracers, only: n_aero, n_iso
       use icepack_tracers, only: bio_index
@@ -570,7 +570,7 @@ subroutine linear_itd (ncat,        hin_max,     &
             enddo
          enddo
          ! maintain rhos_cmp positive definiteness
-         if (tr_snow) then
+         if (snwredist(1:3) == 'ITD') then
             do n = 1, ncat
                do k = nt_rhos, nt_rhos+nslyr-1
                   trcrn(k,n) = max(trcrn(k,n)-rhosmin, c0)
@@ -597,7 +597,7 @@ subroutine linear_itd (ncat,        hin_max,     &
             enddo
          enddo
          ! maintain rhos_cmp positive definiteness
-         if (tr_snow) then
+         if (snwredist(1:3) == 'ITD') then
             do n = 1, ncat
                do k = nt_rhos, nt_rhos+nslyr-1
                   trcrn(k,n) = trcrn(k,n) + rhosmin
diff --git a/columnphysics/icepack_therm_mushy.F90 b/columnphysics/icepack_therm_mushy.F90
index 80abd03f5..999c92af7 100644
--- a/columnphysics/icepack_therm_mushy.F90
+++ b/columnphysics/icepack_therm_mushy.F90
@@ -3307,7 +3307,7 @@ subroutine flood_ice(hsn,    hin,      &
              ! density of newly formed snow-ice
              rho_snowice = phi_snowice * rho_ocn + (c1 - phi_snowice) * rhoi
           endif ! freeboard_density > c0
-!       endif ! tr_snow
+!       endif ! snwgrain
 
        if (freeboard_density > c0) then ! ice is flooded
 
diff --git a/columnphysics/icepack_therm_vertical.F90 b/columnphysics/icepack_therm_vertical.F90
index 68e70990e..ceff4ffd6 100644
--- a/columnphysics/icepack_therm_vertical.F90
+++ b/columnphysics/icepack_therm_vertical.F90
@@ -135,7 +135,9 @@ subroutine thermo_vertical (nilyr,       nslyr,     &
          zSin    , & ! internal ice layer salinities
          rsnw    , & ! snow grain radius (10^-6 m)
          smice   , & ! ice mass tracer in snow (kg/m^3)
-         smliq   , & ! liquid water mass tracer in snow (kg/m^3)
+         smliq       ! liquid water mass tracer in snow (kg/m^3)
+
+      real (kind=dbl_kind), dimension (:), intent(out) :: &
          massice , & ! ice mass in snow (kg/m^2)
          massliq     ! liquid water mass in snow (kg/m^2)
 
@@ -261,6 +263,8 @@ subroutine thermo_vertical (nilyr,       nslyr,     &
       zTsn(:) = c0
       zTin(:) = c0
       meltsliq= c0
+      massice(:) = c0
+      massliq(:) = c0
 
       if (calc_Tsfc) then
          fsensn  = c0
@@ -324,12 +328,6 @@ subroutine thermo_vertical (nilyr,       nslyr,     &
                                               smice,     smliq)
             if (icepack_warnings_aborted(subname)) return
 
-            ! reinitialize mass in case of snow-ice formation
-            if (snwgrain) then
-               massice(:) = smice(:) * hslyr
-               massliq(:) = smliq(:) * hslyr
-            endif
-
          else ! ktherm
 
             call temperature_changes(dt,                   &
@@ -352,6 +350,12 @@ subroutine thermo_vertical (nilyr,       nslyr,     &
 
          endif ! ktherm
 
+         !  mass of ice and liquid water in snow
+         if (snwgrain) then
+            massice(:) = smice(:) * hslyr
+            massliq(:) = smliq(:) * hslyr
+         endif
+
       ! intermediate energy for error check
 
       einter = c0
@@ -1232,11 +1236,8 @@ subroutine thickness_changes (nilyr,     nslyr,    &
       if (hsn > puny) then    ! add snow with enthalpy zqsn(1)
          dhs = econ / (zqsn(1) - rhos*Lvap) ! econ < 0, dhs > 0
 
-         mass  = massice(1) + massliq(1)
-         massi = c0
-         if (dzs(1) > puny) massi = c1 + dhs/dzs(1)
-         massice(1) = massice(1) * massi
-         massliq(1) = max(c0, mass + rhos*dhs - massice(1)) ! conserve new total mass
+         ! assume all condensation becomes ice (no liquid)
+         massice(1) = massice(1) + dhs*rhos
 
          dzs(1) = dzs(1) + dhs
          evapn = evapn + dhs*rhos
@@ -2354,8 +2355,9 @@ subroutine icepack_step_therm1(dt, ncat, nilyr, nslyr,    &
          n               ! category index
 
       real (kind=dbl_kind) :: &
-         rnslyr      , & ! 1 / nslyr
-         worka, workb    ! temporary variables
+         worka       , &   ! temporary variables
+         workb       , &
+         workc
 
       ! 2D coupler variables (computed for each category, then aggregated)
       real (kind=dbl_kind) :: &
@@ -2462,6 +2464,10 @@ subroutine icepack_step_therm1(dt, ncat, nilyr, nslyr,    &
       l_meltsliq  = c0
       l_meltsliqn = c0
 
+      ! solid and liquid components of snow mass
+      massicen(:,:) = c0
+      massliqn(:,:) = c0
+
       !-----------------------------------------------------------------
       ! Initialize rate of snow loss to leads
       !-----------------------------------------------------------------
@@ -2486,21 +2492,21 @@ subroutine icepack_step_therm1(dt, ncat, nilyr, nslyr,    &
          fsnow    =           fsnow*(c1-worka)
       endif ! snwredist
 
+!echmod - remove all of this code - non-BFB because of values carried in tracer arrays when the snow physics options are not active 
       !-----------------------------------------------------------------
       ! solid and liquid components of snow mass
       !-----------------------------------------------------------------
-
-      massicen(:,:) = c0
-      massliqn(:,:) = c0
-      if (snwgrain) then
-         rnslyr = c1 / real(nslyr, dbl_kind)
-         do n = 1, ncat
-            do k = 1, nslyr
-               massicen(k,n) = smicen(k,n) * vsnon(n) * rnslyr ! kg/m^2
-               massliqn(k,n) = smliqn(k,n) * vsnon(n) * rnslyr
-            enddo
-         enddo
-      endif
+!      massicen(:,:) = c0
+!      massliqn(:,:) = c0
+!      if (snwgrain) then
+!         rnslyr = c1 / real(nslyr, dbl_kind)
+!         do n = 1, ncat
+!            do k = 1, nslyr
+!               massicen(k,n) = smicen(k,n) * vsnon(n) * rnslyr ! kg/m^2
+!               massliqn(k,n) = smliqn(k,n) * vsnon(n) * rnslyr
+!            enddo
+!         enddo
+!      endif
 
       !-----------------------------------------------------------------
       ! Update the neutral drag coefficients to account for form drag
@@ -2896,14 +2902,10 @@ subroutine icepack_step_therm1(dt, ncat, nilyr, nslyr,    &
       if (snwgrain) then
          do n = 1, ncat
             if (vsnon(n) > puny) then
+               workc = real(nslyr, dbl_kind) * aicen(n) / vsnon(n)
                do k = 1, nslyr
-                  smicen(k,n) = massicen(k,n) / (vsnon(n) * rnslyr)
-                  smliqn(k,n) = massliqn(k,n) / (vsnon(n) * rnslyr)
-                  worka = smicen(k,n) + smliqn(k,n)
-                  if (worka > puny) then
-                     smicen(k,n) = rhos * smicen(k,n) / worka
-                     smliqn(k,n) = rhos * smliqn(k,n) / worka
-                  endif
+                  smicen(k,n) = massicen(k,n) * workc
+                  smliqn(k,n) = massliqn(k,n) * workc
                enddo
             else ! reset to default values
                do k = 1, nslyr
diff --git a/columnphysics/icepack_tracers.F90 b/columnphysics/icepack_tracers.F90
index 753e25952..e483a70ac 100644
--- a/columnphysics/icepack_tracers.F90
+++ b/columnphysics/icepack_tracers.F90
@@ -7,7 +7,8 @@
       module icepack_tracers
 
       use icepack_kinds
-      use icepack_parameters, only: c0, c1, puny, rhos, rsnw_fall, Tocnfrz, tfrz_option
+      use icepack_parameters, only: c0, c1, puny, rhos, rsnw_fall, rhosnew, Tocnfrz, tfrz_option
+      use icepack_parameters, only: snwredist, snwgrain
       use icepack_warnings, only: warnstr, icepack_warnings_add
       use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
 
@@ -105,7 +106,7 @@ module icepack_tracers
          tr_pond      = .false., & ! if .true., use melt pond tracer
          tr_pond_lvl  = .false., & ! if .true., use level-ice pond tracer
          tr_pond_topo = .false., & ! if .true., use explicit topography-based ponds
-         tr_snow      = .false., & ! if .true., use snow metamorphosis tracers
+         tr_snow      = .false., & ! if .true., use snow redistribution or metamorphosis tracers
          tr_iso       = .false., & ! if .true., use isotope tracers
          tr_aero      = .false., & ! if .true., use aerosol tracers
          tr_brine     = .false., & ! if .true., brine height differs from ice thickness
@@ -219,7 +220,7 @@ subroutine icepack_init_tracer_flags(&
              tr_pond_in      , & ! if .true., use melt pond tracer
              tr_pond_lvl_in  , & ! if .true., use level-ice pond tracer
              tr_pond_topo_in , & ! if .true., use explicit topography-based ponds
-             tr_snow_in      , & ! if .true., use snow metamorphosis tracers
+             tr_snow_in      , & ! if .true., use snow redistribution or metamorphosis tracers
              tr_fsd_in       , & ! if .true., use floe size distribution tracers
              tr_iso_in       , & ! if .true., use isotope tracers
              tr_aero_in      , & ! if .true., use aerosol tracers
@@ -286,7 +287,7 @@ subroutine icepack_query_tracer_flags(&
              tr_pond_out      , & ! if .true., use melt pond tracer
              tr_pond_lvl_out  , & ! if .true., use level-ice pond tracer
              tr_pond_topo_out , & ! if .true., use explicit topography-based ponds
-             tr_snow_out      , & ! if .true., use snow metamorphosis tracers
+             tr_snow_out      , & ! if .true., use snow redistribution or metamorphosis tracers
              tr_fsd_out       , & ! if .true., use floe size distribution
              tr_iso_out       , & ! if .true., use isotope tracers
              tr_aero_out      , & ! if .true., use aerosol tracers
@@ -1302,11 +1303,15 @@ subroutine icepack_compute_tracers (ntrcr,     trcr_depend,    &
       enddo
 
       if (vicen <= c0 .and. tr_brine) trcrn(nt_fbri) = c1
-      if (vsnon <= c0 .and. tr_snow) then
-         trcrn(nt_rsnw :nt_rsnw +nslyr-1) = rsnw_fall
-         trcrn(nt_smice:nt_smice+nslyr-1) = rhos
-         trcrn(nt_rhos :nt_rhos +nslyr-1) = rhos
-      endif
+      if (vsnon <= c0) then
+         if (snwredist(1:3) == 'ITD') then
+            trcrn(nt_rhos :nt_rhos +nslyr-1) = rhosnew
+         endif
+         if (snwgrain) then
+            trcrn(nt_rsnw :nt_rsnw +nslyr-1) = rsnw_fall
+            trcrn(nt_smice:nt_smice+nslyr-1) = rhos
+         endif
+      endif ! vsnon <= 0
 
       end subroutine icepack_compute_tracers
 
diff --git a/configuration/driver/icedrv_init.F90 b/configuration/driver/icedrv_init.F90
index a89677d24..647480efe 100644
--- a/configuration/driver/icedrv_init.F90
+++ b/configuration/driver/icedrv_init.F90
@@ -509,7 +509,7 @@ subroutine input_data
          shortwave = 'dEdd'
       endif
 
-      if (snwredist(1:4) /= 'none' .and. .not. tr_snow) then
+      if (snwredist(1:3) == 'ITD' .and. .not. tr_snow) then
          write (nu_diag,*) 'WARNING: snwredist on but tr_snow=F'
          call icedrv_system_abort(file=__FILE__,line=__LINE__)
       endif
@@ -572,11 +572,16 @@ subroutine input_data
          shortwave = 'dEdd'
       endif
 
-      if (tr_snow .and. trim(shortwave(1:4)) /= 'dEdd') then
+      if (snwgrain .and. trim(shortwave(1:4)) /= 'dEdd') then
          write (nu_diag,*) 'WARNING: snow grain radius activated but'
          write (nu_diag,*) 'WARNING: dEdd shortwave is not.'
       endif
 
+      if (snwredist(1:4) /= 'none' .and. trim(shortwave(1:4)) /= 'dEdd') then
+         write (nu_diag,*) 'WARNING: snow redistribution activated but'
+         write (nu_diag,*) 'WARNING: dEdd shortwave is not.'
+      endif
+
       rfracmin = min(max(rfracmin,c0),c1)
       rfracmax = min(max(rfracmax,c0),c1)
 
diff --git a/configuration/driver/icedrv_step.F90 b/configuration/driver/icedrv_step.F90
index 2d4fabc88..eb6424487 100644
--- a/configuration/driver/icedrv_step.F90
+++ b/configuration/driver/icedrv_step.F90
@@ -155,7 +155,7 @@ subroutine step_therm1 (dt)
          nt_aero, nt_isosno, nt_isoice, nt_rsnw, nt_smice, nt_smliq
 
       logical (kind=log_kind) :: &
-         tr_iage, tr_FY, tr_aero, tr_iso, calc_Tsfc, tr_snow
+         tr_iage, tr_FY, tr_aero, tr_iso, calc_Tsfc, snwgrain
 
       real (kind=dbl_kind), dimension(n_aero,2,ncat) :: &
          aerosno,  aeroice    ! kg/m^2
@@ -177,6 +177,7 @@ subroutine step_therm1 (dt)
 
       call icepack_query_parameters(puny_out=puny)
       call icepack_query_parameters(calc_Tsfc_out=calc_Tsfc)
+      call icepack_query_parameters(snwgrain_out=snwgrain)
       call icepack_warnings_flush(nu_diag)
       if (icepack_warnings_aborted()) call icedrv_system_abort(string=subname, &
           file=__FILE__,line= __LINE__)
@@ -189,7 +190,7 @@ subroutine step_therm1 (dt)
 
       call icepack_query_tracer_flags( &
          tr_iage_out=tr_iage, tr_FY_out=tr_FY, &
-         tr_aero_out=tr_aero, tr_iso_out=tr_iso, tr_snow_out=tr_snow)
+         tr_aero_out=tr_aero, tr_iso_out=tr_iso)
       call icepack_warnings_flush(nu_diag)
       if (icepack_warnings_aborted()) call icedrv_system_abort(string=subname, &
           file=__FILE__,line= __LINE__)
@@ -261,7 +262,7 @@ subroutine step_therm1 (dt)
           enddo
         endif ! tr_iso
 
-        if (tr_snow) then
+        if (snwgrain) then
           do n = 1, ncat
             do k = 1, nslyr
                rsnwn (k,n) = trcrn(i,nt_rsnw +k-1,n)
@@ -269,7 +270,7 @@ subroutine step_therm1 (dt)
                smliqn(k,n) = trcrn(i,nt_smliq+k-1,n)
             enddo
           enddo
-        endif ! tr_snow
+        endif ! snwgrain
 
         call icepack_step_therm1(dt=dt, ncat=ncat, nilyr=nilyr, nslyr=nslyr, &
             aicen_init = aicen_init(i,:), &
@@ -400,7 +401,7 @@ subroutine step_therm1 (dt)
           enddo
         endif ! tr_iso
 
-        if (tr_snow) then
+        if (snwgrain) then
           do n = 1, ncat
             do k = 1, nslyr
                trcrn(i,nt_rsnw +k-1,n) = rsnwn (k,n)
@@ -408,7 +409,7 @@ subroutine step_therm1 (dt)
                trcrn(i,nt_smliq+k-1,n) = smliqn(k,n)
             enddo
           enddo
-        endif ! tr_snow
+        endif ! snwgrain
 
       enddo ! i
       call icepack_warnings_flush(nu_diag)
diff --git a/configuration/scripts/icepack.batch.csh b/configuration/scripts/icepack.batch.csh
index b821bf5c3..a104b8ff3 100755
--- a/configuration/scripts/icepack.batch.csh
+++ b/configuration/scripts/icepack.batch.csh
@@ -142,7 +142,7 @@ cat >> ${jobfile} << EOFB
 ###SBATCH --mail-user username@domain.com
 EOFB
 
-else if (${ICE_MACHINE} =~ badger*) then
+else if (${ICE_MACHINE} =~ chicoma*) then
 cat >> ${jobfile} << EOFB
 #SBATCH -J ${ICE_CASENAME}
 #SBATCH -t ${ICE_RUNLENGTH}
@@ -152,7 +152,9 @@ cat >> ${jobfile} << EOFB
 #SBATCH -o slurm%j.out
 ###SBATCH --mail-type END,FAIL
 ###SBATCH --mail-user=eclare@lanl.gov
-#SBATCH --qos=standby
+#SBATCH --qos=debug
+##SBATCH --qos=standard
+##SBATCH --qos=standby
 EOFB
 
 else if (${ICE_MACHINE} =~ discover*) then
diff --git a/configuration/scripts/machines/Macros.badger_intel b/configuration/scripts/machines/Macros.badger_intel
deleted file mode 100644
index c572515b9..000000000
--- a/configuration/scripts/machines/Macros.badger_intel
+++ /dev/null
@@ -1,49 +0,0 @@
-#==============================================================================
-# Macros file for LANL badger, intel compiler
-#==============================================================================
-
-CPP        := fpp
-CPPDEFS    := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
-CFLAGS     := -c -O2 -fp-model precise   -xHost
-
-FIXEDFLAGS := -132
-FREEFLAGS  := -FR
-FFLAGS     := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback   -xHost
-FFLAGS_NOOPT:= -O0
-
-ifeq ($(ICE_BLDDEBUG), true)
-  FFLAGS     += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created
-else
-#  FFLAGS     += -O2
-  FFLAGS     += -O1
-endif
-
-SCC := icc
-SFC := ifort
-CC := $(SCC)
-FC := $(SFC)
-LD := $(FC)
-
-NETCDF_PATH := /usr/projects/hpcsoft/toss3/common/netcdf/4.4.0_intel-18.0.5
-PNETCDF_PATH := /usr/projects/hpcsoft/toss3/badger/netcdf/4.4.0_intel-18.0.5_openmpi-2.1.2
-
-PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs 
-
-ifeq ($(ICE_IOTYPE), netcdf)
-  INCLDIR := $(INCLDIR) -I$(NETCDF_PATH)/include -I$(PNETCDF_PATH)/include
-
-  LIB_NETCDF := $(NETCDF_PATH)/lib
-  LIB_PNETCDF := $(PNETCDF_PATH)/lib
-  LIB_MPI := $(IMPILIBDIR)
-
-  SLIBS   := -L$(LIB_NETCDF) -lnetcdf -L$(LIB_PNETCDF) -lnetcdff 
-else
-  SLIBS   := 
-endif
-
-ifeq ($(ICE_THREADED), true) 
-   LDFLAGS += -qopenmp
-   CFLAGS += -qopenmp
-   FFLAGS += -qopenmp
-endif
-
diff --git a/configuration/scripts/machines/Macros.chicoma_intel b/configuration/scripts/machines/Macros.chicoma_intel
new file mode 100644
index 000000000..983855811
--- /dev/null
+++ b/configuration/scripts/machines/Macros.chicoma_intel
@@ -0,0 +1,48 @@
+#==============================================================================
+# Macros file for LANL chicoma, intel compiler
+#==============================================================================
+
+CPP        := fpp
+CPPDEFS    := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
+CFLAGS     := -c -O2 -fp-model precise -fcommon
+
+FIXEDFLAGS := -132
+FREEFLAGS  := -FR
+FFLAGS     := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback
+# -mcmodel medium -shared-intel
+FFLAGS_NOOPT:= -O0
+
+ifeq ($(ICE_BLDDEBUG), true)
+  FFLAGS     += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created
+#  FFLAGS     += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -init=snan,arrays
+else
+  FFLAGS     += -O2
+endif
+
+SCC   := cc 
+SFC   := ftn
+MPICC := cc
+MPIFC := ftn
+
+FC := $(SFC)
+CC := $(SCC)
+LD:= $(FC)
+
+# defined by module
+#NETCDF_PATH := $(NETCDF_DIR)
+NETCDF_PATH := /opt/cray/pe/netcdf-hdf5parallel/4.9.0.1/intel/19.0/
+#LAPACK_LIBDIR := /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
+
+#INCLDIR := $(INCLDIR)
+INCLDIR += -I$(NETCDF_PATH)/include
+
+LIB_NETCDF := $(NETCDF_PATH)/lib
+#LIB_MPI := $(IMPILIBDIR)
+SLIBS   := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
+
+ifeq ($(ICE_THREADED), true) 
+   LDFLAGS += -qopenmp
+   CFLAGS += -qopenmp
+   FFLAGS += -qopenmp
+endif
+
diff --git a/configuration/scripts/machines/env.badger_intel b/configuration/scripts/machines/env.badger_intel
deleted file mode 100755
index a7a327055..000000000
--- a/configuration/scripts/machines/env.badger_intel
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/tcsh -f
-
-set inp = "undefined"
-if ($#argv == 1) then
-  set inp = $1
-endif
-
-if ("$inp" != "-nomodules") then
-
-#source /usr/share/Modules/init/csh
-
-#module purge
-#module load intel
-#module load openmpi
-module unload hdf5-serial
-module unload hdf5-parallel
-module unload netcdf-serial
-module unload netcdf-h5parallel
-module load hdf5-serial
-module load netcdf-serial/4.4.0
-module load hdf5-parallel
-module load netcdf-h5parallel/4.4.0
-
-setenv NETCDF_PATH /usr/projects/climate/SHARED_CLIMATE/software/conejo/netcdf/3.6.3/intel-13.0.1
-setenv PNETCDF_PATH /usr/projects/climate/SHARED_CLIMATE/software/conejo/parallel-netcdf/1.3.1/intel-13.0.1/openmpi-1.6.3
-#setenv LAPACK_LIBDIR /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
-
-#setenv OMP_STACKSIZE 256M
-#setenv MP_LABELIO yes
-#setenv MP_INFOLEVEL 2
-#setenv MP_SHARED_MEMORY yes
-#setenv MP_EUILIB us
-#setenv MP_EAGER_LIMIT 0
-
-endif
-
-setenv ICE_MACHINE_MACHNAME badger
-setenv ICE_MACHINE_MACHINFO "Penguin Intel Xeon Broadwell"
-setenv ICE_MACHINE_ENVNAME intel
-setenv ICE_MACHINE_ENVINFO "(Note: can vary) ifort 19.0.4.243 20190416, netcdf4.4.0"
-setenv ICE_MACHINE_MAKE gmake
-setenv ICE_MACHINE_WKDIR /net/scratch4/$user/ICEPACK_RUNS
-setenv ICE_MACHINE_INPUTDATA /usr/projects/climate/eclare/DATA/Consortium
-setenv ICE_MACHINE_BASELINE /net/scratch4/$user/ICEPACK_BASELINE
-setenv ICE_MACHINE_SUBMIT "sbatch "
-#setenv ICE_MACHINE_ACCT e3sm
-setenv ICE_MACHINE_ACCT climatehilat
-setenv ICE_MACHINE_QUEUE "default"
-setenv ICE_MACHINE_TPNODE 36
-setenv ICE_MACHINE_BLDTHRDS 1
-setenv ICE_MACHINE_QSTAT "squeue --jobs="
diff --git a/configuration/scripts/machines/env.chicoma_intel b/configuration/scripts/machines/env.chicoma_intel
new file mode 100755
index 000000000..182280f95
--- /dev/null
+++ b/configuration/scripts/machines/env.chicoma_intel
@@ -0,0 +1,70 @@
+#!/bin/csh -f
+
+# this works (current defaults with PrgEnv-intel)
+#Currently Loaded Modules:
+#  1) craype-x86-rome                         7) python/3.10-anaconda-2023.03  13) cray-mpich/8.1.21
+#  2) libfabric/1.15.0.0                      8) craype/2.7.19                 14) totalview/2023.1.6
+#  3) craype-network-ofi                      9) cray-dsmml/0.2.2              15) use.own
+#  4) perftools-base/22.09.0                 10) cray-libsci/22.11.1.2         16) idl/8.5
+#  5) xpmem/2.4.4-2.3_13.8__gff0e1d9.shasta  11) PrgEnv-intel/8.3.3            17) cray-hdf5-parallel/1.12.2.1
+#  6) git/2.40.0                             12) intel/2022.2.1                18) cray-netcdf-hdf5parallel/4.9.0.1
+
+set inp = "undefined"
+if ($#argv == 1) then
+  set inp = $1
+endif
+
+if ("$inp" != "-nomodules") then
+
+#source /opt/modules/default/init/csh
+
+#module unload PrgEnv-cray
+#module unload PrgEnv-gnu
+#module unload PrgEnv-intel
+#module unload PrgEnv-pgi
+#module load PrgEnv-intel/8.3.3
+
+#module unload intel
+#module load intel/2022.2.1
+
+#module unload cray-mpich
+#module load cray-mpich/8.1.21
+
+#module unload netcdf
+#module unload cray-netcdf
+#module unload cray-hdf5
+#module unload cray-hdf5-parallel
+#module unload cray-netcdf-hdf5parallel
+#module unload cray-parallel-netcdf
+#module load cray-hdf5/1.12.2.1
+#module load cray-netcdf/4.9.0.1
+#module load cray-hdf5-parallel/1.12.2.1
+#module load cray-netcdf-hdf5parallel/4.9.0.1
+
+#module unload cray-libsci
+#module unload craype-hugepages2M
+#module load craype-broadwell
+
+#setenv NETCDF_PATH ${NETCDF_DIR}
+#setenv NETCDF_PATH /opt/cray/pe/netcdf/4.9.0.1/intel/19.0
+#setenv NETCDF_PATH /opt/cray/pe/netcdf-hdf5parallel/4.9.0.1/intel/19.0
+limit coredumpsize unlimited
+limit stacksize unlimited
+setenv OMP_STACKSIZE 64M
+
+endif
+
+setenv ICE_MACHINE_MACHNAME chicoma
+setenv ICE_MACHINE_MACHINFO "HPE Cray EX, AMD EPYC 7H12 processors"
+setenv ICE_MACHINE_ENVNAME intel
+setenv ICE_MACHINE_ENVINFO "PrgEnv-intel/8.3.3 intel/2022.2.1 cray-mpich/8.1.21 cray-hdf4-parallel/1/12.2.1 cray-netcdf-hdf5parallel/4.9.0.1"
+setenv ICE_MACHINE_MAKE gmake
+setenv ICE_MACHINE_WKDIR /lustre/scratch5/$user/ICEPACK_RUNS
+setenv ICE_MACHINE_INPUTDATA /usr/projects/climate/eclare/DATA/Consortium
+setenv ICE_MACHINE_BASELINE /lustre/scratch5/$user/ICEPACK_BASELINE
+setenv ICE_MACHINE_SUBMIT "sbatch "
+setenv ICE_MACHINE_ACCT t23_cice
+setenv ICE_MACHINE_QUEUE "debug"
+setenv ICE_MACHINE_TPNODE 128    # tasks per node
+setenv ICE_MACHINE_BLDTHRDS 12
+setenv ICE_MACHINE_QSTAT "squeue --jobs="