SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_FLAKE_n(HPROGRAM) 00003 ! ######################################### 00004 ! 00005 !!**** *READ_FLAKE_n* - reads FLAKE variables 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_FLAKE_n, ONLY : XTS, & 00038 XT_SNOW, & 00039 XT_ICE , & 00040 XT_MNW , & 00041 XT_WML , & 00042 XT_BOT , & 00043 XT_B1 , & 00044 XCT , & 00045 XH_SNOW, & 00046 XH_ICE , & 00047 XH_ML , & 00048 XH_B1 , & 00049 XZ0 , & 00050 XUSTAR 00051 00052 00053 ! 00054 USE MODI_READ_SURF 00055 ! 00056 ! 00057 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00058 USE PARKIND1 ,ONLY : JPRB 00059 ! 00060 USE MODI_GET_TYPE_DIM_n 00061 ! 00062 IMPLICIT NONE 00063 ! 00064 !* 0.1 Declarations of arguments 00065 ! ------------------------- 00066 ! 00067 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program 00068 ! 00069 ! 00070 !* 0.2 Declarations of local variables 00071 ! ------------------------------- 00072 INTEGER :: ILU ! 1D physical dimension 00073 ! 00074 INTEGER :: IRESP ! Error code after redding 00075 ! 00076 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00077 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00078 ! 00079 !------------------------------------------------------------------------------- 00080 ! 00081 !* 1D physical dimension 00082 ! 00083 IF (LHOOK) CALL DR_HOOK('READ_FLAKE_N',0,ZHOOK_HANDLE) 00084 YRECFM='SIZE_WATER' 00085 CALL GET_TYPE_DIM_n('WATER ',ILU) 00086 ! 00087 !* 3. Prognostic fields: 00088 ! ----------------- 00089 ! 00090 !* water temperature 00091 ! 00092 ALLOCATE(XTS(ILU)) 00093 ! 00094 ALLOCATE(XT_SNOW (ILU)) 00095 ALLOCATE(XT_ICE (ILU)) 00096 ALLOCATE(XT_MNW (ILU)) 00097 ALLOCATE(XT_WML (ILU)) 00098 ALLOCATE(XT_BOT (ILU)) 00099 ALLOCATE(XT_B1 (ILU)) 00100 ALLOCATE(XCT (ILU)) 00101 ALLOCATE(XH_SNOW (ILU)) 00102 ALLOCATE(XH_ICE (ILU)) 00103 ALLOCATE(XH_ML (ILU)) 00104 ALLOCATE(XH_B1 (ILU)) 00105 00106 YRECFM='TS_WATER' 00107 CALL READ_SURF(HPROGRAM,YRECFM,XTS(:),IRESP) 00108 YRECFM='T_SNOW' 00109 CALL READ_SURF(HPROGRAM,YRECFM,XT_SNOW(:),IRESP) 00110 YRECFM='T_ICE' 00111 CALL READ_SURF(HPROGRAM,YRECFM,XT_ICE(:),IRESP) 00112 YRECFM='T_MNW' 00113 CALL READ_SURF(HPROGRAM,YRECFM,XT_MNW(:),IRESP) 00114 YRECFM='T_WML' 00115 CALL READ_SURF(HPROGRAM,YRECFM,XT_WML(:),IRESP) 00116 YRECFM='T_BOT' 00117 CALL READ_SURF(HPROGRAM,YRECFM,XT_BOT(:),IRESP) 00118 YRECFM='T_B1' 00119 CALL READ_SURF(HPROGRAM,YRECFM,XT_B1(:),IRESP) 00120 YRECFM='CT' 00121 CALL READ_SURF(HPROGRAM,YRECFM,XCT(:),IRESP) 00122 YRECFM='H_SNOW' 00123 CALL READ_SURF(HPROGRAM,YRECFM,XH_SNOW(:),IRESP) 00124 YRECFM='H_ICE' 00125 CALL READ_SURF(HPROGRAM,YRECFM,XH_ICE(:),IRESP) 00126 YRECFM='H_ML' 00127 CALL READ_SURF(HPROGRAM,YRECFM,XH_ML(:),IRESP) 00128 YRECFM='H_B1' 00129 CALL READ_SURF(HPROGRAM,YRECFM,XH_B1(:),IRESP) 00130 ! 00131 !------------------------------------------------------------------------------- 00132 ! 00133 !* 4. Semi-prognostic fields: 00134 ! ---------------------- 00135 ! 00136 !* roughness length 00137 ! 00138 ALLOCATE(XZ0(ILU)) 00139 YRECFM='Z0WATER' 00140 XZ0(:) = 0.001 00141 CALL READ_SURF(HPROGRAM,YRECFM,XZ0(:),IRESP) 00142 ! 00143 ! 00144 !* friction velocity 00145 ! 00146 ALLOCATE(XUSTAR(ILU)) 00147 YRECFM='USTAR_WATER' 00148 XUSTAR(:) = 0. 00149 CALL READ_SURF(HPROGRAM,YRECFM,XUSTAR(:),IRESP) 00150 IF (LHOOK) CALL DR_HOOK('READ_FLAKE_N',1,ZHOOK_HANDLE) 00151 ! 00152 !------------------------------------------------------------------------------- 00153 00154 ! 00155 END SUBROUTINE READ_FLAKE_n