SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/writesurf_teb_gardenn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE WRITESURF_TEB_GARDEN_n(HPROGRAM,HPATCH)
00003 !     #####################################
00004 !
00005 !!****  *WRITESURF_TEB_GARDEN_n* - writes ISBA prognostic fields
00006 !!                        
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!      V. Masson   *Meteo France*      
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original    01/2003 
00032 !!      P. LeMoigne 12/2004 : correct dimensionning if more than 10 layers in
00033 !!                            the soil (diffusion version)
00034 !!      B. Decharme  2008    : Floodplains
00035 !!      B. Decharme  01/2009 : Optional Arpege deep soil temperature write
00036 !!      B. Decharme  09/2012 : suppress NWG_LAYER (parallelization problems)
00037 !-------------------------------------------------------------------------------
00038 !
00039 !*       0.    DECLARATIONS
00040 !              ------------
00041 USE MODD_TEB_VEG_n,    ONLY : CPHOTO, CRESPSL, NNBIOMASS
00042 
00043 USE MODD_TEB_GARDEN_n, ONLY : NGROUND_LAYER,                               &
00044                               XTG, XWG, XWGI, XWR, XLAI, TSNOW,            &
00045                               XRESA, XAN, XANFM, XLE, XANDAY,              &
00046                               XRESP_BIOMASS, XBIOMASS
00047 !
00048 USE MODD_SURF_PAR, ONLY : NUNDEF
00049 !
00050 USE MODI_WRITE_SURF
00051 USE MODI_WRITESURF_GR_SNOW
00052 USE MODD_DST_n
00053 USE MODD_DST_SURF
00054 !
00055 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00056 USE PARKIND1  ,ONLY : JPRB
00057 !
00058 IMPLICIT NONE
00059 !
00060 !*       0.1   Declarations of arguments
00061 !              -------------------------
00062 !
00063  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling
00064  CHARACTER(LEN=3),  INTENT(IN)  :: HPATCH   ! current teb patch
00065 !
00066 !*       0.2   Declarations of local variables
00067 !              -------------------------------
00068 !
00069 INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
00070  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00071  CHARACTER(LEN=100):: YCOMMENT       ! Comment string
00072  CHARACTER(LEN=14) :: YFORM          ! Writing format
00073  CHARACTER(LEN=4 ) :: YLVL
00074 !
00075 INTEGER :: JLAYER ! loop counter on soil layers
00076 !
00077 REAL, DIMENSION(:),ALLOCATABLE  :: ZWORK      ! 2D array to write data in file
00078 !
00079 INTEGER :: JNBIOMASS
00080 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00081 !
00082 !------------------------------------------------------------------------------
00083 !
00084 !*       2.     Prognostic fields:
00085 !               -----------------
00086 !
00087 IF (LHOOK) CALL DR_HOOK('WRITESURF_TEB_GARDEN_N',0,ZHOOK_HANDLE)
00088 ALLOCATE(ZWORK(SIZE(XTG,1)))
00089 !* soil temperatures
00090 !
00091 DO JLAYER=1,NGROUND_LAYER
00092   WRITE(YLVL,'(I2)') JLAYER
00093   YRECFM=HPATCH//'GD_TG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00094   YRECFM=ADJUSTL(YRECFM)
00095   YFORM='(A11,I1.1,A4)'
00096   IF (JLAYER >= 10)  YFORM='(A11,I2.2,A4)'
00097   WRITE(YCOMMENT,FMT=YFORM) 'X_Y_GD_TG',JLAYER,' (K)'
00098   ZWORK=XTG(:,JLAYER)
00099   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00100 END DO
00101 !
00102 !
00103 !* soil liquid water content
00104 !
00105 DO JLAYER=1,NGROUND_LAYER
00106   WRITE(YLVL,'(I2)') JLAYER
00107   YRECFM=HPATCH//'GD_WG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00108   YRECFM=ADJUSTL(YRECFM)
00109   YFORM='(A11,I1.1,A8)'
00110   IF (JLAYER >= 10)  YFORM='(A11,I2.2,A8)'
00111   WRITE(YCOMMENT,FMT=YFORM) 'X_Y_GD_WG',JLAYER,' (m3/m3)'
00112   ZWORK=XWG(:,JLAYER)
00113   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00114 END DO
00115 !
00116 !
00117 !* soil ice water content
00118 !
00119 DO JLAYER=1,NGROUND_LAYER
00120   WRITE(YLVL,'(I2)') JLAYER
00121   YRECFM=HPATCH//'GD_WGI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00122   YRECFM=ADJUSTL(YRECFM)
00123   YFORM='(A11,I1.1,A8)'
00124   IF (JLAYER >= 10)  YFORM='(A11,I2.2,A8)'
00125   WRITE(YCOMMENT,YFORM) 'X_Y_GD_WGI',JLAYER,' (m3/m3)'
00126   ZWORK=XWGI(:,JLAYER)
00127   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00128 END DO
00129 !
00130 DEALLOCATE(ZWORK)
00131 !
00132 !* water intercepted on leaves
00133 !
00134 YRECFM=HPATCH//'GD_WR'
00135 YRECFM=ADJUSTL(YRECFM)
00136 YCOMMENT='X_Y_GD_WR (kg/m2)'
00137  CALL WRITE_SURF(HPROGRAM,YRECFM,XWR(:),IRESP,HCOMMENT=YCOMMENT)
00138 !
00139 !* Leaf Area Index
00140 !
00141 IF (CPHOTO/='NON' .AND. CPHOTO/='AGS' .AND. CPHOTO/='AST') THEN
00142   YRECFM=HPATCH//'GD_LAI'
00143   YRECFM=ADJUSTL(YRECFM)
00144   YCOMMENT='X_Y_GD_LAI (m2/m2)'
00145  CALL WRITE_SURF(HPROGRAM,YRECFM,XLAI(:),IRESP,HCOMMENT=YCOMMENT)
00146 END IF
00147 !
00148 IF (CPHOTO=='NIT') THEN
00149   !
00150   DO JNBIOMASS=1,NNBIOMASS
00151     WRITE(YLVL,'(I1)') JNBIOMASS
00152     YRECFM=HPATCH//'GD_BIOMA'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00153     YFORM='(A11,I1.1,A8)'
00154     WRITE(YCOMMENT,FMT=YFORM) 'X_Y_BIOMASS',JNBIOMASS,' (kg/m2)'
00155     CALL WRITE_SURF(HPROGRAM,YRECFM,XBIOMASS(:,JNBIOMASS),IRESP,HCOMMENT=YCOMMENT)
00156   END DO
00157   !
00158   !
00159   DO JNBIOMASS=2,NNBIOMASS
00160     WRITE(YLVL,'(I1)') JNBIOMASS
00161     YRECFM=HPATCH//'GD_RESPI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00162     YFORM='(A16,I1.1,A10)'
00163     WRITE(YCOMMENT,FMT=YFORM) 'X_Y_RESP_BIOMASS',JNBIOMASS,' (kg/m2/s)'
00164     CALL WRITE_SURF(HPROGRAM,YRECFM,XRESP_BIOMASS(:,JNBIOMASS),IRESP,HCOMMENT=YCOMMENT)
00165   END DO
00166   !
00167 END IF
00168 !
00169 !* aerodynamical resistance
00170 !
00171 YRECFM=HPATCH//'GD_RES'
00172 YRECFM=ADJUSTL(YRECFM)
00173 YCOMMENT='X_Y_GD_RESA (s/m)'
00174  CALL WRITE_SURF(HPROGRAM,YRECFM,XRESA(:),IRESP,HCOMMENT=YCOMMENT)
00175 !
00176 !* snow mantel
00177 !
00178 YRECFM='GD'
00179  CALL WRITESURF_GR_SNOW(HPROGRAM,YRECFM,HPATCH,TSNOW)
00180 IF (LHOOK) CALL DR_HOOK('WRITESURF_TEB_GARDEN_N',1,ZHOOK_HANDLE)
00181 !
00182 !-------------------------------------------------------------------------------
00183 !
00184 END SUBROUTINE WRITESURF_TEB_GARDEN_n