@@ -658,6 +658,7 @@ subroutine noahmpdrv_run &
658
658
real (kind= kind_phys) :: precip_freeze_frac_in ! used for penman calculation
659
659
660
660
real (kind= kind_phys) :: virtfac1 ! virtual factor
661
+ real (kind= kind_phys) :: tflux ! surface flux temp
661
662
real (kind= kind_phys) :: tvs1 ! surface virtual temp
662
663
real (kind= kind_phys) :: vptemp ! virtual potential temp
663
664
@@ -934,7 +935,8 @@ subroutine noahmpdrv_run &
934
935
t2mmp(i) = temperature_bare_2m
935
936
q2mp(i) = spec_humidity_bare_2m
936
937
937
- tskin(i) = temperature_ground
938
+ tskin(i) = temperature_radiative
939
+ tflux = temperature_ground
938
940
surface_temperature = temperature_ground
939
941
vegetation_fraction = vegetation_frac
940
942
ch_vegetated = 0.0
@@ -1024,7 +1026,8 @@ subroutine noahmpdrv_run &
1024
1026
q2mp(i) = spec_humidity_veg_2m * vegetation_fraction + &
1025
1027
spec_humidity_bare_2m * (1 - vegetation_fraction)
1026
1028
1027
- tskin(i) = surface_temperature
1029
+ tskin(i) = temperature_radiative
1030
+ tflux = surface_temperature
1028
1031
1029
1032
endif ! glacial split ends
1030
1033
@@ -1170,9 +1173,9 @@ subroutine noahmpdrv_run &
1170
1173
endif
1171
1174
1172
1175
if (thsfc_loc) then ! Use local potential temperature
1173
- tvs1 = tskin(i) * virtfac1
1176
+ tvs1 = tflux * virtfac1
1174
1177
else ! Use potential temperature referenced to 1000 hPa
1175
- tvs1 = tskin(i) / prsik1(i) * virtfac1
1178
+ tvs1 = tflux / prsik1(i) * virtfac1
1176
1179
endif
1177
1180
1178
1181
z0_total = max (min (z0_total,forcing_height),1.0e-6 )
0 commit comments