SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TOPD/write_discharge_file.F90
Go to the documentation of this file.
00001 !-----------------------------------------------------------------
00002 !     #######################
00003 !
00004       SUBROUTINE WRITE_DISCHARGE_FILE(HPROGRAM,HFILE,HFORM,&
00005                                       KYEAR,KMONTH,KDAY,KH,KM,PQTOT)
00006 !     #######################
00007 !
00008 !!****  *WRITE_DISCHARGE_FILE*  
00009 !!
00010 !!    PURPOSE
00011 !!    -------
00012 !     This routine aims at reading topographic files
00013 !!**  METHOD
00014 !!    ------
00015 !
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!    none
00020 !!
00021 !!    IMPLICIT ARGUMENTS
00022 !!    ------------------ 
00023 !!
00024 !!    
00025 !!    
00026 !!
00027 !!      
00028 !!    REFERENCE
00029 !!    ---------
00030 !!
00031 !!    
00032 !!      
00033 !!    AUTHOR
00034 !!    ------
00035 !!
00036 !!      B. Vincendon    * Meteo-France *
00037 !!
00038 !!    MODIFICATIONS
00039 !!    -------------
00040 !!
00041 !!      Original   11/2006
00042 !-------------------------------------------------------------------------------
00043 !
00044 !*       0.     DECLARATIONS
00045 !               ------------
00046 !
00047 USE MODD_TOPODYN, ONLY  : CCAT, NNCAT, NNB_TOPD_STEP
00048 !
00049 USE MODI_GET_LUOUT
00050 USE MODI_OPEN_FILE
00051 USE MODI_CLOSE_FILE
00052 !
00053 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00054 USE PARKIND1  ,ONLY : JPRB
00055 !
00056 IMPLICIT NONE
00057 !
00058 !*      0.1    declarations of arguments
00059 !
00060  CHARACTER(LEN=*),      INTENT(IN)  :: HPROGRAM   !
00061  CHARACTER(LEN=*),      INTENT(IN)  :: HFILE      ! File to be read
00062  CHARACTER(LEN=*),      INTENT(IN)  :: HFORM      ! Format of the file to be read
00063 INTEGER, DIMENSION(:), INTENT(IN)  :: KYEAR      ! Year of the beginning of the simulation.
00064 INTEGER, DIMENSION(:), INTENT(IN)  :: KMONTH     ! Month of the beginning of the simulation.
00065 INTEGER, DIMENSION(:), INTENT(IN)  :: KDAY       ! Day of the beginning of the simulation.
00066 INTEGER, DIMENSION(:), INTENT(IN)  :: KH         ! Hour of the beginning of the simulation.
00067 INTEGER, DIMENSION(:), INTENT(IN)  :: KM         ! Minutes of the beginning of the simulation.
00068 REAL, DIMENSION(:,:) , INTENT(IN)  :: PQTOT      ! Discharge to be writen
00069 !
00070 !
00071 !*      0.2    declarations of local variables
00072 !
00073 INTEGER                   :: JJ,JCAT ! loop control 
00074 INTEGER                   :: IUNIT       ! Unit of the files
00075 INTEGER                   :: ILUOUT      ! Unit of the files
00076 !
00077  CHARACTER(LEN=28) :: YFILE
00078  CHARACTER(LEN=40) :: YFORM          ! Writing format
00079 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00080 !-------------------------------------------------------------------------------
00081 IF (LHOOK) CALL DR_HOOK('WRITE_DISCHARGE_FILE',0,ZHOOK_HANDLE)
00082 !
00083 !*       0.3    preparing file openning
00084 !               ----------------------
00085 !
00086  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00087 YFORM='(I4,A1,I2,A1,I2,A1,I2,A1,I2,A1,F7.2)'
00088 !
00089 DO JCAT=1,NNCAT
00090   !
00091   YFILE = TRIM(CCAT(JCAT))//'_'//TRIM(HFILE)
00092   !
00093   CALL OPEN_FILE(HPROGRAM,IUNIT,YFILE,HFORM,HACTION='WRITE')
00094   !
00095   WRITE(IUNIT,*) 'YEAR;MO;DA;HO;MI;',CCAT(JCAT)
00096   DO JJ=1,NNB_TOPD_STEP
00097     WRITE(IUNIT,YFORM) KYEAR(JJ),';',KMONTH(JJ),';',KDAY(JJ),';',&
00098                        KH(JJ)   ,';',KM(JJ)    ,';',PQTOT(JCAT,JJ)
00099   ENDDO
00100   !
00101   CALL CLOSE_FILE(HPROGRAM,IUNIT)
00102   !
00103 ENDDO
00104 !
00105 IF (LHOOK) CALL DR_HOOK('WRITE_DISCHARGE_FILE',1,ZHOOK_HANDLE)
00106 !
00107 END SUBROUTINE WRITE_DISCHARGE_FILE
00108