UPP v11.0.0
Loading...
Searching...
No Matches
SELECT_CHANNELS.f
Go to the documentation of this file.
1
5
19 subroutine select_channels(channelinfo,nchannels,channels)
20
21 use crtm_channelinfo_define, only: crtm_channelinfo_type
22 implicit none
23
24 type(crtm_channelinfo_type),intent(inout) :: channelinfo
25 integer, intent(in) :: nchannels,channels(nchannels)
26 integer :: i,j
27 integer :: temp(nchannels)
28
29 if(nchannels>channelinfo%n_channels) then
30 write(6,*) 'ERROR*** tried to use more channels than sensor has'
31 write(6,*) ' ',nchannels,' > ',channelinfo%n_channels
32 stop 18
33 endif
34
35 check: do i=1,nchannels
36 if(channels(i)<1 .or. channels(i)>channelinfo%n_channels) then
37 write(6,*) 'ERROR*** invalid channel id: ',channels(i)
38 write(6,*) ' in SELECT_CHANNELS at index ',i
39 stop 19
40 endif
41 temp(i)=channelinfo%Channel_Index(channels(i))
42 enddo check
43
44 channelinfo%n_channels=nchannels
45 channelinfo%Channel_Index(1:nchannels)=temp
46
47 end subroutine select_channels
48
49 subroutine select_channels_l(channelinfo,nchannels,channels,L,igot)
50
51! 2014-12-09: WM LEWIS ADDED THIS SUBROUTINE TO SELECT CHANNELS
52! USING LEVEL ENTRIES FROM WRF_CNTRL.PARM
53
54 use crtm_channelinfo_define, only: crtm_channelinfo_type
55 implicit none
56
57 type(crtm_channelinfo_type),intent(inout) :: channelinfo
58 integer, intent(in) :: nchannels,channels(nchannels)
59 integer :: i,j,k,m
60 integer :: temp(nchannels)
61 integer :: L(nchannels)
62 integer :: igot
63
64 if(nchannels>channelinfo%n_channels) then
65 write(6,*) 'ERROR*** tried to use more channels than sensor has'
66 write(6,*) ' ',nchannels,' > ',channelinfo%n_channels
67 stop 18
68 endif
69
70 k=0
71 do i=1,nchannels
72 if(channels(i)<1 .or. channels(i)>channelinfo%n_channels) then
73 write(6,*) 'ERROR*** invalid channel id: ',channels(i)
74 write(6,*) ' in SELECT_CHANNELS at index ',i
75 stop 19
76 endif
77 if(l(i)==1)then
78 k=k+1
79 temp(k)=channelinfo%Channel_Index(channels(i))
80 endif
81 if(l(i)==0)then
82 channelinfo%Process_Channel(channels(i))=.false. ! turn off channel processing
83 endif
84 enddo
85
86! if no channels were selected, then set igot=0
87 if(k==0)then
88 igot=0
89 return
90! else
91! channelinfo%n_channels=k
92! channelinfo%Channel_Index(1:k)=temp(1:k)
93 endif
94
95 end subroutine select_channels_l
96
subroutine select_channels(channelinfo, nchannels, channels)
This subroutine verifies channel information and print error to output file if detected,...