SURFEX v7.3
General documentation of Surfex
|
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