11 use fckit_log_module,
only : fckit_log
21 integer :: nprofelements
32 integer :: o3profile(2)
82 integer,
intent(in) :: nlevels
85 character(len=*),
parameter :: routinename =
"ufo_rttovonedvarcheck_profindex_setup"
89 integer :: firstelement
90 integer :: lastelement
96 self % nlevels = nlevels
100 do j = 1, bmatrix % nfields
101 firstelement = nelements + 1
102 lastelement = nelements + bmatrix % fields(j,2)
107 select case( bmatrix % fields(j,1) )
114 self % t(1) = firstelement
115 self % t(2) = lastelement
118 self % q(1) = firstelement
119 self % q(2) = lastelement
122 call abor1_ftn(
"ufo_metoffice_fieldtype_ql: Not currently implemented aborting")
125 call abor1_ftn(
"ufo_metoffice_fieldtype_qi: Not currently implemented aborting")
128 call abor1_ftn(
"ufo_metoffice_fieldtype_cf: Not currently implemented aborting")
131 self % qt(1) = firstelement
132 self % qt(2) = lastelement
135 call abor1_ftn(
"ufo_metoffice_fieldtype_o3profile: Not currently implemented aborting")
138 call abor1_ftn(
"ufo_metoffice_fieldtype_o3total: Not currently implemented aborting")
145 self % t2 = firstelement
148 self % q2 = firstelement
151 self % tstar = firstelement
154 self % pstar = firstelement
157 self % windspeed = firstelement
160 call abor1_ftn(
"ufo_metoffice_fieldtype_mwemiss: Not currently implemented aborting")
163 call abor1_ftn(
"ufo_metoffice_fieldtype_emisspc: Not currently implemented aborting")
170 call abor1_ftn(
"ufo_metoffice_fieldtype_cloudtopp: Not currently implemented aborting")
173 call abor1_ftn(
"ufo_metoffice_fieldtype_cloudfrac: Not currently implemented aborting")
179 write(*,*)
'invalid field type in b matrix file: ',j
184 if ( firstelement /= 0 ) nelements = nelements + bmatrix % fields(j,2)
188 self % nprofelements = nelements
209 self % nprofelements = 0
Fortran module containing the full b-matrix data type and methods for the 1D-Var.
integer, parameter, public ufo_metoffice_fieldtype_cloudtopp
single-level cloud top pressure
integer, parameter, public ufo_metoffice_fieldtype_q
specific humidity profile
integer, parameter, public ufo_metoffice_fieldtype_q2
surface spec humidity
integer, parameter, public ufo_metoffice_fieldtype_qi
ice profile - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_t
temperature
integer, parameter, public ufo_metoffice_fieldtype_t2
surface air temperature
integer, parameter, public ufo_metoffice_fieldtype_emisspc
emissivity prinipal components - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_qt
total water profile
integer, parameter, public ufo_metoffice_fieldtype_ql
liquid water profile - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_not_used
not currently in use - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_windspeed
surface wind speed
integer, parameter, public ufo_metoffice_fieldtype_cf
cloud fraction profile - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_o3profile
ozone - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_mwemiss
microwave emissivity - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_o3total
total column ozone - not currently setup
integer, parameter, public ufo_metoffice_fieldtype_cloudfrac
effective cloud fraction
integer, parameter, public ufo_metoffice_fieldtype_pstar
surface pressure
integer, parameter, public ufo_metoffice_fieldtype_tstar
surface skin temperature
Fortran module constants used throughout the rttovonedvarcheck filter.
Fortran module containing profile index.
subroutine ufo_rttovonedvarcheck_profindex_delete(self)
Delete profile index.
subroutine ufo_rttovonedvarcheck_profindex_setup(self, bmatrix, nlevels)
Profile index setup.