CABLE-LSM / CABLE-Trac-archive

Archive CABLE Trac contents as issues
Other
0 stars 0 forks source link

ESM1.5 Reconciliation - esm15_ latentH #349

Closed penguian closed 1 year ago

penguian commented 1 year ago

keyword_maygit owner:jxs599@nci.org.au resolution_fixed type_defect | by yh4968


see attachment


Issue migrated from trac:349 at 2023-11-27 11:43:32 +1100

penguian commented 1 year ago

@yh4968@nci.org.au uploaded file switches -latentH .docx (50.5 KiB)

penguian commented 1 year ago

@rml599@nci.org.au commented


! Soil latent heat:
IF( cable_runtime%esm15_latentH ) THEN
    canopy_fess= ssnow_wetfac * ssnow_potev
    WHERE (ssnow_potev < 0. ) canopy_fess = ssnow_potev
ELSE
    WHERE (ssnow_potev < 0. ) ssnow_wetfac(:) = 1.0
    canopy_fess= ssnow_wetfac * ssnow_potev
END IF

Probably 'mostly harmless'. Mathematically the same, may be computationally different.

!Ticket 137 - case iii)
    !evaporation from frozen soils needs to respect the assumption that
    !ice fraction of soil moisture cannot exceed frozen_limit=0.85
    !see soilsnow: if frozen_limit changes need to be consistent
    IF( cable_runtime%esm15_latentH ) THEN
         fupper_limit(j) = REAL(ssnow_wb(j)-ssnow_wbice(j)) * frescale(j)
    ELSE
     fupper_limit(j) = REAL(ssnow_wb(j)-ssnow_wbice(j)/0.85)*frescale(j)
     fupper_limit(j) = MAX(REAL(fupper_limit(j),r_2),0.)
    END IF

Note reference to #137. This ticket also likely relevant for changes related to cls in #344.

IF( .NOT. cable_runtime%esm15_latentH ) THEN

      !Ticket 137 - case ii) deposition of frost onto snow
      ! case of sublimation of snow overwrites later
      IF (ssnow_snowd(j) >=0.1 ) THEN
        ssnow_cls(j) = 1.1335
        canopy_fess(j) = ssnow_cls(j)*ssnow_potev(j)
      ENDIF

      !Ticket 137 - case iv) deposition of frost onto frozen soil, no snow
      IF (ssnow_snowd(j) < 0.1 .AND. ssnow_potev(j) < 0. .AND. &
         ssnow_tss(j)<CTFRZ) THEN
       ssnow_cls(j)=1.1335
       canopy_fess(j) = ssnow_cls(j)*ssnow_potev(j)
      ENDIF

    END IF

  !Ticket 137 - case ii) sublimation of snow
      IF (ssnow_snowd(j) >= 0.1 .and. ssnow_potev(j) > 0.) THEN

         ssnow_cls(j) = 1.1335

   !INH - if changes to PM routine then matching changes here
         canopy_fess(j) = MIN( (ssnow_wetfac(j)*ssnow_potev(j))*ssnow_cls(j), &
                          ssnow_snowd(j)/dels*air_rlam(j)*ssnow_cls(j))

      ENDIF

More #137 changes - note that the last one hasn't been captured in the esm switch.

penguian commented 1 year ago

@rml599@nci.org.au changed _comment0 which not transferred by tractive

penguian commented 1 year ago

@rml599@nci.org.au commented


Test results (in attachment) show some change in temperature (cooler) - but this may not be a valid test without changes in #344 included in the test.

Likely will want to accept the change anyway as a documented bug fix.

Note that there may be more changes noted in #137 which haven't been picked up in the merge.

penguian commented 1 year ago

@rml599@nci.org.au commented


https://trac.nci.org.au/svn/cable/branches/Share/ESM15-CABLE3_draft1/science/soilsnow/cbl_snowAccum.F90

also has a section related to #137

       ! Ticket 137 - using %cls as the trigger not %snowd
       IF( ssnow%cls(i) == 1.1335 ) THEN
          !WHERE( ssnow%snowd > 0.1 )

          ssnow%evapsn(i) = dels * ( canopy%fess(i) + canopy%fes_cor(i) ) / ( CHL + CHLF )
          xxx(i) = ssnow%evapsn(i)

          IF( ssnow%isflag(i) == 0 .AND. canopy%fess(i) + canopy%fes_cor(i).GT. 0.0 )    &
               ssnow%evapsn(i) = MIN( ssnow%snowd(i), xxx(i) )

          IF( ssnow%isflag(i)  > 0 .AND. canopy%fess(i) + canopy%fes_cor(i) .GT. 0.0 )   &
               ssnow%evapsn(i) = MIN( 0.9 * ssnow%smass(i,1), xxx(i) )

          ssnow%snowd(i) = ssnow%snowd(i) - ssnow%evapsn(i)

          IF( ssnow%isflag(i) > 0 ) THEN
             ssnow%smass(i,1) = ssnow%smass(i,1)  - ssnow%evapsn(i)
             ssnow%sdepth(i,1) = MAX( 0.02, ssnow%smass(i,1) / ssnow%ssdn(i,1) )
          ENDIF

          canopy%segg(i) = 0.0

          !INH: cls package
          !we still need to conserve moisture/energy when evapsn is limited
          !this is a key point of moisture non-conservation

       ENDIF

This is an additional change from ESM1.5 (see line 900 https://trac.nci.org.au/trac/cable/browser/tags/CABLE-2.4-ACCESS-ESM1.5/core/biogeophys/cable_soilsnow.F90 ) that had not been flagged.

penguian commented 1 year ago

@jxs599@nci.org.au changed status from new to closed

penguian commented 1 year ago

@jxs599@nci.org.au set resolution to fixed

penguian commented 1 year ago

@jxs599@nci.org.au set milestone to 1. Closed

penguian commented 1 year ago

@ccc561@nci.org.au set keywords to maygit