SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/writesurf_teb_greenroofn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE WRITESURF_TEB_GREENROOF_n(HPROGRAM,HPATCH)
00003 !     #####################################
00004 !
00005 !!****  *WRITESURF_TEB_GREENROOF_n* - writes ISBA prognostic fields
00006 !!                        
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    Based on "writesurf_teb_gardenn" 
00015 !!
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!
00020 !!    IMPLICIT ARGUMENTS
00021 !!    ------------------
00022 !!
00023 !!    REFERENCE
00024 !!    ---------
00025 !!
00026 !!
00027 !!    AUTHOR
00028 !!    ------
00029 !!      A. Lemonsu & C. de Munck        
00030 !!
00031 !!    MODIFICATIONS
00032 !!    -------------
00033 !!      Original    07/2011 
00034 !-------------------------------------------------------------------------------
00035 !
00036 !*       0.    DECLARATIONS
00037 !              ------------
00038 !
00039 USE MODD_TEB_VEG_n,       ONLY : CPHOTO,CRESPSL, NNBIOMASS
00040 USE MODD_TEB_GREENROOF_n, ONLY : NLAYER_GR,                                    &
00041                                  XTG, XWG, XWGI, XWR, XTDEEP, XLAI,            &
00042                                  TSNOW,                                        &
00043                                  XRESA, XAN, XANFM, XLE, XANDAY,               &
00044                                  XRESP_BIOMASS, XBIOMASS
00045 !
00046 USE MODD_DIAG_TEB_GREENROOF_n, ONLY : XDRAIN,XRUNOFF
00047 !
00048 USE MODI_WRITE_SURF
00049 USE MODI_WRITESURF_GR_SNOW
00050 USE MODD_DST_n
00051 USE MODD_DST_SURF
00052 !
00053 !
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=30)                 :: 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                           :: IWORK          ! Work integer
00080 !
00081 INTEGER                           :: JSV, JNBIOMASS
00082 !
00083 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00084 !
00085 !------------------------------------------------------------------------------
00086 !
00087 !*       2.     Prognostic fields:
00088 !               -----------------
00089 !
00090 IF (LHOOK) CALL DR_HOOK('WRITESURF_TEB_GREENROOF_N',0,ZHOOK_HANDLE)
00091 ALLOCATE(ZWORK(SIZE(XTG,1)))
00092 !
00093 !
00094 !* soil temperatures
00095 !
00096 IWORK=NLAYER_GR
00097 !
00098 DO JLAYER=1,IWORK
00099   WRITE(YLVL,'(I2)') JLAYER
00100   YRECFM=HPATCH//'GR_TG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00101   YRECFM=ADJUSTL(YRECFM)
00102   YFORM='(A13,I1.1,A4)'
00103   IF (JLAYER >= 10)  YFORM='(A13,I2.2,A4)'
00104   WRITE(YCOMMENT,FMT=YFORM) 'X_Y_TWN_TG_GR',JLAYER,' (K)'
00105   ZWORK=XTG(:,JLAYER)
00106   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00107 END DO
00108 !
00109 !* soil liquid water content
00110 !
00111 DO JLAYER=1,NLAYER_GR
00112   WRITE(YLVL,'(I2)') JLAYER
00113   YRECFM=HPATCH//'GR_WG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00114   YRECFM=ADJUSTL(YRECFM)
00115   YFORM='(A13,I1.1,A8)'
00116   IF (JLAYER >= 10)  YFORM='(A13,I2.2,A8)'
00117   WRITE(YCOMMENT,FMT=YFORM) 'X_Y_TWN_WG_GR',JLAYER,' (m3/m3)'
00118   ZWORK=XWG(:,JLAYER)
00119   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00120 END DO
00121 !
00122 !
00123 !* soil ice water content
00124 !
00125 DO JLAYER=1,NLAYER_GR
00126   WRITE(YLVL,'(I2)') JLAYER
00127   YRECFM=HPATCH//'GR_WGI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00128   YRECFM=ADJUSTL(YRECFM)
00129   YFORM='(A14,I1.1,A8)'
00130   IF (JLAYER >= 10)  YFORM='(A14,I2.2,A8)'
00131   WRITE(YCOMMENT,YFORM) 'X_Y_GR_WGI',JLAYER,' (m3/m3)'
00132   ZWORK=XWGI(:,JLAYER)
00133   CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT)
00134 END DO
00135 !
00136 DEALLOCATE(ZWORK)
00137 ! 
00138 !* water intercepted on leaves
00139 !
00140 YRECFM=HPATCH//'GR_WR'
00141 YRECFM=ADJUSTL(YRECFM)
00142 YCOMMENT='X_Y_TWN_WR_GR (kg/m2)'
00143  CALL WRITE_SURF(HPROGRAM,YRECFM,XWR(:),IRESP,HCOMMENT=YCOMMENT)
00144 !
00145 !* Leaf Area Index
00146 !
00147 IF (CPHOTO/='NON' .AND. CPHOTO/='AGS' .AND. CPHOTO/='AST') THEN
00148   YRECFM=HPATCH//'GR_LAI'
00149   YRECFM=ADJUSTL(YRECFM)
00150   YCOMMENT='X_Y_GR_LAI (m2/m2)'
00151  CALL WRITE_SURF(HPROGRAM,YRECFM,XLAI(:),IRESP,HCOMMENT=YCOMMENT)
00152 END IF
00153 !
00154 !
00155 !* biomass
00156 !
00157 IF (CPHOTO=='NIT') THEN
00158   DO JNBIOMASS=1,NNBIOMASS
00159     WRITE(YLVL,'(I1)') JNBIOMASS
00160     YRECFM=HPATCH//'GR_BIOMA'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00161     YFORM='(A11,I1.1,A8)'
00162     WRITE(YCOMMENT,FMT=YFORM) 'X_Y_BIOMASS',JNBIOMASS,' (kg/m2)'
00163     CALL WRITE_SURF(HPROGRAM,YRECFM,XBIOMASS(:,JNBIOMASS),IRESP,HCOMMENT=YCOMMENT)
00164   END DO
00165   !
00166   !
00167   DO JNBIOMASS=2,NNBIOMASS
00168     WRITE(YLVL,'(I1)') JNBIOMASS
00169     YRECFM=HPATCH//'GR_RESPI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00170     YFORM='(A16,I1.1,A10)'
00171     WRITE(YCOMMENT,FMT=YFORM) 'X_Y_RESP_BIOMASS',JNBIOMASS,' (kg/m2/s)'
00172     CALL WRITE_SURF(HPROGRAM,YRECFM,XRESP_BIOMASS(:,JNBIOMASS),IRESP,HCOMMENT=YCOMMENT)
00173   END DO
00174 END IF
00175 !
00176 !* aerodynamical resistance
00177 !
00178 !
00179 YRECFM=HPATCH//'GR_RESA'
00180 YRECFM=ADJUSTL(YRECFM)
00181 YCOMMENT='X_Y_GR_RESA (s/m)'
00182  CALL WRITE_SURF(HPROGRAM,YRECFM,XRESA(:),IRESP,HCOMMENT=YCOMMENT)
00183 !
00184 !* snow mantel
00185 !
00186 YRECFM='GR'
00187  CALL WRITESURF_GR_SNOW(HPROGRAM,YRECFM,HPATCH,TSNOW)
00188 !
00189 IF (LHOOK) CALL DR_HOOK('WRITESURF_TEB_GREENROOF_N',1,ZHOOK_HANDLE)
00190 !
00191 !-------------------------------------------------------------------------------
00192 !
00193 END SUBROUTINE WRITESURF_TEB_GREENROOF_n