Skip to content

FPOS: Activating fields representing synthetic pseudo satellite channels

Christoph Wittmann edited this page Jun 20, 2023 · 4 revisions

[Instructions based on cy46t1]

1) Add channels to NAMFPC as 2D dynamic fields:

e.g. synthetic Meteosat SEVIRI channels 2 and 6 (IR 10.8 und WV 6.2)

CFP2DF(1)='C002_METEOSAT_09_SEVIRI.POS',
CFP2DF(2)='C006_METEOSAT_09_SEVIRI.POS',

we think that:

Seviri channels 1,2,3 and 12 (VIS1, VIS, NIR, HR_VIS) currently not processed

  C001 is IR_039 (= seviri channel 4)
  C002 is WV_062 (= seviri channel 5)
  C003 is WV_073 (= ...)
  C004 is IR_087
  C005 is IR_097
  C006 is IR_108
  C007 is IR_120
  C008 is IR_134 (= seviri channel 11)

more seviri channels with RTTOV 13?! (cy46 = Rttov 12.1)

HEALTH Warning:

Make sure that, when using inline fpos, you activate radiative liquid/solid water GFL fields (otherwise just qv is passed over to rttov and ql=qi=0)

NAMGFL: YIRAD_NL%LGP=.T., YLRAD_NL%LGP=.T.,

2) make sure rttov coefficient files are available (in compatible version) during inline/offline fpos run:

export RTTOV_COEFDIR={PATH_TO_YOUR_RTTOV_COEF_FILES}

see example for coef files for cy46 on ATOS: /home/kay/deode/data_in/const/cy46t1/coef_cy46.tar

potential abort messages:

in the case you don't provide the path/coef files:

2023/01/16 19:42:59 fatal error in module rttov_coef_io_mod.F90:0144
Cannot find any coefficient file named: rtcoef_meteosat_9_seviri.dat/.bin/.h5/.H5
...
ABORT! 1 PHRTSETUP: RTTVI PROBLEM

in the case your coef files are incompatible with the rrtov version:

2023/01/16 20:00:42 fatal error in module rttov_read_binary_coef.F90:0127
Version of coefficient file is incompatible with RTTOV library
2023/01/16 20:00:42 fatal error in module rttov_read_coefs.F90:0210

2023/01/16 20:00:42 fatal error in module rttvi.F90:0340

3) check FPOS output files for:

C002_METEOSAT_09 C002_METEOSAT_09

4) other channels listed in FPOS docu:``

check FPOS docu for more synthetic channels that might work:

https://www.umr-cnrm.fr/gmapdoc/IMG/pdf/fullpos_usersguide_cycle_46-48.pdf

5) Harmonie

Implemented in the dev-CY46h1_deode as https://github.com/DEODE-NWP/Harmonie/pull/11

6) Some code details (fpos, rttov):

check available channels in arpifs/setup/sufa.F90:

...
YFA_MSAT9C1=YSUFAD('C001_METEOSAT_09',-1)
YFA_MSAT9C2=YSUFAD('C002_METEOSAT_09',-1)
YFA_MSAT9C3=YSUFAD('C003_METEOSAT_09',-1)
YFA_MSAT9C4=YSUFAD('C004_METEOSAT_09',-1)
YFA_MSAT9C5=YSUFAD('C005_METEOSAT_09',-1)
YFA_MSAT9C6=YSUFAD('C006_METEOSAT_09',-1)
YFA_MSAT9C7=YSUFAD('C007_METEOSAT_09',-1)
YFA_MSAT9C8=YSUFAD('C008_METEOSAT_09',-1)
YFA_MSAT10C1=YSUFAD('C001_METEOSAT_10',-1)
YFA_MSAT10C2=YSUFAD('C002_METEOSAT_10',-1) ...

fullpos work/dataflow:

**arpifs/fullpos/phymfpos.F90: ** (physics interface for post-processing)

arrays for different Meteosat-version (7-11) with 8 levels (= channels) each filled via MTS_PHYS (= rrtov interface) Meteosat 10 and 11 new (compared to cy43)

CALL MTS_PHYS(......&
& ZTBMSAT7,ZTBMSAT8,ZTBMSAT9,ZTBMSAT10,ZTBMSAT11,&
& ZTBGOES11,ZTBGOES12,ZTBGOES15,ZTBGOES16,ZTBGOES17,ZTBMTSAT1,ZTBHIMA8)

...
IF(YDQTYPE%LL(TFP%MSAT9C2%ICOD)) CALL STORE_DATA(TFP%MSAT9C2%ICOD,1,ZTBMSAT9(:,2))
IF(YDQTYPE%LL(TFP%MSAT9C3%ICOD)) CALL STORE_DATA(TFP%MSAT9C3%ICOD,1,ZTBMSAT9(:,3))
IF(YDQTYPE%LL(TFP%MSAT9C4%ICOD)) CALL STORE_DATA(TFP%MSAT9C4%ICOD,1,ZTBMSAT9(:,4))
IF(YDQTYPE%LL(TFP%MSAT9C5%ICOD)) CALL STORE_DATA(TFP%MSAT9C5%ICOD,1,ZTBMSAT9(:,5))
IF(YDQTYPE%LL(TFP%MSAT9C6%ICOD)) CALL STORE_DATA(TFP%MSAT9C6%ICOD,1,ZTBMSAT9(:,6))
IF(YDQTYPE%LL(TFP%MSAT9C7%ICOD)) CALL STORE_DATA(TFP%MSAT9C7%ICOD,1,ZTBMSAT9(:,7))
...

arpifs/phys_dmn/mts_phys.F90:

interface to rrtov ...
...
PTBMSAT7(:,:)=0._JPRB
PTBMSAT8(:,:)=0._JPRB
PTBMSAT9(:,:)=0._JPRB
PTBMSAT10(:,:)=0._JPRB
PTBMSAT11(:,:)=0._JPRB
...

satellite positions:
SELECT CASE(SATGRP_TABLE(JSERIES)%RTID)
CASE(7)
ZLONSAT=57.5
ZTBCLD_INT => PTBMSAT7
CASE(8)
ZLONSAT=41.5 ! since juy 2016
ZTBCLD_INT => PTBMSAT8
CASE(9)
ZLONSAT=3.5
ZTBCLD_INT => PTBMSAT9
CASE(10)
ZLONSAT=9.5
ZTBCLD_INT => PTBMSAT10
CASE(11)
ZLONSAT=0.0
ZTBCLD_INT => PTBMSAT11
END SELECT

ZTBCLD_INT pointing to selected sat-array -> filled from ZTBTOT after call to rttov:

CALL RTTOV_EC(...,ZTBTOT(1:IMXCHPF)...)

DO JLON=1,ILONLOC
DO JCH=1,ICHANMAX(JSERIES)
ICHPF=ICHPF+1
ZTBCLD_INT(JLON+IDONE,NVALCHAN_MTS(JCH,JSERIES))=&
& ZTBTOT(ICHPF) * ZMASK(JLON+IDONE)
ENDDO
ENDDO

rrtov entry:

satrad/rttov/ifs/rttov_ec.F90

rttov coeficient files (cy46):

rtcoef_msg_1_seviri.dat (= METEOSAT 8 !?) rtcoef_msg_2_seviri.dat (= METEOSAT 9) rtcoef_msg_3_seviri.dat (= METEOSAT 10) rtcoef_msg_4_seviri.dat (= METEOSAT 11)

e.g. rtcoef_msg_1_seviri.dat (METEOSAT 8):

! Channel number (from instrument original description)
! Channel status
! Central wavenumber
! Band correction coefficients (offset, slope)
! Gamma correction factor
1 1 0.2555727835E+04 0.3080289972E+01 0.9932698046E+00 0.1000000000E+01
2 1 0.1588790140E+04 0.1589328609E+01 0.9947437611E+00 0.1000000000E+01
3 1 0.1359929538E+04 0.2867084238E+00 0.9987965463E+00 0.1000000000E+01
4 1 0.1148276868E+04 0.7754610676E-01 0.9995896451E+00 0.1000000000E+01
5 1 0.1034048112E+04 0.2202921262E-01 0.9998774170E+00 0.1000000000E+01
6 1 0.9277573290E+03 0.1417483986E+00 0.9989030222E+00 0.1000000000E+01
7 1 0.8378221105E+03 0.3285352063E-01 0.9994581923E+00 0.1000000000E+01
8 1 0.7496964919E+03 -0.5684697958E-01 0.9995417857E+00 0.1000000000E+01
! ------------------------------------------------------

coefficient files cy43 vs. cy46 to be ckecked ...

Clone this wiki locally