SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_surf_atm_confn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_SURF_ATM_CONF_n(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 MODE_MODELN_SURFEX_HANDLER
00037 !
00038 USE MODI_TEST_NAM_VAR_SURF
00039 USE MODI_GET_LUOUT
00040 USE MODI_OPEN_NAMELIST
00041 USE MODI_CLOSE_NAMELIST
00042 USE MODE_POS_SURF
00043 !
00044 USE MODD_READ_NAMELIST, ONLY : LNAM_READ
00045 USE MODN_SSO_n
00046 USE MODN_SURF_ATM_n
00047 !
00048 !
00049 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00050 USE PARKIND1  ,ONLY : JPRB
00051 !
00052 IMPLICIT NONE
00053 !
00054 !*       0.1   Declarations of arguments
00055 !              -------------------------
00056 !
00057  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling GROUND
00058 !
00059 !*       0.2   Declarations of local variables
00060 !              -------------------------------
00061 !
00062 !
00063 LOGICAL           :: GFOUND         ! Return code when searching namelist
00064 INTEGER           :: ILUOUT         ! logical unit of output file
00065 INTEGER           :: INAM           ! logical unit of namelist file
00066 INTEGER           :: IMI
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !-------------------------------------------------------------------------------
00069 !
00070 !* get output listing file logical unit
00071 !
00072 IF (LHOOK) CALL DR_HOOK('READ_SURF_ATM_CONF_N',0,ZHOOK_HANDLE)
00073  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00074 !
00075 IMI=GET_CURRENT_MODEL_INDEX_SURFEX()
00076 !
00077 IF (IMI.NE.-1 .AND. LNAM_READ) THEN
00078  CALL INIT_NAM_SSOn
00079  CALL INIT_NAM_CH_CONTROLn
00080  CALL INIT_NAM_CH_SURFn
00081  CALL INIT_NAM_DIAG_SURF_ATMn
00082  CALL INIT_NAM_DIAG_SURFn
00083  CALL INIT_NAM_WRITE_DIAG_SURFn
00084 ENDIF
00085 !
00086 IF (LNAM_READ) THEN
00087  !        
00088  !* open namelist file
00089  !
00090  CALL OPEN_NAMELIST(HPROGRAM,INAM)
00091  !
00092  !* reading of namelist
00093  !  -------------------
00094  !
00095  !
00096  CALL POSNAM(INAM,'NAM_SSON',GFOUND,ILUOUT)
00097  IF (GFOUND) READ(UNIT=INAM,NML=NAM_SSOn)
00098  CALL TEST_NAM_VAR_SURF(ILUOUT,'CROUGH',CROUGH,'NONE','Z01D','Z04D','BE04')
00099  !
00100  CALL POSNAM(INAM,'NAM_DIAG_SURFN',GFOUND,ILUOUT)
00101  IF (GFOUND) READ(UNIT=INAM,NML=NAM_DIAG_SURFn)
00102  !
00103  CALL POSNAM(INAM,'NAM_WRITE_DIAG_SURFN',GFOUND,ILUOUT)
00104  IF (GFOUND) READ(UNIT=INAM,NML=NAM_WRITE_DIAG_SURFn)
00105  !
00106  CALL POSNAM(INAM,'NAM_DIAG_SURF_ATMN',GFOUND,ILUOUT)
00107  IF (GFOUND) READ(UNIT=INAM,NML=NAM_DIAG_SURF_ATMn)
00108  !
00109  CALL POSNAM(INAM,'NAM_CH_CONTROLN',GFOUND,ILUOUT)
00110  IF (GFOUND) READ(UNIT=INAM,NML=NAM_CH_CONTROLn)
00111  !
00112  CALL POSNAM(INAM,'NAM_CH_SURFN',GFOUND,ILUOUT)
00113  IF (GFOUND) READ(UNIT=INAM,NML=NAM_CH_SURFn)
00114  !
00115  !* close namelist file
00116  !
00117  CALL CLOSE_NAMELIST(HPROGRAM,INAM)
00118  !
00119 ENDIF
00120 !
00121 IF (IMI.NE.-1) THEN
00122  CALL UPDATE_NAM_SSOn
00123  CALL UPDATE_NAM_CH_CONTROLn
00124  CALL UPDATE_NAM_CH_SURFn
00125  CALL UPDATE_NAM_DIAG_SURF_ATMn
00126  CALL UPDATE_NAM_DIAG_SURFn
00127  CALL UPDATE_NAM_WRITE_DIAG_SURFn
00128 ENDIF
00129 IF (LHOOK) CALL DR_HOOK('READ_SURF_ATM_CONF_N',1,ZHOOK_HANDLE)
00130 !
00131 !
00132 !-------------------------------------------------------------------------------
00133 !
00134 END SUBROUTINE READ_SURF_ATM_CONF_n