SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_surf_atm_conf.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_SURF_ATM_CONF(HPROGRAM)
00003 !     #######################################################
00004 !
00005 !!****  *READ_SURF_ATM_CONF* - reads the general configuration for surface
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      V. Masson   *Meteo France*      
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    01/2003 
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.    DECLARATIONS
00034 !              ------------
00035 !
00036 USE MODI_GET_LUOUT
00037 USE MODI_OPEN_NAMELIST
00038 USE MODI_CLOSE_NAMELIST
00039 USE MODE_POS_SURF
00040 USE MODI_TEST_NAM_VAR_SURF
00041 !
00042 USE MODN_CHS_ORILAM
00043 USE MODN_SURF_ATM
00044 USE MODN_WRITE_SURF_ATM
00045 !
00046 !
00047 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00048 USE PARKIND1  ,ONLY : JPRB
00049 !
00050 IMPLICIT NONE
00051 !
00052 !*       0.1   Declarations of arguments
00053 !              -------------------------
00054 !
00055  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling GROUND
00056 !
00057 !*       0.2   Declarations of local variables
00058 !              -------------------------------
00059 !
00060 !
00061 LOGICAL           :: GFOUND         ! Return code when searching namelist
00062 INTEGER           :: ILUOUT         ! logical unit of output file
00063 INTEGER           :: INAM           ! logical unit of namelist file
00064 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00065 !-------------------------------------------------------------------------------
00066 !
00067 !* get output listing file logical unit
00068 !
00069 IF (LHOOK) CALL DR_HOOK('READ_SURF_ATM_CONF',0,ZHOOK_HANDLE)
00070  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00071 !
00072 !* open namelist file
00073 !
00074  CALL OPEN_NAMELIST(HPROGRAM,INAM)
00075 !
00076 !* reading of namelist
00077 !  -------------------
00078 !
00079  CALL POSNAM(INAM,'NAM_CHS_ORILAM',GFOUND,ILUOUT)
00080 IF (GFOUND) READ(UNIT=INAM,NML=NAM_CHS_ORILAM)
00081 !
00082  CALL POSNAM(INAM,'NAM_SURF_ATM',GFOUND,ILUOUT)
00083 IF (GFOUND) READ(UNIT=INAM,NML=NAM_SURF_ATM)
00084  CALL TEST_NAM_VAR_SURF(ILUOUT,'CIMPLICIT_WIND',CIMPLICIT_WIND,'OLD','NEW')
00085 !
00086  CALL POSNAM(INAM,'NAM_WRITE_SURF_ATM',GFOUND,ILUOUT)
00087 IF (GFOUND) READ(UNIT=INAM,NML=NAM_WRITE_SURF_ATM)
00088 !
00089 !
00090 !* close namelist file
00091 !
00092  CALL CLOSE_NAMELIST(HPROGRAM,INAM)
00093 IF (LHOOK) CALL DR_HOOK('READ_SURF_ATM_CONF',1,ZHOOK_HANDLE)
00094 !
00095 !-------------------------------------------------------------------------------
00096 !
00097 END SUBROUTINE READ_SURF_ATM_CONF