SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_PGD_FLAKE_n(HPROGRAM) 00003 ! ######################################### 00004 ! 00005 !!**** *READ_PGD_FLAKE_n* - read FLAKE physiographic fields 00006 !! 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! 00018 !! IMPLICIT ARGUMENTS 00019 !! ------------------ 00020 !! 00021 !! REFERENCE 00022 !! --------- 00023 !! 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! V. Masson *Meteo France* 00028 !! 00029 !! MODIFICATIONS 00030 !! ------------- 00031 !! Original 01/2003 00032 !------------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATIONS 00035 ! ------------ 00036 ! 00037 USE MODD_TYPE_DATE_SURF 00038 ! 00039 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER 00040 USE MODD_FLAKE_n, ONLY : XCOVER , XZS , & 00041 TTIME , LCOVER , & 00042 XWATER_DEPTH , XWATER_FETCH , & 00043 XT_BS , XDEPTH_BS , & 00044 XEXTCOEF_WATER 00045 00046 00047 USE MODD_FLAKE_GRID_n, ONLY : XLAT, XLON, XMESH_SIZE, CGRID, XGRID_PAR, NDIM 00048 ! 00049 USE MODI_READ_SURF 00050 USE MODI_READ_GRID 00051 USE MODI_READ_LCOVER 00052 ! 00053 ! 00054 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00055 USE PARKIND1 ,ONLY : JPRB 00056 ! 00057 USE MODI_GET_TYPE_DIM_n 00058 ! 00059 IMPLICIT NONE 00060 ! 00061 !* 0.1 Declarations of arguments 00062 ! ------------------------- 00063 ! 00064 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program 00065 ! 00066 !* 0.2 Declarations of local variables 00067 ! ------------------------------- 00068 ! 00069 INTEGER :: IRESP ! Error code after redding 00070 ! 00071 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00072 ! 00073 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00074 !------------------------------------------------------------------------------- 00075 ! 00076 !* 1D physical dimension 00077 ! 00078 IF (LHOOK) CALL DR_HOOK('READ_PGD_FLAKE_N',0,ZHOOK_HANDLE) 00079 YRECFM='SIZE_WATER' 00080 CALL GET_TYPE_DIM_n('WATER ',NDIM) 00081 ! 00082 ! 00083 ! 00084 !* 2. Physiographic data fields: 00085 ! ------------------------- 00086 ! 00087 !* cover classes 00088 ! 00089 ALLOCATE(LCOVER(JPCOVER)) 00090 CALL READ_LCOVER(HPROGRAM,LCOVER) 00091 ! 00092 ALLOCATE(XCOVER(NDIM,JPCOVER)) 00093 CALL READ_SURF(HPROGRAM,'COVER',XCOVER(:,:),LCOVER,IRESP) 00094 ! 00095 !* orography 00096 ! 00097 ALLOCATE(XZS(NDIM)) 00098 YRECFM='ZS' 00099 CALL READ_SURF(HPROGRAM,YRECFM,XZS(:),IRESP) 00100 ! 00101 !* latitude, longitude 00102 ! 00103 ALLOCATE(XLAT (NDIM)) 00104 ALLOCATE(XLON (NDIM)) 00105 ALLOCATE(XMESH_SIZE(NDIM)) 00106 CALL READ_GRID(HPROGRAM,CGRID,XGRID_PAR,XLAT,XLON,XMESH_SIZE,IRESP) 00107 ! 00108 !* FLake parameters 00109 ! 00110 ALLOCATE(XWATER_DEPTH (NDIM)) 00111 YRECFM='WATER_DEPTH' 00112 CALL READ_SURF(HPROGRAM,YRECFM,XWATER_DEPTH(:),IRESP) 00113 ! 00114 ALLOCATE(XWATER_FETCH (NDIM)) 00115 YRECFM='WATER_FETCH' 00116 CALL READ_SURF(HPROGRAM,YRECFM,XWATER_FETCH(:),IRESP) 00117 ! 00118 ALLOCATE(XT_BS (NDIM)) 00119 YRECFM='T_BS' 00120 CALL READ_SURF(HPROGRAM,YRECFM,XT_BS(:),IRESP) 00121 ! 00122 ALLOCATE(XDEPTH_BS (NDIM)) 00123 YRECFM='DEPTH_BS' 00124 CALL READ_SURF(HPROGRAM,YRECFM,XDEPTH_BS(:),IRESP) 00125 ! 00126 ALLOCATE(XEXTCOEF_WATER (NDIM)) 00127 YRECFM='EXTCOEF_WAT' 00128 CALL READ_SURF(HPROGRAM,YRECFM,XEXTCOEF_WATER(:),IRESP) 00129 ! 00130 IF (LHOOK) CALL DR_HOOK('READ_PGD_FLAKE_N',1,ZHOOK_HANDLE) 00131 !------------------------------------------------------------------------------- 00132 ! 00133 END SUBROUTINE READ_PGD_FLAKE_n