SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/write_diag_isban.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE WRITE_DIAG_ISBA_n(HPROGRAM,HWRITE)
00003 !     ###############################################################################
00004 !
00005 !!****  *WRITE_DIAG_ISBA_n * - Stores ISBA diagnostics
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_ISBA_n,      ONLY : TTIME
00029 USE MODD_DIAG_ISBA_n, ONLY : XDIAG_TSTEP, LPGD
00030 ! 
00031 !
00032 !
00033 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00034 USE PARKIND1  ,ONLY : JPRB
00035 !
00036 USE MODI_WRITE_DIAG_MISC_ISBA_n
00037 USE MODI_WRITE_DIAG_PGD_ISBA_n
00038 USE MODI_WRITE_DIAG_SEB_ISBA_n
00039 IMPLICIT NONE
00040 !
00041 !*      0.1    declarations of arguments
00042 !
00043  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM ! program calling surf. schemes
00044  CHARACTER(LEN=3),   INTENT(IN)  :: HWRITE    ! 'PGD' : only physiographic fields are written
00045 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00046 !                                            ! 'ALL' : all fields are written
00047 !
00048 !*      0.2    declarations of local variables
00049 !
00050 !-------------------------------------------------------------------------------------
00051 !
00052 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_ISBA_N',0,ZHOOK_HANDLE)
00053 IF (HWRITE/='PGD') THEN
00054   IF (XDIAG_TSTEP==XUNDEF .OR. ABS(NINT(TTIME%TIME/XDIAG_TSTEP)*XDIAG_TSTEP-TTIME%TIME)<1.E-3 ) THEN
00055     CALL WRITE_DIAG_SEB_ISBA_n(HPROGRAM)
00056     CALL WRITE_DIAG_MISC_ISBA_n(HPROGRAM)
00057   END IF
00058 END IF
00059 !
00060 IF (LPGD) THEN
00061   IF (XDIAG_TSTEP==XUNDEF .OR. ABS(NINT(TTIME%TIME/XDIAG_TSTEP)*XDIAG_TSTEP-TTIME%TIME)<1.E-3 ) THEN
00062     CALL WRITE_DIAG_PGD_ISBA_n(HPROGRAM)
00063   END IF
00064 END IF
00065 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_ISBA_N',1,ZHOOK_HANDLE)
00066 !-------------------------------------------------------------------------------------
00067 !
00068 END SUBROUTINE WRITE_DIAG_ISBA_n