SUBROUTINE SUAFN3

!**** *SUAFN3*  - PRINT OUT ARPEGE FIELD DESCRIPTORS

!     PURPOSE.
!     --------
!        TO PRINT OUT ARPEGE FIELD DESCRIPTORS

!**   INTERFACE.
!     ----------
!       *CALL* *SUAFN3*

!        EXPLICIT ARGUMENTS
!        --------------------
!        NONE

!        IMPLICIT ARGUMENTS
!        --------------------
!        See #include below.

!     METHOD.
!     -------
!        See documentation about FULL-POS.

!     EXTERNALS.
!     ----------

!     REFERENCE.
!     ----------
!        ECMWF Research Department documentation of the IFS

!     AUTHOR.
!     -------
!        RYAD EL KHATIB *METEO-FRANCE*

!     MODIFICATIONS.
!     --------------
!        ORIGINAL : 98-04-08 from SUAFN
!        D. Giard : 99-03-15 superficial frozen water
!        1999-04-19, J.M. Piriou: Moon radiation.
!        1999-10-12, K.YESSAD: additional cleaning:
!          - print all variables used at METEO-FRANCE (add missing prints)
!          - print variables in the same order as they are computed in
!            suafn1.f90 and suafn2.f90.
!      R. El Khatib : 00-03-22 Support for new phys. fields
!          D. Giard : 00-10-25 Albedos for bare ground and vegetation
!      R. El Khatib : 00-08-18 derived type for dynamic fields
!      R. El Khatib : 01-05-04 Duration of total precipitations,HUn,HUx
!      R. El Khatib : 01-08-07 Pruning options
!      R. El Khatib : 02-21-20 Fullpos B-level distribution + remove IO scheme
!           F. Vana : 02-07-03 Virtual potential temperature
!      R. El Khatib : 02-09-04 Iso -10 Celsius
!      R. El Khatib : 03-04-17 Fullpos improvemnts
!          M.Hamrud : 03-10-01 CY28 Cleaning
!      F. Taillefer : 04-05-26 Add ozone and aerosols fields
!      Y. Bouteloup : 04-03-26 Introduction of MTS radiance
!        A. Tompkins : 11-02-04 TCLW, TCLW
!      R. Engelen   : 05-03-15 Greenhouse gases (ECMWF)
!      A. Untch     : 05-03-15 Aerosols (ECMWF)
!      J. Flemming  : 05-04-11 Aerosols replaced with GRG-GEMS (ECMWF)
!      Y. Bouteloup : 05-01-20 Introduction of atmospheric rain
!      G. Hello     : 05-01-25 Adding snow, rain,graupel, tke
!      R. El Khatib 10-May-2005 IMASK instead of LLLSM
!      R. El Ouaraini: 05-07-28 Adding fields for the monitoring of update frequency of the coupling files for Aladin
!      A. Dethof    : 12-Dec-05 Add total column GRG fields   
!      A. Alias     : 05-12-21 Add sulfate and volcano aerosols fields
!      M. Bellus    : 28-Sep-2006 Add prognostic convection fields (ALARO-0)
!      JJMorcrette  : 10-05-2006 MODIS albedo
!        S. Serrar    : 05-06-23 CO2 surface fluxes added
!        S. Serrar    : 05-09-26 Add CO2 and SF6 total column
!        R. Engelen   : 02-Jun-06  CO2  replaced by generic GHG
!      JJMorcrette 20060721 PP of clear-sky PAR and TOA incident solar radiation
!      JJMorcrette 20060807 PP of vertically integerated mass divergence VIMD
!      JJMorcrette 20060925 DU, BC, OM, SO2, VOL, SOA climatol.surf.fields 
!      G. Balsamo  20070115 Soil type
!        Y. Seity    : 07-03-06 Add Graupel and Hail
!      P. Lopez      : 26-06-2009 Added 100m wind components
!      P. Lopez      : 22-10-2008 Added ducting diagnostic fields
!      JJMorcrette 20091201 Total and clear-sky direct SW radiation flux at surface 
!      H. Hersbach 04-Dec-2009 10-m neutral wind and friction velocity
!      S. Boussetta/G.Balsamo      May 2009   Added variable LAI field
!      G. Balsamo  20090807 Add  surface/subsurface runoff
!      R. Forbes   01-Mar-10 Added TCRW, TCSW diagnostics
!      JJMorcrette 20100212 PP of CBASE, 0DEGL and VISIH
!      T. Wilhelmsson: 25-Mar-2010 Add 6 hourly min/max fields
!     ------------------------------------------------------------------

USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOM_YGFL  ,ONLY : YLRCH4, YCH4S

USE PARFPOS  , ONLY : JPOSSCVA ,JPOSVX2  ,JPOSFSU  ,&
 & JPOSAERO  ,JPOSGHG   ,JPOSGRG , JPOSTRAC
USE YOMLUN   , ONLY : NULOUT
USE YOMCT0   , ONLY : LARPEGEF ,NPRINTLEV,LFPOS
USE YOMAFN
USE FULLPOS_MIX, ONLY : FULLPOS_TYPE
USE TYPE_FPDSPHYS, ONLY : FPDSPHY

!     ------------------------------------------------------------------

IMPLICIT NONE

INTEGER(KIND=JPIM) :: J,JVAR, IERR, ISIZE, ILIMIT

CHARACTER(LEN=25) :: CLTEXT
CHARACTER(LEN=34) :: CLTEXU
CHARACTER(LEN=12) :: CLVARN
REAL(KIND=JPRB) :: ZHOOK_HANDLE
LOGICAL :: LL_LRCH4, LL_CH4S

!     ------------------------------------------------------------------

#include "abor1.intfb.h"

!     ------------------------------------------------------------------
IF (LHOOK) CALL DR_HOOK('SUAFN3',0,ZHOOK_HANDLE)
!     ------------------------------------------------------------------

!*       1. Print out descriptors
!           ---------------------

LL_LRCH4=YLRCH4%LACTIVE
LL_CH4S=YCH4S%LACTIVE

IF (NPRINTLEV >=1) THEN

  ILIMIT=3

  WRITE(UNIT=NULOUT,FMT='('' MODULE YOMAFN'')')

  WRITE(UNIT=NULOUT,FMT='(/,'' UPPER AIR FIELDS FROM DYNAMIC :'')')

  CALL PRINT_TFP

  CALL PRINT_TFP('Geopotential.............','TFP_Z   ',TFP_Z   )
  CALL PRINT_TFP('Temperature..............','TFP_T   ',TFP_T   )
  CALL PRINT_TFP('U-momentum of wind.......','TFP_U   ',TFP_U   )
  CALL PRINT_TFP('V-momentum of wind.......','TFP_V   ',TFP_V   )
  CALL PRINT_TFP('Specific humidity........','TFP_Q   ',TFP_Q   )
  CALL PRINT_TFP('Relative humidity........','TFP_HU  ',TFP_HU  )
  CALL PRINT_TFP('Vertical velocity........','TFP_VV  ',TFP_VV  )
  CALL PRINT_TFP('Etadot...................','TFP_ETAD',TFP_ETAD)
  CALL PRINT_TFP('Vorticity................','TFP_VOR ',TFP_VOR )
  CALL PRINT_TFP('Divergence...............','TFP_DIV ',TFP_DIV )
  CALL PRINT_TFP('Velocity potential.......','TFP_PSI ',TFP_PSI )
  CALL PRINT_TFP('Stream function..........','TFP_KHI ',TFP_KHI )
  CALL PRINT_TFP('Atmospheric liquid water.','TFP_L   ',TFP_L   )
  CALL PRINT_TFP('Atmospheric solid water..','TFP_I   ',TFP_I   )
  CALL PRINT_TFP('Atmospheric snow.........','TFP_SN  ',TFP_SN  )
  CALL PRINT_TFP('Atmospheric rain.........','TFP_RR  ',TFP_RR  )
  CALL PRINT_TFP('Atmospheric graupel......','TFP_GR  ',TFP_GR  )
  CALL PRINT_TFP('Atmospheric hail.........','TFP_HL  ',TFP_HL  )
  CALL PRINT_TFP('Turbulent kinetic energy.','TFP_TKE ',TFP_TKE )
  CALL PRINT_TFP('Potential temperature....','TFP_TH  ',TFP_TH  )
  CALL PRINT_TFP('Wet bulb pot. temperature','TFP_THPW',TFP_THPW)
  CALL PRINT_TFP('Cloud fraction...........','TFP_CLF ',TFP_CLF )
  CALL PRINT_TFP('Ozone....................','TFP_O3MX',TFP_O3MX)
  CALL PRINT_TFP('Wind velocity............','TFP_WND ',TFP_WND )
  CALL PRINT_TFP('Equiv. pot. temperature..','TFP_ETH ',TFP_ETH )
  CALL PRINT_TFP('Isobaric equivalent tempe','TFP_IET ',TFP_IET )
  CALL PRINT_TFP('Simulated reflectivity...','TFP_SRE ',TFP_SRE )
  CALL PRINT_TFP('Virtual Theta............','TFP_THV ',TFP_THV )
  CALL PRINT_TFP('Absolute Vorticity.......','TFP_ABS ',TFP_ABS )
  CALL PRINT_TFP('Stretching Deformation...','TFP_STD ',TFP_STD )
  CALL PRINT_TFP('Potential Vorticity......','TFP_PV  ',TFP_PV  )
  CALL PRINT_TFP('Shearing Deformation.....','TFP_SHD ',TFP_SHD )
  CALL PRINT_TFP('Pressure.................','TFP_P   ',TFP_P   )
  CALL PRINT_TFP('Pressure Departure.......','TFP_PD  ',TFP_PD  )
  CALL PRINT_TFP('Montgomery potential.....','TFP_MG  ',TFP_MG  )
  CALL PRINT_TFP('Pseudo Vertic. Divergence','TFP_VD  ',TFP_VD  )
  CALL PRINT_TFP('True Vertical NH Velocity','TFP_VW  ',TFP_VW  )
! Prognostic convection
  CALL PRINT_TFP('DD Mesh Fraction.........','TFP_DAL ',TFP_DAL )
  CALL PRINT_TFP('DD Vertical Velocity.....','TFP_DOM ',TFP_DOM )
  CALL PRINT_TFP('UD Mesh Fraction.........','TFP_UAL ',TFP_UAL )
  CALL PRINT_TFP('UD Vertical Velocity.....','TFP_UOM ',TFP_UOM )
  CALL PRINT_TFP('UD pseudohist entrainment','TFP_UEN ',TFP_UEN )
  CALL PRINT_TFP('Cnv pseudohist cloud frac','TFP_UNEBH ',TFP_UNEBH )
  CALL PRINT_TFP('Lifting Condensation Level','TFP_LCL ',TFP_LCL )
  CALL PRINT_TFP('Free Convection Level     ','TFP_FCL ',TFP_FCL )
  CALL PRINT_TFP('Equilibrium Level         ','TFP_EL  ',TFP_EL )
  DO JVAR=1,JPOSGHG
    WRITE(CLTEXT,FMT='(A18,I2.2,A5)') 'GHG nr ',JVAR,'.....'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') 'TFP_GHG(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_GHG(JVAR))
    IF (JVAR > ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSGHG  
      EXIT
    ENDIF    
  ENDDO
  DO JVAR=1,JPOSTRAC
    WRITE(CLTEXT,FMT='(A18,I2.2,A5)') 'TRAC nr ',JVAR,'.....'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') 'TFP_TRAC(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_TRAC(JVAR))
    IF (JVAR > ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSTRAC
      EXIT
    ENDIF
  ENDDO
  DO JVAR=1,JPOSAERO
    WRITE(CLTEXT,FMT='(A18,I2.2,A5)') 'Aerosol nr ',JVAR,'.....'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') 'TFP_AERO(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_AERO(JVAR))
    IF (JVAR > ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSAERO
      EXIT
    ENDIF
  ENDDO
  IF(LL_LRCH4) THEN
    CALL PRINT_TFP('CH4 loss rate....','TFP_LRCH4 ',TFP_LRCH4)
  ENDIF
  IF(LL_CH4S) THEN
    CALL PRINT_TFP('CH4 atm. sink....','TFP_CH4S ',TFP_CH4S)
  ENDIF
  DO JVAR=1,JPOSGRG
    WRITE(CLTEXT,FMT='(A18,I2.2,A5)') 'GRG var nr ',JVAR,'.....'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') 'TFP_GRG(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_GRG(JVAR))
    IF (JVAR > ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSGRG  
      EXIT
    ENDIF    
  ENDDO
  DO JVAR=1,JPOSSCVA
    WRITE(CLTEXT,FMT='(A18,I2.2,A5)') 'Passive scalar nr ',JVAR,'.....'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') 'TFP_GFL(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_GFL(JVAR))
    IF (JVAR == ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSSCVA  
      EXIT
    ENDIF    
  ENDDO
  DO JVAR=1,JPOSVX2
    WRITE(CLTEXT,FMT='(A23,I2.2)') 'Free upper air field n ',JVAR
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') ' TFP_FUA(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_FUA(JVAR))
    IF (JVAR == ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSVX2  
      EXIT
    ENDIF    
  ENDDO

  WRITE(UNIT=NULOUT,FMT='(/,'' SURFACE FIELDS FROM DYNAMIC :'')')

  CALL PRINT_TFP('Surface pressure.........','TFP_SP  ',TFP_SP  )
  CALL PRINT_TFP('Mean sea level pressure..','TFP_MSL ',TFP_MSL )
  CALL PRINT_TFP('Filtred ln(Ps),NCUFNR=1..','TFP_CUF1',TFP_CUF1)
  CALL PRINT_TFP('Filtred ln(Ps),NCUFNR=2  ','TFP_CUF2',TFP_CUF2)
  CALL PRINT_TFP('Filtred ln(Ps),NCUFNR=3..','TFP_CUF3',TFP_CUF3)
  CALL PRINT_TFP('Filtred ln(Ps),NCUFNR=4..','TFP_CUF4',TFP_CUF4)
  CALL PRINT_TFP('Filtred ln(Ps),NCUFNR=5..','TFP_CUF5',TFP_CUF5)
  CALL PRINT_TFP('Surface geopotential.....','TFP_FIS ',TFP_FIS )
  CALL PRINT_TFP('Map factor...............','TFP_GM  ',TFP_GM  )
  CALL PRINT_TFP('Tropo. Folding Indicator.','TFP_FOL ',TFP_FOL )
  CALL PRINT_TFP('U-momentum of ICAO jet...','TFP_UJET',TFP_UJET)
  CALL PRINT_TFP('V-momentum of ICAO jet...','TFP_VJET',TFP_VJET)
  CALL PRINT_TFP('ICAO jet pressure........','TFP_PJET',TFP_PJET)
  CALL PRINT_TFP('ICAO Tropopause pressure.','TFP_PCAO',TFP_PCAO)
  CALL PRINT_TFP('ICAO Tropo. temperature..','TFP_TCAO',TFP_TCAO)
  CALL PRINT_TFP('Pressure of iso-t=0 deg C','TFP_PT0B',TFP_PT0B)
  CALL PRINT_TFP('altitude of iso-t=0 deg C','TFP_HT0B',TFP_HT0B)
  CALL PRINT_TFP('Pressure of iso-t=-10 C..','TFP_PT1B',TFP_PT1B)
  CALL PRINT_TFP('altitude of iso-t=-10 C..','TFP_HT1B',TFP_HT1B)
  CALL PRINT_TFP('altitude of iso-tprimw=0 ','TFP_HTPW',TFP_HTPW)
  CALL PRINT_TFP('Surface Vertical Velocity','TFP_WWS ',TFP_WWS )
  CALL PRINT_TFP('Log. of Surface pressure.','TFP_LNSP',TFP_LNSP)
  CALL PRINT_TFP('U cls....................','TFP_UCLS',TFP_UCLS)
  CALL PRINT_TFP('V cls....................','TFP_VCLS',TFP_VCLS)
  CALL PRINT_TFP('T cls....................','TFP_TCLS',TFP_TCLS)
  CALL PRINT_TFP('Q cls....................','TFP_QCLS',TFP_QCLS)
  CALL PRINT_TFP('HU cls...................','TFP_RCLS',TFP_RCLS)
  CALL PRINT_TFP('Module of wind cls.......','TFP_FCLS',TFP_FCLS)
  CALL PRINT_TFP('Maxi. temperature in cls.','TFP_TX  ',TFP_TX  )
  CALL PRINT_TFP('Mini. temperature in cls.','TFP_TN  ',TFP_TN  )
  CALL PRINT_TFP('Maxi. rel. moist. in cls.','TFP_HUX ',TFP_HUX )
  CALL PRINT_TFP('Mini. rel. moist. in cls.','TFP_HUN ',TFP_HUN )
  CALL PRINT_TFP('CAPE.....................','TFP_CAPE',TFP_CAPE)
  CALL PRINT_TFP('CIEN.....................','TFP_CIEN',TFP_CIEN)
  CALL PRINT_TFP('MOCON....................','TFP_MOCO',TFP_MOCO)
  CALL PRINT_TFP('Total water vapour.......','TFP_TWV ',TFP_TWV )
  CALL PRINT_TFP('U gusts..................','TFP_UGST',TFP_UGST)
  CALL PRINT_TFP('V gusts..................','TFP_VGST',TFP_VGST)
  CALL PRINT_TFP('Module of gusts..........','TFP_FGST',TFP_FGST)
  CALL PRINT_TFP('Height of the PBL........','TFP_HCLP',TFP_HCLP)
  CALL PRINT_TFP('Analysed surface MOCON...','TFP_ASMC',TFP_ASMC)
  CALL PRINT_TFP('Forecasted surface MOCON.','TFP_SMC' ,TFP_SMC )
  CALL PRINT_TFP('MSAT7 MVIRI CH 1.........','TFP_MSAT7C1',TFP_MSAT7C1)
  CALL PRINT_TFP('MSAT7 MVIRI CH 2.........','TFP_MSAT7C2',TFP_MSAT7C2)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 1........','TFP_MSAT8C1',TFP_MSAT8C1)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 2........','TFP_MSAT8C2',TFP_MSAT8C2)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 3........','TFP_MSAT8C3',TFP_MSAT8C3)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 4........','TFP_MSAT8C4',TFP_MSAT8C4)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 5........','TFP_MSAT8C5',TFP_MSAT8C5)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 6........','TFP_MSAT8C6',TFP_MSAT8C6)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 7........','TFP_MSAT8C7',TFP_MSAT8C7)
  CALL PRINT_TFP('MSAT8 SEVIRI CH 8........','TFP_MSAT8C8',TFP_MSAT8C8)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 1........','TFP_MSAT9C1',TFP_MSAT9C1)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 2........','TFP_MSAT9C2',TFP_MSAT9C2)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 3........','TFP_MSAT9C3',TFP_MSAT9C3)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 4........','TFP_MSAT9C4',TFP_MSAT9C4)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 5........','TFP_MSAT9C5',TFP_MSAT9C5)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 6........','TFP_MSAT9C6',TFP_MSAT9C6)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 7........','TFP_MSAT9C7',TFP_MSAT9C7)
  CALL PRINT_TFP('MSAT9 SEVIRI CH 8........','TFP_MSAT9C8',TFP_MSAT9C8)
  CALL PRINT_TFP('GOES11 IMAGER CH 1.......','TFP_GOES11C1',TFP_GOES11C1)
  CALL PRINT_TFP('GOES11 IMAGER CH 2.......','TFP_GOES11C2',TFP_GOES11C2)
  CALL PRINT_TFP('GOES11 IMAGER CH 3.......','TFP_GOES11C3',TFP_GOES11C3)
  CALL PRINT_TFP('GOES11 IMAGER CH 4.......','TFP_GOES11C4',TFP_GOES11C4)
  CALL PRINT_TFP('GOES12 IMAGER CH 1.......','TFP_GOES12C1',TFP_GOES12C1)
  CALL PRINT_TFP('GOES12 IMAGER CH 2.......','TFP_GOES12C2',TFP_GOES12C2)
  CALL PRINT_TFP('GOES12 IMAGER CH 3.......','TFP_GOES12C3',TFP_GOES12C3)
  CALL PRINT_TFP('GOES12 IMAGER CH 4.......','TFP_GOES12C4',TFP_GOES12C4)
  CALL PRINT_TFP('MTSAT 1 IMAGER CH 1......','TFP_MTSAT1C1',TFP_MTSAT1C1)
  CALL PRINT_TFP('MTSAT 1 IMAGER CH 2......','TFP_MTSAT1C2',TFP_MTSAT1C2)
  CALL PRINT_TFP('MTSAT 1 IMAGER CH 3......','TFP_MTSAT1C3',TFP_MTSAT1C3)
  CALL PRINT_TFP('MTSAT 1 IMAGER CH 4......','TFP_MTSAT1C4',TFP_MTSAT1C4)
  DO JVAR=1,JPOSFSU
    WRITE(CLTEXT,FMT='(A22,I2.2,A1)') 'Free surface field nr ',JVAR,'.'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') ' TFP_FSU(',JVAR,')'
    CALL PRINT_TFP(CLTEXT,CLVARN,TFP_FSU(JVAR))
    IF (JVAR == ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSFSU  
      EXIT
    ENDIF
  ENDDO

  WRITE(UNIT=NULOUT,FMT='(/,'' SURFACE FIELDS FROM PHYSIC :'')')

  CALL PRINT_GFP

  CALL PRINT_GFP('SD FILTERED OROG .................','GFP_SDFOR',GFP_SDFOR)
  CALL PRINT_GFP('CO2 .bios. flux...................','GFP_CO2NBF',GFP_CO2NBF )
  CALL PRINT_GFP('CO2 .ocea. flux...................','GFP_CO2OF ',GFP_CO2OF )
  CALL PRINT_GFP('CO2 .anth. emis...................','GFP_CO2APF ',GFP_CO2APF )
  CALL PRINT_GFP('CO2 .fire. emis...................','GFP_CO2FIRE ',GFP_CO2FIRE )
  CALL PRINT_GFP('CH4 .surf. flux...................','GFP_CH4AG ',GFP_CH4AG )
  CALL PRINT_GFP('CH4 .fire. emis...................','GFP_CH4F ',GFP_CH4F )
  CALL PRINT_GFP('SF6 .anth. emis...................','GFP_SF6    ',GFP_SF6)
  CALL PRINT_GFP('Land/sea mask.....................','GFP_LSM  ',GFP_LSM  )
  CALL PRINT_GFP('OUTPUT gp orography (*g)..........','GFP_GFIS ',GFP_GFIS )
  CALL PRINT_GFP('INTERPOLATED gp orography (*g)....','GFP_SFIS ',GFP_SFIS )
  CALL PRINT_GFP('Surface temperature...............','GFP_ST   ',GFP_ST   )
  CALL PRINT_GFP('Deep soil temperature.............','GFP_DST  ',GFP_DST  )
  CALL PRINT_GFP('INTERPOLATED Ts...................','GFP_RDST ',GFP_RDST )
  CALL PRINT_GFP('Surface soil wetness..............','GFP_SSW  ',GFP_SSW  )
  CALL PRINT_GFP('Deep soil wetness.................','GFP_DSW  ',GFP_DSW  )
  CALL PRINT_GFP('Relax. deep soil wetness..........','GFP_RDSW ',GFP_RDSW )
  CALL PRINT_GFP('Clim. rel. surf soil wetness......','GFP_CSSW ',GFP_CSSW )
  CALL PRINT_GFP('Clim. rel. deep soil wetness......','GFP_CDSW ',GFP_CDSW )
  CALL PRINT_GFP('Snow depth........................','GFP_SD   ',GFP_SD   )
  CALL PRINT_GFP('Surface roughness (*g)............','GFP_SR   ',GFP_SR   )
  CALL PRINT_GFP('Roughness length (*g).............','GFP_BSR  ',GFP_BSR  )
  CALL PRINT_GFP('Albedo............................','GFP_AL   ',GFP_AL   )
  CALL PRINT_GFP('Emissivity........................','GFP_EMIS ',GFP_EMIS )
  CALL PRINT_GFP('Soil type.........................','GFP_SOTY ',GFP_SOTY )
  CALL PRINT_GFP('Std. dev. of orography (*g).......','GFP_SDOG ',GFP_SDOG )
  CALL PRINT_GFP('percentage of vegetation..........','GFP_VEG  ',GFP_VEG  )
  CALL PRINT_GFP('percentage of land................','GFP_LAN  ',GFP_LAN  )
  CALL PRINT_GFP('Anisotropy of topography..........','GFP_ACOT ',GFP_ACOT )
  CALL PRINT_GFP('Topography main direction.........','GFP_DPAT ',GFP_DPAT )
  CALL PRINT_GFP('Index of vegetation...............','GFP_IVEG ',GFP_IVEG )
  CALL PRINT_GFP('Stomatal minimum resistance.......','GFP_RSMIN',GFP_RSMIN)
  CALL PRINT_GFP('Percentage of clay in soil........','GFP_ARG  ',GFP_ARG  )
  CALL PRINT_GFP('Percentage of sand in soil........','GFP_SAB  ',GFP_SAB  )
  CALL PRINT_GFP('Soil depth........................','GFP_D2   ',GFP_D2   )
  CALL PRINT_GFP('Leaf area index...................','GFP_LAI  ',GFP_LAI  )
  CALL PRINT_GFP('Resist. to evapotranspir..........','GFP_HV   ',GFP_HV   )
  CALL PRINT_GFP('Heat roughness length (*g)........','GFP_Z0H  ',GFP_Z0H  )
  CALL PRINT_GFP('Interception content..............','GFP_IC   ',GFP_IC   )
  CALL PRINT_GFP('Surface snow albedo...............','GFP_ALSN ',GFP_ALSN )
  CALL PRINT_GFP('Surface snow density..............','GFP_SNDE ',GFP_SNDE )
  CALL PRINT_GFP('Surf. albedo for non snowed areas.','GFP_BAAL ',GFP_BAAL )
  CALL PRINT_GFP('Surf. albedo for bare ground......','GFP_ALS  ',GFP_ALS  )
  CALL PRINT_GFP('Surf. albedo for vegetation.......','GFP_ALV  ',GFP_ALV  )
  CALL PRINT_GFP('Frozen deep soil wetness..........','GFP_FDSW ',GFP_FDSW )
  CALL PRINT_GFP('Frozen surface soil wetness.......','GFP_FSSW ',GFP_FSSW )
  CALL PRINT_GFP('Surface relative moisture.........','GFP_PSRHU',GFP_PSRHU)
  CALL PRINT_GFP('Anisotropy vector/U-momentum......','GFP_PADOU',GFP_PADOU)
  CALL PRINT_GFP('Anisotropy vector/V-momentum......','GFP_PADOV',GFP_PADOV)
  CALL PRINT_GFP('Analysed RMS of PHI (CANARI)......','GFP_PCAAG',GFP_PCAAG)
  CALL PRINT_GFP('Forecasted RMS of PHI (CANARI)....','GFP_PCAPG',GFP_PCAPG)
  CALL PRINT_GFP('Interpolated dynamic surf. g*Z0...','GFP_IDZ0 ',GFP_IDZ0 )
  CALL PRINT_GFP('Interpolated thermal surf. g*Z0...','GFP_ITZ0 ',GFP_ITZ0 )
  CALL PRINT_GFP('Maximum proportion of vegetation..','GFP_PVGMX',GFP_PVGMX)
  CALL PRINT_GFP('Vegetation roughness length (*g)..','GFP_Z0V  ',GFP_Z0V  )
  CALL PRINT_GFP('Proportion of urbanisation........','GFP_PURB ',GFP_PURB )
  CALL PRINT_GFP('Maximum soil depth................','GFP_D2MX ',GFP_D2MX )
  CALL PRINT_GFP('Marine aerosols...................','GFP_ASEA ',GFP_ASEA )
  CALL PRINT_GFP('Continental aerosols..............','GFP_ALAN ',GFP_ALAN )
  CALL PRINT_GFP('Carbone aerosols..................','GFP_ASOO ',GFP_ASOO )
  CALL PRINT_GFP('Desert aerosols...................','GFP_ADES ',GFP_ADES )
  CALL PRINT_GFP('Sulfate aerosols..................','GFP_ASUL ',GFP_ASUL )
  CALL PRINT_GFP('Volcano aerosols..................','GFP_AVOL ',GFP_AVOL )
  CALL PRINT_GFP('First ozone profile (A)...........','GFP_O3A  ',GFP_O3A  )
  CALL PRINT_GFP('Second ozone profile (B)..........','GFP_O3B  ',GFP_O3B  )
  CALL PRINT_GFP('Third ozone profile (C)...........','GFP_O3C  ',GFP_O3C  )
  CALL PRINT_GFP('Vertically-integr. mass divergence','GFP_VIMD ',GFP_VIMD )

  DO JVAR=1,JPOSVX2
    WRITE(CLTEXT,FMT='(A14,I2.2,A9)') 'Extra field n ',JVAR,'.........'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') ' GFP_VX2(',JVAR,')'
    CALL PRINT_GFP(CLTEXT,CLVARN,GFP_VX2(JVAR))
    IF (JVAR == ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSVX2  
      EXIT
    ENDIF
  ENDDO
  DO JVAR=1,JPOSFSU
    WRITE(CLTEXT,FMT='(A14,I2.2,A9)') 'Free field nr ',JVAR,'.........'
    WRITE(CLVARN,FMT='(A9,I2.2,A1)') ' GFP_FSU(',JVAR,')'
    CALL PRINT_GFP(CLTEXT,CLVARN,GFP_FSU(JVAR))
    IF (JVAR == ILIMIT) THEN
      WRITE(UNIT=NULOUT, &
       & FMT='(29X,''(truncated list - '',I2,'' variables)'')') JPOSFSU  
      EXIT
    ENDIF
  ENDDO

  CALL PRINT_GFP('WIND GUST 10 M  ..................','GFP_10FG ',GFP_10FG )
  CALL PRINT_GFP('WIND GUST 10 M SINCE LAST 6 HOURS.','GFP_10FG6',GFP_10FG6)
  CALL PRINT_GFP('10M.UWIND       ..................','GFP_10U  ',GFP_10U  )
  CALL PRINT_GFP('10M.VWIND       ..................','GFP_10V  ',GFP_10V  )
  CALL PRINT_GFP('100M.UWIND      ..................','GFP_100U ',GFP_100U )
  CALL PRINT_GFP('100M.VWIND      ..................','GFP_100V ',GFP_100V )
  CALL PRINT_GFP('FRICTION VELOCITY      ...........','GFP_ZUST ',GFP_ZUST )
  CALL PRINT_GFP('10M.NEUTRAL UWIND      ...........','GFP_10NU ',GFP_10NU )
  CALL PRINT_GFP('10M.NEUTRAL VWIND      ...........','GFP_10NV ',GFP_10NV )
  CALL PRINT_GFP('2M.DEWPOINT     ..................','GFP_2D   ',GFP_2D   )
  CALL PRINT_GFP('2M.TEMPERATURE  ..................','GFP_2T   ',GFP_2T   )
  CALL PRINT_GFP('ALBEDO          ..................','GFP_ALB  ',GFP_ALB  )
  CALL PRINT_GFP('MODIS Albedo UVis parallel rad....','GFP_ALUVP',GFP_ALUVP)
  CALL PRINT_GFP('MODIS Albedo UVis diffuse rad.....','GFP_ALUVD',GFP_ALUVD)
  CALL PRINT_GFP('MODIS Albedo N-IR parallel rad....','GFP_ALNIP',GFP_ALNIP)
  CALL PRINT_GFP('MODIS Albedo N-IR diffuse rad.....','GFP_ALNID',GFP_ALNID)
!--
  CALL PRINT_GFP('Dust emission potential...........','GFP_AERDEP',GFP_AERDEP)
  CALL PRINT_GFP('Lifting Threshold Speed...........','GFP_AERLTS',GFP_AERLTS)
  CALL PRINT_GFP('Soil Clay Content.................','GFP_AERSCC',GFP_AERSCC)

  CALL PRINT_GFP('Black Carbon biogenic flux........','GFP_BCBF ',GFP_BCBF )
  CALL PRINT_GFP('Black Carbon fossil fuel flux.....','GFP_BCFF ',GFP_BCFF )
  CALL PRINT_GFP('Black Carbon GFED flux............','GFP_BCGF ',GFP_BCGF )
  CALL PRINT_GFP('Organic matter biogenic flux......','GFP_OMBF ',GFP_OMBF )
  CALL PRINT_GFP('Organic matter fossil fuel flux...','GFP_OMFF ',GFP_OMFF )
  CALL PRINT_GFP('Organic matter GFED flux..........','GFP_OMGF ',GFP_OMGF )
  CALL PRINT_GFP('Sulphate Low-level emission flux..','GFP_SO2L ',GFP_SO2L )
  CALL PRINT_GFP('Sulphate High-level emission flux.','GFP_SO2H ',GFP_SO2H )
  CALL PRINT_GFP('Sulphate GFED flux................','GFP_SOGF ',GFP_SOGF )
  CALL PRINT_GFP('Volcanic Continuous emission SO2..','GFP_VOLC ',GFP_VOLC )
  CALL PRINT_GFP('Volcanic Explosive emission SO2...','GFP_VOLE ',GFP_VOLE )
  CALL PRINT_GFP('Secondary organic matter..........','GFP_SOA  ',GFP_SOA  )
  DO JVAR=1,JPOSGRG
    WRITE(CLTEXU,FMT='(A24,I2.2,A8)') 'Surf flux of GRG var nr ',JVAR,'........'
    CALL PRINT_GFP(CLTEXU,'GFP_GRGFLX',GFP_GRGFLX(JVAR) )
  ENDDO
  DO JVAR=1,JPOSTRAC
    WRITE(CLTEXU,FMT='(A25,I2.2,A7)') 'Surf flux of TRAC var nr ',JVAR,'.......'
    CALL PRINT_GFP(CLTEXU,'GFP_TRACFLX',GFP_TRACFLX(JVAR) )
  ENDDO
!-- 
  CALL PRINT_GFP('ANGLE.SUB.SOROG ..................','GFP_ANOR ',GFP_ANOR )
  CALL PRINT_GFP('SNOW ALBEDO     ..................','GFP_ASN  ',GFP_ASN  )
  CALL PRINT_GFP('PBL.DISSIP.     ..................','GFP_BLD  ',GFP_BLD  )
  CALL PRINT_GFP('BOUND.LAY.HEIGHT..................','GFP_BLH  ',GFP_BLH  )
  CALL PRINT_GFP('BUDGET VALUES   ..................','GFP_BV   ',GFP_BV   )
  CALL PRINT_GFP('CLOUD BASE LEVEL..................','GFP_CBASE',GFP_CBASE)
  CALL PRINT_GFP('CONV.CC         ..................','GFP_CCC  ',GFP_CCC  )
  CALL PRINT_GFP('CHARNOCK.PARAM  ..................','GFP_CHAR ',GFP_CHAR )
  CALL PRINT_GFP('SEA ICE COVER   ..................','GFP_CI   ',GFP_CI   )
  CALL PRINT_GFP('CONV.PRECIP.    ..................','GFP_CP   ',GFP_CP   )
  CALL PRINT_GFP('CONV.SNOWFALL   ..................','GFP_CSF  ',GFP_CSF  )
  CALL PRINT_GFP('HIGH VEG. COVER ..................','GFP_CVH  ',GFP_CVH  )
  CALL PRINT_GFP('LOW VEG. COVER  ..................','GFP_CVL  ',GFP_CVL  )
  CALL PRINT_GFP('LOW VEG. LAI    ..................','GFP_LAIL ',GFP_LAIL ) 
  CALL PRINT_GFP('HIGH VEG. LAI   ..................','GFP_LAIH ',GFP_LAIH ) 
  CALL PRINT_GFP('EVAPORATION     ..................','GFP_E    ',GFP_E    )
  CALL PRINT_GFP('EVA. SNOW       ..................','GFP_ES   ',GFP_ES   )
  CALL PRINT_GFP('U-STRESS        ..................','GFP_EWSS ',GFP_EWSS )
  CALL PRINT_GFP('EVA. SNOW       ..................','GFP_ES   ',GFP_ES   )
  CALL PRINT_GFP('U-STRESS        ..................','GFP_EWSS ',GFP_EWSS )
  CALL PRINT_GFP('GRAV.WAVE.DISSIP..................','GFP_GWD  ',GFP_GWD  )
  CALL PRINT_GFP('HIGH.CC         ..................','GFP_HCC  ',GFP_HCC  )
  CALL PRINT_GFP('INST.S.MOI.FLUX ..................','GFP_IE   ',GFP_IE   )
  CALL PRINT_GFP('INST.X-SURF.ST. ..................','GFP_IEWSS',GFP_IEWSS)
  CALL PRINT_GFP('INST.X-SURF.ST. ..................','GFP_IEWSS',GFP_IEWSS)
  CALL PRINT_GFP('INST.Y-SURF.ST. ..................','GFP_INSSS',GFP_INSSS)
  CALL PRINT_GFP('ANISO.SUB.SOROG ..................','GFP_ISOR ',GFP_ISOR )
  CALL PRINT_GFP('INST.S.HEAT.FLUX..................','GFP_ISSHF',GFP_ISSHF)
  CALL PRINT_GFP('ICE SURF.TEMP. 1..................','GFP_ISTL1',GFP_ISTL1)
  CALL PRINT_GFP('ICE SURF.TEMP. 2..................','GFP_ISTL2',GFP_ISTL2)
  CALL PRINT_GFP('ICE SURF.TEMP. 3..................','GFP_ISTL3',GFP_ISTL3)
  CALL PRINT_GFP('ICE SURF.TEMP. 4..................','GFP_ISTL4',GFP_ISTL4)
  CALL PRINT_GFP('LOW.CC          ..................','GFP_LCC  ',GFP_LCC  )
  CALL PRINT_GFP('LAT.GRAV.WAVE.ST..................','GFP_LGWS ',GFP_LGWS )
  CALL PRINT_GFP('LARGE.SCALE.SNOW..................','GFP_LSF  ',GFP_LSF  )
  CALL PRINT_GFP('LARGESCAPRECIP. ..................','GFP_LSP  ',GFP_LSP  )
  CALL PRINT_GFP('LSC PREC. FRACT...................','GFP_LSPF ',GFP_LSPF )
  CALL PRINT_GFP('LSC PREC. FRACT...................','GFP_LSPF ',GFP_LSPF )
  CALL PRINT_GFP('LOG.SURF.ROUGH  ..................','GFP_LSRH ',GFP_LSRH )
  CALL PRINT_GFP('LOG.S.ROUGH.HEAT..................','GFP_LZ0H ',GFP_LZ0H )
  CALL PRINT_GFP('MEDIUM.CC       ..................','GFP_MCC  ',GFP_MCC  )
  CALL PRINT_GFP('MER.GRAV.WAVE.ST..................','GFP_MGWS ',GFP_MGWS )
  CALL PRINT_GFP('MIN.TEMP.       ..................','GFP_MN2T ',GFP_MN2T )
  CALL PRINT_GFP('MIN.TEMP. SINCE LAST 6 HOURS......','GFP_MN2T6',GFP_MN2T6)
  CALL PRINT_GFP('MSL             ..................','GFP_MSLD ',GFP_MSLD )
  CALL PRINT_GFP('SURFACE PRESSURE..................','GFP_SP   ',GFP_SP   )
  CALL PRINT_GFP('MAX.TEMP.       ..................','GFP_MX2T ',GFP_MX2T )
  CALL PRINT_GFP('MAX.TEMP. SINCE LAST 6 HOURS......','GFP_MX2T6',GFP_MX2T6)
  CALL PRINT_GFP('V-STRESS        ..................','GFP_NSSS ',GFP_NSSS )
  CALL PRINT_GFP('RUNOFF          ..................','GFP_RO   ',GFP_RO   )
  CALL PRINT_GFP('SURFACE RUNOFF  ..................','GFP_SRO  ',GFP_SRO  )
  CALL PRINT_GFP('SUB-SURFACE RUNOFF................','GFP_SSRO ',GFP_SSRO )
  CALL PRINT_GFP('SNOW DENSITY    ..................','GFP_RSN  ',GFP_RSN  )
  CALL PRINT_GFP('SNOWFALL        ..................','GFP_SF   ',GFP_SF   )
  CALL PRINT_GFP('SKINTEMPERATURE ..................','GFP_SKT  ',GFP_SKT  )
  CALL PRINT_GFP('S.L.HEAT.FLUX.  ..................','GFP_SLHF ',GFP_SLHF )
  CALL PRINT_GFP('SLOPE.SUB.SOROG ..................','GFP_SLOR ',GFP_SLOR )
  CALL PRINT_GFP('SLOPE.SUB.SOROG ..................','GFP_SLOR ',GFP_SLOR )
  CALL PRINT_GFP('SNOW MELT       ..................','GFP_SMLT ',GFP_SMLT )
  CALL PRINT_GFP('SKINRESERV.EAU  ..................','GFP_SRC  ',GFP_SRC  )
  CALL PRINT_GFP('S.S.HEAT.FLUX.  ..................','GFP_SSHF ',GFP_SSHF )
  CALL PRINT_GFP('SURF SOLAR CLEAR..................','GFP_SSRC ',GFP_SSRC )
  CALL PRINT_GFP('S.SOLAR.RAD.DOWN..................','GFP_SSRD ',GFP_SSRD )
  CALL PRINT_GFP('SEA SURF. TEMP. ..................','GFP_SST  ',GFP_SST  )
  CALL PRINT_GFP('OCEAN U-CURRENT ..................','GFP_UCUR ',GFP_UCUR )
  CALL PRINT_GFP('OCEAN V-CURRENT ..................','GFP_VCUR ',GFP_VCUR )
  CALL PRINT_GFP('LEV1TEMPERATURE ..................','GFP_STL1 ',GFP_STL1 )
  CALL PRINT_GFP('LEV2TEMPERATURE ..................','GFP_STL2 ',GFP_STL2 )
  CALL PRINT_GFP('LEV3TEMPERATURE ..................','GFP_STL3 ',GFP_STL3 )
  CALL PRINT_GFP('LEV4TEMPERATURE ..................','GFP_STL4 ',GFP_STL4 )
  CALL PRINT_GFP('S.THERMAL.RAD.  ..................','GFP_STR  ',GFP_STR  )
  CALL PRINT_GFP('SURF THERM CLEAR..................','GFP_STRC ',GFP_STRC )
  CALL PRINT_GFP('S.THERM.RAD.DOWN..................','GFP_STRD ',GFP_STRD )
  CALL PRINT_GFP('SUNSHI. DURATION..................','GFP_SUND ',GFP_SUND )
  CALL PRINT_GFP('LEV1RESERV.EAU  ..................','GFP_SWL1 ',GFP_SWL1 )
  CALL PRINT_GFP('LEV2RESERV.EAU  ..................','GFP_SWL2 ',GFP_SWL2 )
  CALL PRINT_GFP('LEV3RESERV.EAU  ..................','GFP_SWL3 ',GFP_SWL3 )
  CALL PRINT_GFP('LEV4RESERV.EAU  ..................','GFP_SWL4 ',GFP_SWL4 )
  CALL PRINT_GFP('TOTAL.CC        ..................','GFP_TCC  ',GFP_TCC  )
  CALL PRINT_GFP('TOT.COL.OZON    ..................','GFP_TCO3 ',GFP_TCO3 )
  CALL PRINT_GFP('HORIZ.VISIBILITY..................','GFP_VISIH',GFP_VISIH)
  CALL PRINT_GFP('ZERO DEG.LEVEL  ..................','GFP_0DEGL',GFP_0DEGL)
  DO JVAR=1,JPOSGHG
    WRITE(CLTEXU,FMT='(A24,I2.2,A8)') 'Total column GHG var nr ',JVAR,'........'
    CALL PRINT_GFP(CLTEXU,'GFP_TCGHG',GFP_TCGHG(JVAR) )
  ENDDO
  DO JVAR=1,JPOSTRAC
    WRITE(CLTEXU,FMT='(A25,I2.2,A7)') 'Total column TRAC var nr ',JVAR,'.......'
    CALL PRINT_GFP(CLTEXU,'GFP_TCTRAC',GFP_TCTRAC(JVAR) )
  ENDDO
  DO JVAR=1,JPOSGRG
    WRITE(CLTEXU,FMT='(A24,I2.2,A8)') 'Total column GRG var nr ',JVAR,'........'
    CALL PRINT_GFP(CLTEXU,'GFP_TCGRG',GFP_TCGRG(JVAR) )
  ENDDO
  CALL PRINT_GFP('TOT.COL.WATER   ..................','GFP_TCW  ',GFP_TCW  )
  CALL PRINT_GFP('TOT.COL.WATVAPOU..................','GFP_TCWV ',GFP_TCWV )
  CALL PRINT_GFP('TOT.COL.LIQ.WAT ..................','GFP_TCLW ',GFP_TCLW )
  CALL PRINT_GFP('TOT.COL.ICE.WAT ..................','GFP_TCIW ',GFP_TCIW )
  CALL PRINT_GFP('TOT.COL.RAIN.WAT .................','GFP_TCRW ',GFP_TCRW )
  CALL PRINT_GFP('TOT.COL.SNOW.WAT .................','GFP_TCSW ',GFP_TCSW )
  CALL PRINT_GFP('TOTAL.PRECIP.   ..................','GFP_TP   ',GFP_TP   )
  CALL PRINT_GFP('TEMP.SNOWLAYER  ..................','GFP_TSN  ',GFP_TSN  )
  CALL PRINT_GFP('T.SOLAR.RAD.    ..................','GFP_TSR  ',GFP_TSR  )
  CALL PRINT_GFP('TOP SOLAR  CLEAR..................','GFP_TSRC ',GFP_TSRC )
  CALL PRINT_GFP('T.THERMAL.RAD.  ..................','GFP_TTR  ',GFP_TTR  )
  CALL PRINT_GFP('TOP THERMALCLEAR..................','GFP_TTRC ',GFP_TTRC )
  CALL PRINT_GFP('HIG VEG. TYPE   ..................','GFP_TVH  ',GFP_TVH  )
  CALL PRINT_GFP('LOW VEG. TYPE   ..................','GFP_TVL  ',GFP_TVL  )
  CALL PRINT_GFP('SURF.ROUGHNESS  ..................','GFP_Z0F  ',GFP_Z0F  )
  CALL PRINT_GFP('Conv.avail.potential energy.......','GFP_CAPE ',GFP_CAPE )

  WRITE(UNIT=NULOUT,FMT='(/,'' CUMULATED FLUXES :'')')

  CALL PRINT_GFP('Large Scale Precipitation.........','GFP_CLSP ',GFP_CLSP )
  CALL PRINT_GFP('Convective precipitation..........','GFP_CCP  ',GFP_CCP  )
  CALL PRINT_GFP('Large Scale Snow fall.............','GFP_CLSS ',GFP_CLSS )
  CALL PRINT_GFP('Convective Snow Fall..............','GFP_CCSF ',GFP_CCSF )
  CALL PRINT_GFP('Large Scale Graupel fall .........','GFP_CLSG ',GFP_CLSG )
  CALL PRINT_GFP('Convective Graupel Fall...........','GFP_CCSG ',GFP_CCSG )
  CALL PRINT_GFP('Large Scale Hail fall.............','GFP_CLSH ',GFP_CLSH )
  CALL PRINT_GFP('Convective Hail Fall..............','GFP_CCSH ',GFP_CCSH )
  CALL PRINT_GFP('U-stress..........................','GFP_CUSS ',GFP_CUSS )
  CALL PRINT_GFP('V-stress..........................','GFP_CVSS ',GFP_CVSS )
  CALL PRINT_GFP('Surface Sensible Heat Flux........','GFP_CSSH ',GFP_CSSH )
  CALL PRINT_GFP('Surface Latent Heat Flux..........','GFP_CSLH ',GFP_CSLH )
  CALL PRINT_GFP('Tendency of Surface pressure......','GFP_CTSP ',GFP_CTSP )
  CALL PRINT_GFP('Total Cloud cover.................','GFP_CTCC ',GFP_CTCC )
  CALL PRINT_GFP('Boundary Layer Dissipation........','GFP_CBLD ',GFP_CBLD )
  CALL PRINT_GFP('Surface solar radiation...........','GFP_CSSR ',GFP_CSSR )
  CALL PRINT_GFP('Surface Thermal radiation.........','GFP_CSTR ',GFP_CSTR )
  CALL PRINT_GFP('Top Solar radiation...............','GFP_CTSR ',GFP_CTSR )
  CALL PRINT_GFP('Top Thermal radiation.............','GFP_CTTR ',GFP_CTTR )
  CALL PRINT_GFP('Convective Cloud Cover............','GFP_CCCC ',GFP_CCCC )
  CALL PRINT_GFP('High Cloud Cover..................','GFP_CHCC ',GFP_CHCC )
  CALL PRINT_GFP('Medium Cloud Cover................','GFP_CMCC ',GFP_CMCC )
  CALL PRINT_GFP('Low Cloud Cover...................','GFP_CLCC ',GFP_CLCC )
  CALL PRINT_GFP('U-Gravity-Wave Stress.............','GFP_CUGW ',GFP_CUGW )
  CALL PRINT_GFP('V-Gravity-Wave Stress.............','GFP_CVGW ',GFP_CVGW )
  CALL PRINT_GFP('Water Evaporation.................','GFP_CE   ',GFP_CE   )
  CALL PRINT_GFP('Snow Sublimation..................','GFP_CS   ',GFP_CS   )
  CALL PRINT_GFP('Latent Heat Evaporation...........','GFP_CLHE ',GFP_CLHE )
  CALL PRINT_GFP('Latent Heat Sublimation...........','GFP_CLHS ',GFP_CLHS )
  CALL PRINT_GFP('Soil Moisture.....................','GFP_CWS  ',GFP_CWS  )
  CALL PRINT_GFP('Snow mass.........................','GFP_CSNS ',GFP_CSNS )
  CALL PRINT_GFP('Total precipitable water..........','GFP_CQTO ',GFP_CQTO )
  CALL PRINT_GFP('Total Ozone.......................','GFP_CTO3 ',GFP_CTO3 )
  CALL PRINT_GFP('Top mesospheric enthalpy..........','GFP_CTME ',GFP_CTME )
  CALL PRINT_GFP('Solid specific moisture...........','GFP_CICE ',GFP_CICE )
  CALL PRINT_GFP('Liquid specific moisture..........','GFP_CLI  ',GFP_CLI  )
  CALL PRINT_GFP('Contrib. of Convection to U.......','GFP_CCVU ',GFP_CCVU )
  CALL PRINT_GFP('Contrib. of Convection to V.......','GFP_CCVV ',GFP_CCVV )
  CALL PRINT_GFP('Contrib. of Convection to Q.......','GFP_CCVQ ',GFP_CCVQ )
  CALL PRINT_GFP('Contrib. of Convection to Cp.T....','GFP_CCVS ',GFP_CCVS )
  CALL PRINT_GFP('Contrib. of Turbulence to Q.......','GFP_CTUQ ',GFP_CTUQ )
  CALL PRINT_GFP('Contrib. of Turbulence to Cp.T....','GFP_CTUS ',GFP_CTUS )
  CALL PRINT_GFP('Clear sky shortwave radiation.....','GFP_CSOC ',GFP_CSOC )
  CALL PRINT_GFP('Clear sky longwave radiation......','GFP_CTHC ',GFP_CTHC )
  CALL PRINT_GFP('Surface parallel solar flux.......','GFP_CSOP ',GFP_CSOP )
  CALL PRINT_GFP('Top parallel solar flux...........','GFP_CTOP ',GFP_CTOP )
  CALL PRINT_GFP('Surface down solar flux...........','GFP_CSOD ',GFP_CSOD )
  CALL PRINT_GFP('Surface down thermic flux.........','GFP_CTHD ',GFP_CTHD )
  CALL PRINT_GFP('melt snow.........................','GFP_CFON ',GFP_CFON )
  CALL PRINT_GFP('flux de chaleur dans le sol.......','GFP_CCHS ',GFP_CCHS )
  CALL PRINT_GFP('flux d eau dans le sol............','GFP_CEAS ',GFP_CEAS )
  CALL PRINT_GFP('Surf. water content run-off.......','GFP_CSRU ',GFP_CSRU )
  CALL PRINT_GFP('Deep soil water content run-off...','GFP_CDRU ',GFP_CDRU )
  CALL PRINT_GFP('Interception water content run-off','GFP_CIRU ',GFP_CIRU )
  CALL PRINT_GFP('Evapotranspiration................','GFP_CETP ',GFP_CETP )
  CALL PRINT_GFP('Transpiration.....................','GFP_CTP  ',GFP_CTP  )
  CALL PRINT_GFP('Surface moon radiation............','GFP_CSMR ',GFP_CSMR )
  CALL PRINT_GFP('Top clear sky shortwave radiation.','GFP_CTSOC',GFP_CTSOC)
  CALL PRINT_GFP('Top clear sky longwave radiation..','GFP_CTTHC',GFP_CTTHC)
  CALL PRINT_GFP('Duration of total precipitations..','GFP_CDUTP',GFP_CDUTP)
  CALL PRINT_GFP('Surface PARadiation...............','GFP_SPAR ',GFP_SPAR )
  CALL PRINT_GFP('Surface UV-B radiation............','GFP_SUVB ',GFP_SUVB )
  CALL PRINT_GFP('Surface clear-sky PARadiation.....','GFP_SPARC',GFP_SPARC)
  CALL PRINT_GFP('TOA incident solar radiation......','GFP_STINC',GFP_STINC)
  CALL PRINT_GFP('Surf.total sky direct SW radiation','GFP_SFDIR',GFP_SFDIR)
  CALL PRINT_GFP('Surf.clear-sky direct SW radiation','GFP_SCDIR',GFP_SCDIR)

  WRITE(UNIT=NULOUT,FMT='(/,'' INSTANTANEOUS DIAGNOSTICS :'')')

  CALL PRINT_GFP('Total Cloud cover.................','GFP_XTCC ',GFP_XTCC )
  CALL PRINT_GFP('U-component of wind at PBL height.','GFP_X10U ',GFP_X10U )
  CALL PRINT_GFP('V-component of wind at PBL height.','GFP_X10V ',GFP_X10V )
  CALL PRINT_GFP('Temperature at PBL height.........','GFP_X2T  ',GFP_X2T  )
  CALL PRINT_GFP('Specific Humidity at PBL height...','GFP_X2SH ',GFP_X2SH )
  CALL PRINT_GFP('Relative Humidity at PBL height...','GFP_X2RH ',GFP_X2RH )
  CALL PRINT_GFP('Convective Cloud Cover............','GFP_XCCC ',GFP_XCCC )
  CALL PRINT_GFP('High Cloud Cover..................','GFP_XHCC ',GFP_XHCC )
  CALL PRINT_GFP('Medium Cloud Cover................','GFP_XMCC ',GFP_XMCC )
  CALL PRINT_GFP('Low Cloud Cover...................','GFP_XLCC ',GFP_XLCC )
  CALL PRINT_GFP('Maximum temperature at PBL height.','GFP_XX2T ',GFP_XX2T )
  CALL PRINT_GFP('Minimum temperature at PBL height.','GFP_XN2T ',GFP_XN2T )
  CALL PRINT_GFP('Contribution of Convection to U...','GFP_XCVU ',GFP_XCVU )
  CALL PRINT_GFP('Contribution of Convection to V...','GFP_XCVV ',GFP_XCVV )
  CALL PRINT_GFP('Contribution of Convection to Q...','GFP_XCVQ ',GFP_XCVQ )
  CALL PRINT_GFP('Contribution of Convection to Cp.T','GFP_XCVS ',GFP_XCVS )
  CALL PRINT_GFP('Contribution of Turbulence to U...','GFP_XTUU ',GFP_XTUU )
  CALL PRINT_GFP('Contribution of Turbulence to V...','GFP_XTUV ',GFP_XTUV )
  CALL PRINT_GFP('Contribution of Turbulence to Q...','GFP_XTUQ ',GFP_XTUQ )
  CALL PRINT_GFP('Contribution of Turbulence to Cp.T','GFP_XTUS ',GFP_XTUS )
  CALL PRINT_GFP('Contribution of GWD to U..........','GFP_XGDU ',GFP_XGDU )
  CALL PRINT_GFP('Contribution of GWD to V..........','GFP_XGDV ',GFP_XGDV )
  CALL PRINT_GFP('Large Scale Precipitation.........','GFP_XLSP ',GFP_XLSP )
  CALL PRINT_GFP('Convective precipitation..........','GFP_XCP  ',GFP_CCP  )
  CALL PRINT_GFP('Large Scale Snow fall.............','GFP_XLSS ',GFP_XLSS )
  CALL PRINT_GFP('Convective Snow Fall..............','GFP_XCSF ',GFP_XCSF )
  CALL PRINT_GFP('Large Scale Graupel fall..........','GFP_XLSG ',GFP_XLSG )
  CALL PRINT_GFP('Convective Graupel Fall...........','GFP_XCSG ',GFP_XCSG )
  CALL PRINT_GFP('Large Scale Hail fall.............','GFP_XLSH ',GFP_XLSH )
  CALL PRINT_GFP('Convective Hail Fall..............','GFP_XCSH ',GFP_XCSH )
  CALL PRINT_GFP('Surface solar radiation...........','GFP_XSSR ',GFP_XSSR )
  CALL PRINT_GFP('Surface Thermal radiation.........','GFP_XSTR ',GFP_XSTR )
  CALL PRINT_GFP('Top Solar radiation...............','GFP_XTSR ',GFP_XTSR )
  CALL PRINT_GFP('Top Thermal radiation.............','GFP_XTTR ',GFP_XTTR )
  CALL PRINT_GFP('wind intensity at PBL height......','GFP_X10FF',GFP_X10FF)
  CALL PRINT_GFP('CAPE from the model...............','GFP_XCAPE',GFP_XCAPE)
  CALL PRINT_GFP('MOCON from the model..............','GFP_XMOCO',GFP_XMOCO)
  CALL PRINT_GFP('Height of the PBL.................','GFP_XCLPH',GFP_XCLPH)
  CALL PRINT_GFP('Gusts from of the model...........','GFP_XGUST',GFP_XGUST)
  CALL PRINT_GFP('U-momentum of gusts from the model','GFP_XUGST',GFP_XUGST)
  CALL PRINT_GFP('V-momentum of gusts from the model','GFP_XVGST',GFP_XVGST)
  CALL PRINT_GFP('Max. rel. moisture at PBL height..','GFP_XX2HU',GFP_XX2HU)
  CALL PRINT_GFP('Min. rel. moisture at PBL height..','GFP_XN2HU',GFP_XN2HU)
  CALL PRINT_GFP('Increment to mini temperature.....','GFP_INCTN',GFP_INCTN)
  CALL PRINT_GFP('Increment to maxi temperature.....','GFP_INCTX',GFP_INCTX)
  CALL PRINT_GFP('Increment to mini rel. moisture...','GFP_INCHN',GFP_INCHN)
  CALL PRINT_GFP('Increment to maxi rel. moisture...','GFP_INCHX',GFP_INCHX)
  CALL PRINT_GFP('Thetaprimwprim surface flux.......','GFP_XTHW',GFP_XTHW)
  CALL PRINT_GFP('Min. Refractivity Gradient in TPL.','GFP_DNDZN',GFP_DNDZN)
  CALL PRINT_GFP('Mean Refractivity Gradient in TPL.','GFP_DNDZA',GFP_DNDZA)
  CALL PRINT_GFP('Duct Base Height..................','GFP_DCTB ',GFP_DCTB )
  CALL PRINT_GFP('Trapping Layer Base Height........','GFP_TPLB ',GFP_TPLB )
  CALL PRINT_GFP('Trapping Layer Top Height.........','GFP_TPLT ',GFP_TPLT )
ENDIF

!*       2. Control duplicated names/gribcodes
!           ----------------------------------

IERR=0
IF (LARPEGEF) THEN
! We should control that all the FA names are differents
  ISIZE=SIZE(TFP_DYNDS)
  DO J=1,ISIZE
    DO JVAR=J+1,ISIZE
      IF (TFP_DYNDS(J)%CLNAME /= ' ') THEN
        IF (TFP_DYNDS(J)%CLNAME==TFP_DYNDS(JVAR)%CLNAME) THEN
          IERR=IERR+1
          WRITE(NULOUT,*) 'SAME *FA* NAME DETECTED FOR TFP_*%ICOD = ',J, &
           & ' AND ',JVAR, ' : ',TFP_DYNDS(J)%CLNAME  
        ENDIF
      ENDIF
    ENDDO
  ENDDO
  ISIZE=SIZE(GFP_PHYDS)
  DO J=1,ISIZE
    DO JVAR=J+1,ISIZE
      IF (GFP_PHYDS(J)%CLNAME /= ' ') THEN
        IF (GFP_PHYDS(J)%CLNAME==GFP_PHYDS(JVAR)%CLNAME) THEN
          IERR=IERR+1
          WRITE(NULOUT,*) 'SAME *FA* NAME DETECTED FOR GFP_*%ICOD = ',J, &
           & ' AND ',JVAR, ' : ',GFP_PHYDS(J)%CLNAME  
        ENDIF
      ENDIF
    ENDDO
  ENDDO
ELSE
! We should control that all the grib codes (if valid) are different for upper
! air field on one side, and surface fields on the other side.
  ISIZE=SIZE(TFP_DYNDS)
  DO J=1,ISIZE
    DO JVAR=J+1,ISIZE
      IF (TFP_DYNDS(J)%IGRIB > 0) THEN
        IF (TFP_DYNDS(J)%IGRIB==TFP_DYNDS(JVAR)%IGRIB) THEN
          SELECT CASE (TFP_DYNDS(J)%LLSRF)
          CASE (.TRUE.)
            IF (TFP_DYNDS(JVAR)%LLSRF) THEN
              IERR=IERR+1
              WRITE(NULOUT,*) 'SAME GRIB CODE DETECTED FOR TFP_*%ICOD = ', &
               & J, ' AND ',JVAR, ' : ',TFP_DYNDS(J)%IGRIB  
            ENDIF 
          CASE (.FALSE.)
            IF (.NOT.TFP_DYNDS(JVAR)%LLSRF) THEN
              IERR=IERR+1
              WRITE(NULOUT,*) 'SAME GRIB CODE DETECTED FOR TFP_*%ICOD = ', &
               & J, ' AND ',JVAR, ' : ',TFP_DYNDS(J)%IGRIB  
            ENDIF
          END SELECT
        ENDIF
      ENDIF
    ENDDO
  ENDDO
  ISIZE=SIZE(GFP_PHYDS)
  DO J=1,ISIZE
    DO JVAR=J+1,ISIZE
      IF (GFP_PHYDS(J)%IGRIB > 0) THEN
        IF (GFP_PHYDS(J)%IGRIB==GFP_PHYDS(JVAR)%IGRIB) THEN
          SELECT CASE (GFP_PHYDS(J)%LLSRF)
          CASE (.TRUE.)
            IF (GFP_PHYDS(JVAR)%LLSRF) THEN
              IERR=IERR+1
              WRITE(NULOUT,*) 'SAME GRIB CODE DETECTED FOR GFP_*%ICOD = ', &
               & J, ' AND ',JVAR, ' : ',GFP_PHYDS(J)%IGRIB  
            ENDIF
          CASE (.FALSE.)
            IF (.NOT.GFP_PHYDS(JVAR)%LLSRF) THEN
              IERR=IERR+1
              WRITE(NULOUT,*) 'SAME GRIB CODE DETECTED FOR GFP_*%ICOD = ', &
               & J, ' AND ',JVAR, ' : ',GFP_PHYDS(J)%IGRIB  
            ENDIF
          END SELECT 
        ENDIF
      ENDIF
    ENDDO
  ENDDO
ENDIF
IF (IERR /= 0 .AND. LFPOS) THEN
  CALL ABOR1('SUAFN3 : ABOR1 CALLED')
ENDIF

!------------------------------------------------------------------------------
IF (LHOOK) CALL DR_HOOK('SUAFN3',1,ZHOOK_HANDLE)

!------------------------------------------------------------------------------

CONTAINS

SUBROUTINE PRINT_TFP(CDTEXT,CDNAME,YD)

! This tiny subroutine enables any sequence of the type.

CHARACTER(LEN=*),   OPTIONAL, INTENT(IN) :: CDTEXT
CHARACTER(LEN=*),   OPTIONAL, INTENT(IN) :: CDNAME
TYPE(FULLPOS_TYPE), OPTIONAL, INTENT(IN) :: YD
REAL(KIND=JPRB) :: ZHOOK_HANDLE

IF (LHOOK) CALL DR_HOOK('SUAFN3:PRINT_TFP',0,ZHOOK_HANDLE)
IF (LARPEGEF) THEN
  IF (PRESENT(CDTEXT).AND.PRESENT(CDNAME).AND.PRESENT(YD)) THEN
    WRITE(NULOUT,FMT='(1X,A25,'' : '',A12,1X,A16,3X,I2,5X,I2,4X,I4,4X,A8,  &
     & L1,4X,I2,2X,F4.1,2X,A10)')                                          &
     & CDTEXT,CDNAME, YD%CLNAME, YD%IBITS, YD%INTER, YD%IORDR, &
     & YD%CLPAIR, YD%LLGP, YD%ISF, YD%ZFK, YD%CLNIL  
  ELSE
    WRITE(UNIT=NULOUT,FMT='(3X,''Description'',12X,'' : '','' TYPE NAME  '', &
     & 1X,''    %CLNAME     '',1X,''%IBITS'',1X,''%INTER'',1X,''%IORDR'',1X, &
     & ''%CLPAIR'',1X,''%LLGP'',1X,''%ISF'',1X,''%ZFK'',1X,''%CLNIL'')')  
  ENDIF
ELSE
  IF (PRESENT(CDTEXT).AND.PRESENT(CDNAME).AND.PRESENT(YD)) THEN
    IF (YD%IGRIB > 0) THEN
      WRITE(NULOUT,FMT='(1X,A25,'' : '',A12,1X,I6,3X,I2,5X,I2,4X,I4,4X,A8,  &
       & L1,4X,I2,2X,F4.1,2X,A10)')                                         &
       & CDTEXT,CDNAME, YD%IGRIB, YD%IBITS, YD%INTER, YD%IORDR, &
       & YD%CLPAIR, YD%LLGP, YD%ISF, YD%ZFK, YD%CLNIL  
    ENDIF
  ELSE
    WRITE(UNIT=NULOUT,FMT='(3X,''Description'',12X,'' : '','' TYPE NAME  '', &
     & 1X,''%IGRIB'',1X,''%IBITS'',1X,''%INTER'',1X,''%IORDR'',1X,           &
     & ''%CLPAIR'',1X,''%LLGP'',1X,''%ISF'',1X,''%ZFK'',1X,''%CLNIL'')')  
  ENDIF
ENDIF
IF (LHOOK) CALL DR_HOOK('SUAFN3:PRINT_TFP',1,ZHOOK_HANDLE)

END SUBROUTINE PRINT_TFP

SUBROUTINE PRINT_GFP(CDTEXT,CDNAME,YD)

! This tiny subroutine enables any sequence of the type.

CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: CDTEXT
CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: CDNAME
TYPE(FPDSPHY),    OPTIONAL, INTENT(IN) :: YD
REAL(KIND=JPRB) :: ZHOOK_HANDLE

IF (LHOOK) CALL DR_HOOK('SUAFN3:PRINT_GFP',0,ZHOOK_HANDLE)
IF (LARPEGEF) THEN
  IF (PRESENT(CDTEXT).AND.PRESENT(CDNAME).AND.PRESENT(YD)) THEN
    WRITE(NULOUT,FMT='(1X,A25,'' : '',A12,1X,A16,3X,I2,5X,I2,3X,I4,5X,A8,  &
     & 1X,I1,4X,I2,6X,L1,6X,L1)')                                          &
     & CDTEXT,CDNAME, YD%CLNAME, YD%IBITS, YD%INTER, YD%IORDR,             &
     & YD%CLPAIR, YD%IMASK, YD%IANO, YD%LLMON, YD%LLSRF  
  ELSE
    WRITE(UNIT=NULOUT,FMT='(3X,''Description'',12X,'' : '','' TYPE NAME  '', &
     & 1X,''    %CLNAME     '',1X,''%IBITS'',1X,''%INTER'',1X,''%IORDR'',1X, &
     & ''%CLPAIR'',1X,''%IMASK'',1X,''%IANO'',1X,''%LLMON'',1X,''%LLSRF'')')  
  ENDIF
ELSE
  IF (PRESENT(CDTEXT).AND.PRESENT(CDNAME).AND.PRESENT(YD)) THEN
    IF (YD%IGRIB > 0) THEN
      WRITE(NULOUT,FMT='(1X,A25,'' : '',A12,I6,4X,I2,5X,I2,3X,I4,5X,A8, &
       & 1X,I1,4X,I2,6X,L1,6X,L1)')                                     &
       & CDTEXT,CDNAME, YD%IGRIB, YD%IBITS, YD%INTER, YD%IORDR,         &
       & YD%CLPAIR, YD%IMASK, YD%IANO, YD%LLMON, YD%LLSRF  
    ENDIF
  ELSE
    WRITE(UNIT=NULOUT,FMT='(3X,''Description'',12X,'' : '','' TYPE NAME  '', &
     & 1X,''%IGRIB'',1X,''%IBITS'',1X,''%INTER'',1X,''%IORDR'',1X,           &
     & ''%CLPAIR'',1X,''%IMASK'',1X,''%IANO'',1X,''%LLMON'',1X,''%LLSRF'')')  
  ENDIF
ENDIF

IF (LHOOK) CALL DR_HOOK('SUAFN3:PRINT_GFP',1,ZHOOK_HANDLE)

END SUBROUTINE PRINT_GFP

END SUBROUTINE SUAFN3
