SURFEX v7.3
General documentation of Surfex
|
00001 !------------------------------------------------------------ 00002 ! ########################## 00003 SUBROUTINE WRITE_FILE_VECMAP(PVAR,HVAR,KCAT) 00004 ! ########################## 00005 ! 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 ! 00011 !!** METHOD 00012 !! ------ 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! none 00018 !! 00019 !! IMPLICIT ARGUMENTS 00020 !! ------------------ 00021 !! 00022 !! REFERENCE 00023 !! --------- 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! 00028 !! K. Chancibault * Meteo-France * 00029 !! 00030 !! MODIFICATIONS 00031 !! ------------- 00032 !! 00033 !! Original 25/01/2005 00034 !------------------------------------------------------------------------------- 00035 ! 00036 !* 0. DECLARATIONS 00037 ! ------------ 00038 ! 00039 USE MODD_TOPODYN 00040 ! 00041 USE MODD_SURF_PAR, ONLY:XUNDEF 00042 USE MODI_OPEN_FILE 00043 USE MODI_CLOSE_FILE 00044 ! 00045 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00046 USE PARKIND1 ,ONLY : JPRB 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 !* 0.1 declarations of arguments 00051 ! 00052 REAL, DIMENSION(:),INTENT(IN) :: PVAR ! variable to write in the file 00053 CHARACTER(LEN=30), INTENT(IN) :: HVAR ! end name of the file 00054 INTEGER, INTENT(IN) :: KCAT ! catchment number 00055 ! 00056 !* 0.2 declarations of local variables 00057 ! 00058 CHARACTER(LEN=50) :: CNAME 00059 CHARACTER(LEN=40) :: CFMT 00060 INTEGER :: JJ,JI,JK 00061 INTEGER :: IINDEX ! reference number of the pixel 00062 INTEGER :: IUNIT 00063 REAL :: ZOUT ! pixel not included in the catchment 00064 REAL :: ZMIN,ZMAX 00065 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00066 !------------------------------------------------------------------------------- 00067 IF (LHOOK) CALL DR_HOOK('WRITE_FILE_VECMAP',0,ZHOOK_HANDLE) 00068 ! 00069 !* 0. Initialization: 00070 ! --------------- 00071 ! 00072 ZOUT = XUNDEF 00073 ZMIN = MINVAL(PVAR) 00074 ZMAX = MAXVAL(PVAR) 00075 ! 00076 CNAME = TRIM(CCAT(KCAT))//TRIM(HVAR) 00077 ! 00078 CALL OPEN_FILE('ASCII ',IUNIT,HFILE=CNAME,HFORM='FORMATTED') 00079 ! 00080 DO JI=1,5 00081 WRITE(IUNIT,*) 00082 ENDDO 00083 ! 00084 WRITE(IUNIT,*) XX0(KCAT) 00085 WRITE(IUNIT,*) XY0(KCAT) 00086 WRITE(IUNIT,*) NNXC(KCAT) 00087 WRITE(IUNIT,*) NNYC(KCAT) 00088 WRITE(IUNIT,*) ZOUT 00089 WRITE(IUNIT,*) XDXT(KCAT) 00090 WRITE(IUNIT,*) ZMIN 00091 WRITE(IUNIT,*) ZMAX 00092 ! 00093 DO JI=1,NNYC(KCAT) 00094 DO JK=1,NNXC(KCAT) 00095 IINDEX = (JI - 1) * NNXC(KCAT) + JK 00096 IF (XTOPD(KCAT,IINDEX).EQ.XNUL(KCAT)) THEN 00097 WRITE(IUNIT,*) ZOUT 00098 ELSE 00099 WRITE(IUNIT,*) PVAR(NLINE(KCAT,IINDEX)) 00100 ENDIF 00101 ENDDO 00102 ENDDO 00103 ! 00104 CALL CLOSE_FILE('ASCII ',IUNIT) 00105 ! 00106 IF (LHOOK) CALL DR_HOOK('WRITE_FILE_VECMAP',1,ZHOOK_HANDLE) 00107 ! 00108 END SUBROUTINE WRITE_FILE_VECMAP 00109