@@ -2361,12 +2361,14 @@ subroutine icepack_step_therm1(dt, &
2361
2361
melttn , & ! top ice melt (m)
2362
2362
meltbn , & ! bottom ice melt (m)
2363
2363
congeln , & ! congelation ice growth (m)
2364
- snoicen , & ! snow-ice growth (m)
2365
- dsnown ! change in snow thickness (m/step-->cm/day)
2364
+ snoicen ! snow-ice growth (m)
2366
2365
2367
2366
real (kind= dbl_kind), dimension (:), intent (in ) :: &
2368
2367
fswthrun ! SW through ice to ocean (W/m^2)
2369
2368
2369
+ real (kind= dbl_kind), dimension (:), intent (inout ), optional :: &
2370
+ dsnown ! change in snow thickness (m/step-->cm/day)
2371
+
2370
2372
real (kind= dbl_kind), dimension (:), intent (in ), optional :: &
2371
2373
fswthrun_vdr , & ! vis dir SW through ice to ocean (W/m^2)
2372
2374
fswthrun_vdf , & ! vis dif SW through ice to ocean (W/m^2)
@@ -2442,6 +2444,8 @@ subroutine icepack_step_therm1(dt, &
2442
2444
l_fswthrun_vdf, & ! vis dif SW local n ice to ocean (W/m^2)
2443
2445
l_fswthrun_idr, & ! nir dir SW local n ice to ocean (W/m^2)
2444
2446
l_fswthrun_idf, & ! nir dif SW local n ice to ocean (W/m^2)
2447
+ l_dsnow, & ! local snow change
2448
+ l_dsnown, & ! local snow change category
2445
2449
l_meltsliq ! mass of snow melt local (kg/m^2)
2446
2450
2447
2451
real (kind= dbl_kind) :: &
@@ -2485,6 +2489,12 @@ subroutine icepack_step_therm1(dt, &
2485
2489
call icepack_warnings_setabort(.true. ,__FILE__,__LINE__)
2486
2490
return
2487
2491
endif
2492
+ if ((present (dsnow) .and. .not. present (dsnown)) .or. &
2493
+ (present (dsnown) .and. .not. present (dsnow))) then
2494
+ call icepack_warnings_add(subname// ' error in dsnow arguments' )
2495
+ call icepack_warnings_setabort(.true. ,__FILE__,__LINE__)
2496
+ return
2497
+ endif
2488
2498
if (tr_fsd) then
2489
2499
if (.not. present (afsdn)) then
2490
2500
call icepack_warnings_add(subname// ' error missing afsdn argument, tr_fsd=T' )
@@ -2509,6 +2519,8 @@ subroutine icepack_step_therm1(dt, &
2509
2519
2510
2520
l_meltsliq = c0
2511
2521
l_meltsliqn = c0
2522
+ l_dsnow = c0
2523
+ if (present (dsnow)) l_dsnow = dsnow
2512
2524
2513
2525
! solid and liquid components of snow mass
2514
2526
massicen(:,:) = c0
@@ -2589,7 +2601,8 @@ subroutine icepack_step_therm1(dt, &
2589
2601
meltbn (n) = c0
2590
2602
congeln(n) = c0
2591
2603
snoicen(n) = c0
2592
- dsnown (n) = c0
2604
+ l_dsnown = c0
2605
+ if (present (dsnown)) l_dsnown = dsnown (n)
2593
2606
2594
2607
Trefn = c0
2595
2608
Qrefn = c0
@@ -2714,8 +2727,8 @@ subroutine icepack_step_therm1(dt, &
2714
2727
smice= smice, massice= massicen (:,n), &
2715
2728
smliq= smliq, massliq= massliqn (:,n), &
2716
2729
congel= congeln (n), snoice= snoicen (n), &
2717
- mlt_onset= mlt_onset, frz_onset= frz_onset, &
2718
- yday= yday, dsnow= dsnown (n) , &
2730
+ mlt_onset= mlt_onset, frz_onset= frz_onset , &
2731
+ yday= yday, dsnow= l_dsnown , &
2719
2732
prescribed_ice= prescribed_ice)
2720
2733
2721
2734
if (icepack_warnings_aborted(subname)) then
@@ -2903,7 +2916,7 @@ subroutine icepack_step_therm1(dt, &
2903
2916
meltbn= meltbn (n), congeln= congeln(n),&
2904
2917
meltt= meltt, melts= melts, &
2905
2918
meltb= meltb, snoicen= snoicen(n),&
2906
- dsnow= dsnow , dsnown= dsnown(n), &
2919
+ dsnow= l_dsnow , dsnown= l_dsnown, &
2907
2920
congel= congel, snoice= snoice, &
2908
2921
meltsliq= l_meltsliq, &
2909
2922
meltsliqn= l_meltsliqn(n), &
0 commit comments