SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_flaken.F90
Go to the documentation of this file.
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