lat = -30. lon = 302. freq = 30.! For single frequency experiment freq2(:) = (/30., 25., 38., 60., 90. /) ! For multiple frequency experiment i = 1! Index of freq in freq2 array
运行如下:
shell
[hjh@node05] ~/rttov13/emis_data/telsem2 $ make -f Makefile [hjh@node05] ~/rttov13/emis_data/telsem2 $ ./test_telsem2
stdout>>
plaintext
Reading atlas for month 9 Reading number of data in atlas... Nb data= 233959 reading classes... Inputs: lat = -30.00 lon = 302.00 theta = 15.00 freq = 30.00 The first four sets of output are identical: Single freq, no spatial averaging Emis V-pol, H-pol = 0.954829 0.954446 Stddev V-pol, H-pol = 0.020591 0.021068 Covariance V-/H-pol = 0.000372 Multiple freq, no spatial averaging Emis V-pol, H-pol = 0.954829 0.954446 Stddev V-pol, H-pol = 0.020591 0.021068 Covariance V-/H-pol = 0.000372 Single freq, with spatial averaging, native resol. Emis V-pol, H-pol = 0.954829 0.954446 Stddev V-pol, H-pol = 0.020591 0.021068 Covariance V-/H-pol = 0.000372 Multiple freq, with spatial averaging, native resol. Emis V-pol, H-pol = 0.954829 0.954446 Stddev V-pol, H-pol = 0.020591 0.021068 Covariance V-/H-pol = 0.000372 Now the spatial averaging is active and results are different to those above: Single freq, with spatial averaging, non-native resol. Emis V-pol, H-pol = 0.952811 0.952665 Stddev V-pol, H-pol = 0.020790 0.023314 Covariance V-/H-pol = 0.000406 Multiple freq, with spatial averaging, non-native resol. Emis V-pol, H-pol = 0.952811 0.952665 Stddev V-pol, H-pol = 0.020790 0.023314 Covariance V-/H-pol = 0.000406 Now only return emissivities and print them for all frequencies: Multiple freq, with spatial averaging, non-native resol. Freq (GHz) : 30.000 25.000 38.000 60.000 90.000 Emis V-pol = 0.952811 0.954156 0.951043 0.953123 0.955559 Emis H-pol = 0.952665 0.954065 0.950784 0.952975 0.955488
PROGRAM globe_mlse_telsem ! call TELSEM2 atlas and interpolator to generate global 0.25 degree land surface emissivity on monthly basis ! By Qingyang Liu, Aug, 2023, USTC ! adapted from test_telsem.F90
USE mod_mwatlas_m2
IMPLICITNONE INTEGER :: m,n CHARACTER(len=130) fout CHARACTER(len=2) mm
INTEGER(jpim) :: error_status
LOGICAL(jplm) :: verbose ! For atlas reading subroutine INTEGER(jpim) :: verb !=1 for TRUE and 0 for FALSE - for emissivity routines
INTEGER(jpim) :: month ! (1->12) CHARACTER(LEN=256) :: dir ! directory of emis database
REAL(jprb) :: resol ! horizontal resolution for the user REAL(jprb) :: lat ! (-90->90) REAL(jprb) :: lon ! (0->360) REAL(jprb) :: theta ! (0->60�)
! For individual freq interpolations REAL(jprb) :: ev, eh, stdv, stdh, covvh REAL(jprb) :: freq ! (19->85GHz) INTEGER(jpim) :: i
! Structure containing atlas data TYPE(telsem2_atlas_data) :: atlas !--- End of header ---------------------------------- verbose = .TRUE. ! Verbose output for reading subroutine verb = 0! No verbose output for emissivity subroutines !==================================================== ! Read the atlas !==================================================== dir = '../' month = 6!! modify or do loop to simulate other months
! WRITE(0,'(a,i3)') 'Reading atlas for month ',month CALL rttov_readmw_atlas(TRIM(dir), month, atlas, verbose, error_status) IF (error_status /= 0) THEN WRITE(0,'(a)') 'Error reading atlas' STOP1 ENDIF
!==================================================== ! Calculate emissivities !==================================================== ! Multiple frequencies, spatially averaged, return emissivities only write(mm,"%0.2i") month !! to the form '06' ! yue = (/"01","02","03","04","05","06","07","08","09","10","11","12"/) fout ='SSMI'//mm//'.txt' resol = 0.25 theta = 53.1 freq = 10.65 freq2(:) = (/10.65, 18.7, 23.8, 36.5, 89.0/) ! For multiple frequency experiment i = 0! Index of freq in freq2 array
open(15,file= trim(adjustl(fout))) !!final product lat = -90. do m = 1,720 lon = 0. do n = 1,1440 CALL emis_interp_int_mult(lat, lon, resol, theta, freq2, nchan, atlas, ev2, eh2, verb = verb) WRITE(15,100) lat,lon,(ev2(i),i=1,5),(eh2(i),i=1,5) lon = lon+0.25 enddo lat = lat+0.25 print*, m enddo
CLOSE(15) 100FORMAT(12(1x,f14.6))
!==================================================== ! Close the atlas !==================================================== CALL rttov_closemw_atlas(atlas)
ENDPROGRAM globe_mlse_telsem
使用其他语言转换成NC文件,或者直接绘图: TELSEM2 6月份地表发射率估算:
地表发射率
References
Aires, F., Prigent, C., Bernardo, F., Jiménez, C., Saunders, R. and Brunel, P. (2011), A Tool to Estimate Land-Surface Emissivities at Microwave frequencies (TELSEM) for use in numerical weather prediction. Q.J.R. Meteorol. Soc., 137: 690-699. https://doi.org/10.1002/qj.803.
Prigent, C., Rossow, W. B., and Matthews, E. (1997), Microwave land surface emissivities estimated from SSM/I observations, J. Geophys. Res., 102(D18), 21867–21890. https://doi.org/10.1029/97JD01360.