SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_pgd_schemes.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_PGD_SCHEMES(HPROGRAM,HNATURE,HSEA,HTOWN,HWATER)
00003 !     ######################################
00004 !!
00005 !!    PURPOSE
00006 !!    -------
00007 !!   initializes the surface SCHEMES.
00008 !!
00009 !!    METHOD
00010 !!    ------
00011 !!   
00012 !!    EXTERNAL
00013 !!    --------
00014 !!
00015 !!
00016 !!    IMPLICIT ARGUMENTS
00017 !!    ------------------
00018 !!
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!    AUTHOR
00024 !!    ------
00025 !!
00026 !!    V. Masson                   Meteo-France
00027 !!
00028 !!    MODIFICATION
00029 !!    ------------
00030 !!
00031 !!    Original     13/10/03
00032 !----------------------------------------------------------------------------
00033 !
00034 !*    0.     DECLARATION
00035 !            -----------
00036 !
00037 USE MODI_DEFAULT_SCHEMES
00038 USE MODI_TEST_NAM_VAR_SURF
00039 USE MODI_OPEN_NAMELIST
00040 USE MODI_CLOSE_NAMELIST
00041 USE MODI_GET_LUOUT
00042 !
00043 USE MODN_PGD_SCHEMES
00044 !
00045 USE MODE_POS_SURF
00046 !
00047 !
00048 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00049 USE PARKIND1  ,ONLY : JPRB
00050 !
00051 IMPLICIT NONE
00052 !
00053 !*    0.1    Declaration of dummy arguments
00054 !            ------------------------------
00055 !
00056  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling READ_PGD
00057  CHARACTER(LEN=6),  INTENT(OUT) :: HNATURE  ! scheme for natural surfaces
00058  CHARACTER(LEN=6),  INTENT(OUT) :: HSEA     ! scheme for sea
00059  CHARACTER(LEN=6),  INTENT(OUT) :: HTOWN    ! scheme for towns
00060  CHARACTER(LEN=6),  INTENT(OUT) :: HWATER   ! scheme for inland water
00061 !
00062 !
00063 !*    0.2    Declaration of local variables
00064 !            ------------------------------
00065 !
00066 INTEGER           :: ILUOUT     ! logical unit
00067 INTEGER           :: ILUNAM     ! logical unit
00068 !
00069 LOGICAL           :: GFOUND
00070 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00071 !
00072 !------------------------------------------------------------------------------
00073 !
00074 !*       1.    defaults
00075 ! 
00076 IF (LHOOK) CALL DR_HOOK('READ_PGD_SCHEMES',0,ZHOOK_HANDLE)
00077  CALL DEFAULT_SCHEMES(HPROGRAM,CNATURE,CSEA,CTOWN,CWATER)
00078 !
00079 !------------------------------------------------------------------------------
00080 !
00081 !*       2.    opening of namelist
00082 ! 
00083  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00084 !
00085  CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
00086 !
00087 !-------------------------------------------------------------------------------
00088 !
00089 !*       3.    reading of namelist
00090 ! 
00091  CALL POSNAM(ILUNAM,'NAM_PGD_SCHEMES',GFOUND,ILUOUT)
00092 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PGD_SCHEMES)
00093 !
00094 !-------------------------------------------------------------------------------
00095 !
00096 !*       4.    check of file type
00097 ! 
00098  CALL TEST_NAM_VAR_SURF(ILUOUT,'CNATURE',CNATURE,'NONE  ','ISBA  ','TSZ0  ','FLUX  ')
00099  CALL TEST_NAM_VAR_SURF(ILUOUT,'CSEA   ',CSEA   ,'NONE  ','SEAFLX','FLUX  ')
00100  CALL TEST_NAM_VAR_SURF(ILUOUT,'CTOWN  ',CTOWN  ,'NONE  ','TEB   ','FLUX  ')
00101  CALL TEST_NAM_VAR_SURF(ILUOUT,'CWATER ',CWATER ,'NONE  ','WATFLX','FLUX  ','FLAKE ')
00102 !
00103 HNATURE = CNATURE
00104 HSEA    = CSEA
00105 HTOWN   = CTOWN
00106 HWATER  = CWATER
00107 !------------------------------------------------------------------------------
00108 !
00109 !*       5.    close namelist file
00110 ! 
00111  CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
00112 IF (LHOOK) CALL DR_HOOK('READ_PGD_SCHEMES',1,ZHOOK_HANDLE)
00113 !
00114 !-------------------------------------------------------------------------------
00115 !
00116 END SUBROUTINE READ_PGD_SCHEMES