@@ -1213,8 +1213,9 @@ subroutine get_obs_pred( &
12131213
12141214 case (' asnow' )
12151215
1216- get_asnow_l = .true.
1217- get_asnow_lH = .true.
1216+ get_asnow_l = .true.
1217+ get_asnow_lH = .true.
1218+ get_tp_l = .true. ! needed for model-based QC
12181219
12191220 case default
12201221
@@ -1365,7 +1366,7 @@ subroutine get_obs_pred( &
13651366
13661367 ! updated to new interface - reichle, 3 Apr 2012
13671368
1368- call catch_calc_tp( N_catl, cat_param% poros, &
1369+ call catch_calc_tp( N_catl, cat_param% poros, &
13691370 catprogn2ghtcnt(N_catl,cat_progn(:,n_e)), tp_l )
13701371
13711372 end if
@@ -2257,7 +2258,7 @@ subroutine qc_model_based_for_sat_sfmc( N_cat, precip, SWE, tsurf, &
22572258
22582259 do i= 1 ,N_cat
22592260
2260- ! delete obs
2261+ ! delete Obs_pred
22612262 ! - if there is snow on the ground
22622263 ! - if it is raining/snowing
22632264 ! - if surface temperature is around or below freezing
@@ -2340,7 +2341,7 @@ subroutine qc_model_based_for_sat_tsurf( N_cat, precip, SWE, tp1, &
23402341
23412342 do i= 1 ,N_cat
23422343
2343- ! delete obs
2344+ ! delete Obs_pred
23442345 ! - if there is snow on the ground
23452346 ! - if it is raining/snowing
23462347 ! - if "avoid_frozen" and frozen
@@ -2394,7 +2395,7 @@ subroutine qc_model_based_for_Tb( N_cat, precip, Tb )
23942395
23952396 do i= 1 ,N_cat
23962397
2397- ! delete obs
2398+ ! delete Obs_pred
23982399 ! - if there is heavy rain or snow
23992400
24002401 ! NOTE: subroutine mwRTM_get_Tb already returns no-data-values
@@ -2420,8 +2421,8 @@ end subroutine qc_model_based_for_Tb
24202421
24212422 subroutine qc_model_based_for_asnow ( N_cat , tp1 , asnow )
24222423
2423- ! Model-based quality control for MODIS SCF observations
2424- ! Sets "asnow" to no-data when soil layer 1 temperature exceeds a threshold.
2424+ ! Model-based quality control for MODIS SCF observations.
2425+ ! Sets "asnow" to no-data when layer-1 soil temperature exceeds a threshold.
24252426 !
24262427 ! amfox, 7 May 2025
24272428 !
@@ -2431,27 +2432,24 @@ subroutine qc_model_based_for_asnow( N_cat, tp1, asnow )
24312432
24322433 integer , intent (in ) :: N_cat
24332434
2434- real , dimension (N_cat), intent (in ) :: tp1 ! soil temperature [C]
2435+ real , dimension (N_cat), intent (in ) :: tp1 ! layer-1 soil temperature [C]
24352436
24362437 real , dimension (N_cat), intent (inout ) :: asnow ! snow cover fraction [0-1]
24372438
24382439 ! local variables
24392440
2440- ! relatively large threshold for precip indirectly screens for standing water
2441-
2442- real , parameter :: temperature_threshold = 10 . ! [C]
2441+ real , parameter :: temperature_threshold = 10 . ! [C]
24432442
24442443 integer :: i
24452444
24462445 ! ---------------------------------------
24472446
24482447 do i= 1 ,N_cat
24492448
2450- ! delete obs
2451- ! - if the soil layer 1 temperature exceeds temperature threshold
2449+ ! delete Obs_pred
2450+ ! - if the layer-1 soil temperature exceeds threshold
24522451
2453- if ( (tp1(i) > temperature_threshold) ) &
2454- asnow(i) = nodata_generic
2452+ if (tp1(i) > temperature_threshold) asnow(i) = nodata_generic
24552453
24562454 end do
24572455
0 commit comments