Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move snow aging call to avoid need for osnowd in restart #545

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/coupled/ACCESS-CM2/cable_cbm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,9 @@ SUBROUTINE cbm( ktau,dels, air, bgc, canopy, met,
) !reducedLAIdue2snow

!Ticket 331 refactored albedo code for JAC
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
!#539 - move snow_aging
!CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
! ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

IF( cable_runtime%um_explicit ) THEN

Expand Down Expand Up @@ -202,6 +203,9 @@ SUBROUTINE cbm( ktau,dels, air, bgc, canopy, met,
ELSE
CALL soil_snow(dels, soil, ssnow, canopy, met, bal,veg)
ENDIF
!#539 move call to snow aging
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
ENDIF

ssnow%deltss = ssnow%tss-ssnow%otss
Expand Down
11 changes: 8 additions & 3 deletions src/coupled/AM3/control/cable/CM3/cbl_cbm_mod.F90
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll port this file manually to ACCESS3-JULES

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ SUBROUTINE cbm_expl( mp, nrb, ktau,dels, air, bgc, canopy, met, &
USE cbl_albedo_mod, ONLY: albedo
USE cbl_init_radiation_module, ONLY: init_radiation
USE cbl_masks_mod, ONLY: fveg_mask, fsunlit_mask, fsunlit_veg_mask
USE snow_aging_mod, ONLY: snow_aging
!USE snow_aging_mod, ONLY: snow_aging !539 no longer needed
USE cable_roughness_module, ONLY: ruff_resist
USE cable_air_module, ONLY: define_air
USE cable_canopy_module, ONLY: define_canopy
Expand Down Expand Up @@ -110,8 +110,9 @@ SUBROUTINE cbm_expl( mp, nrb, ktau,dels, air, bgc, canopy, met, &
) !reducedLAIdue2snow

!Ticket 331 refactored albedo code for JAC
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1), &
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
!#539 - move snow aging.
!CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1), &
! ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

!explicit ONLY
CALL Albedo( ssnow%AlbSoilsn, soil%AlbSoil, &
Expand Down Expand Up @@ -303,6 +304,10 @@ SUBROUTINE cbm_impl( cycleno, numcycles, mp, nrb, ktau, dels, &
CALL soil_snow(dels, soil, ssnow, canopy, met, bal,veg)
ssnow%deltss = ssnow%tss-ssnow%otss

!#539 - move snow aging.
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1), &
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

! reset tss & wetfac to value corresponding to beginning of timestep
IF( cycleno .NE. numcycles ) THEN
ssnow%tss = ssnow%otss
Expand Down
11 changes: 9 additions & 2 deletions src/coupled/ESM1.5/CABLEfilesFromESM1.5/cable_cbm.F90
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll port this file manually to UM7

Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,9 @@ SUBROUTINE cbm( dels, air, bgc, canopy, met, &
IF( cable_runtime%um_explicit ) THEN

!Ticket 331 refactored albedo code for JAC
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
!#539 move of snow_Aging routine
!CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
! ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

call Albedo( ssnow%AlbSoilsn, soil%AlbSoil, &
mp, nrb, ICE_SoilType, lakes_cable, jls_radiation, veg_mask, &
Expand Down Expand Up @@ -142,10 +143,16 @@ SUBROUTINE cbm( dels, air, bgc, canopy, met, &

IF( cable_runtime%um_implicit ) THEN
CALL soil_snow(dels, soil, ssnow, canopy, met, bal,veg)
!#539 move of snow_Aging routine
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
ENDIF

ELSE
call soil_snow(dels, soil, ssnow, canopy, met, bal,veg)
!#539 move of snow_Aging routine
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
ENDIF

ssnow%deltss = ssnow%tss-ssnow%otss
Expand Down
13 changes: 10 additions & 3 deletions src/offline/cbl_model_driver_offline.F90
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,9 @@ SUBROUTINE cbm( ktau,dels, air, bgc, canopy, met,
) !reducedLAIdue2snow

!Ticket 331 refactored albedo code for JAC
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)
!# Issue 539 - moving to after soil_snow
!CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
! ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

call Albedo( ssnow%AlbSoilsn, soil%AlbSoil, &
!AlbSnow, AlbSoil,
Expand Down Expand Up @@ -182,12 +183,18 @@ SUBROUTINE cbm( ktau,dels, air, bgc, canopy, met,
ssnow%otss_0 = ssnow%otss ! vh should be before call to canopy?
ssnow%otss = ssnow%tss

!Evaluate the energy balance - includes updating canopy water storage
CALL define_canopy(bal,rad,rough,air,met,dels,ssnow,soil,veg, canopy,climate, sunlit_veg_mask, canopy%vlaiw)


!update the various biophysics state variables
ssnow%owetfac = ssnow%wetfac

CALL soil_snow(dels, soil, ssnow, canopy, met, bal,veg)

!#539 - move snow_aging now after soil_snow - uses this timestep snow amount
CALL snow_aging(ssnow%snage,mp,dels,ssnow%snowd,ssnow%osnowd,ssnow%tggsn(:,1),&
ssnow%tgg(:,1),ssnow%isflag,veg%iveg,soil%isoilm)

ssnow%deltss = ssnow%tss-ssnow%otss

! need to adjust fe after soilsnow
Expand Down