SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/write_diag_tebn.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE WRITE_DIAG_TEB_n(HPROGRAM,HWRITE)
00003 !     ###############################################################################
00004 !
00005 !!****  *WRITE_DIAG_TEB_n * - diagnostics for TEB
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     V. Masson 
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    01/2004
00024 !!------------------------------------------------------------------
00025 !
00026 !
00027 USE MODD_SURF_PAR,   ONLY : XUNDEF
00028 USE MODD_TEB_n,      ONLY : TTIME, LGARDEN, XBLD, NTEB_PATCH
00029 USE MODD_DIAG_TEB_n, ONLY : XDIAG_TSTEP, LPGD
00030 !
00031 USE MODI_GOTO_TEB
00032 USE MODI_WRITE_DIAG_SEB_TEB_n
00033 USE MODI_WRITE_DIAG_MISC_TEB_n
00034 USE MODI_WRITE_DIAG_PGD_TEB_n
00035 USE MODI_WRITE_DIAG_PGD_GRDN_n
00036 !
00037 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00038 USE PARKIND1  ,ONLY : JPRB
00039 !
00040 IMPLICIT NONE
00041 !
00042 !*      0.1    declarations of arguments
00043 !
00044  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM ! program calling surf. schemes
00045  CHARACTER(LEN=3),   INTENT(IN)  :: HWRITE   ! 'PGD' : only physiographic fields are written
00046 !                                           ! 'ALL' : all fields are written
00047 !
00048 !*      0.2    declarations of local variables
00049 !
00050 INTEGER         :: JTEB_PATCH
00051 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00052 !-------------------------------------------------------------------------------------
00053 !
00054 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_TEB_N',0,ZHOOK_HANDLE)
00055 IF (HWRITE/='PGD') THEN
00056 !        
00057    IF (XDIAG_TSTEP==XUNDEF .OR. ABS(NINT(TTIME%TIME/XDIAG_TSTEP)*XDIAG_TSTEP-TTIME%TIME)<1.E-3 ) THEN
00058       CALL WRITE_DIAG_SEB_TEB_n(HPROGRAM)
00059       DO JTEB_PATCH=1,NTEB_PATCH
00060         CALL GOTO_TEB(JTEB_PATCH)
00061         CALL WRITE_DIAG_MISC_TEB_n(HPROGRAM,JTEB_PATCH)
00062       END DO      
00063    END IF
00064 !
00065 ENDIF
00066 !
00067 IF (LPGD) THEN
00068   IF (XDIAG_TSTEP==XUNDEF .OR. ABS(NINT(TTIME%TIME/XDIAG_TSTEP)*XDIAG_TSTEP-TTIME%TIME)<1.E-3 ) THEN
00069     IF (ASSOCIATED(XBLD)) THEN
00070       CALL WRITE_DIAG_PGD_TEB_n(HPROGRAM)
00071       IF (LGARDEN) CALL WRITE_DIAG_PGD_GRDN_n(HPROGRAM)
00072     ENDIF
00073   END IF
00074 END IF
00075 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_TEB_N',1,ZHOOK_HANDLE)
00076 !
00077 !-------------------------------------------------------------------------------------
00078 !
00079 END SUBROUTINE WRITE_DIAG_TEB_n