SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_default_isban.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_DEFAULT_ISBA_n(HPROGRAM)
00003 !     #######################################################
00004 !
00005 !!****  *READ_ISBA_CONF* - routine to read the configuration for ISBA
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 MODE_POS_SURF
00039 !
00040 USE MODI_GET_LUOUT
00041 USE MODI_GET_DEFAULT_NAM_n
00042 !
00043 USE MODN_ISBA_n
00044 !
00045 USE MODD_READ_NAMELIST, ONLY : LNAM_READ
00046 !
00047 !
00048 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00049 USE PARKIND1  ,ONLY : JPRB
00050 !
00051 IMPLICIT NONE
00052 !
00053 !*       0.1   Declarations of arguments
00054 !              -------------------------
00055 !
00056  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling ISBA
00057 
00058 !
00059 !*       0.2   Declarations of local variables
00060 !              -------------------------------
00061 !
00062 !
00063 LOGICAL           :: GFOUND         ! Return code when searching namelist
00064 INTEGER           :: ILUOUT         ! output listing logical unit
00065 INTEGER           :: ILUDES         ! .des file logical unit
00066 INTEGER           :: IMI
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !-------------------------------------------------------------------------------
00069 !
00070 IF (LHOOK) CALL DR_HOOK('READ_DEFAULT_ISBA_N',0,ZHOOK_HANDLE)
00071  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00072 !
00073  CALL GET_DEFAULT_NAM_n(HPROGRAM,'READ ',ILUDES)
00074 !
00075 IF (ILUDES==0 .AND. LHOOK) CALL DR_HOOK('READ_DEFAULT_ISBA_N',1,ZHOOK_HANDLE)
00076 IF (ILUDES==0) RETURN
00077 !
00078 IMI=GET_CURRENT_MODEL_INDEX_SURFEX()
00079 !
00080 IF (IMI.NE.-1 .AND. LNAM_READ) THEN
00081  CALL INIT_NAM_ISBAn
00082  CALL INIT_NAM_SGH_ISBAn
00083  CALL INIT_NAM_DIAG_SURFn
00084  CALL INIT_NAM_DIAG_ISBAn
00085  CALL INIT_NAM_CH_CONTROLn
00086  CALL INIT_NAM_CH_ISBAn
00087  CALL INIT_NAM_SPINUP_CARB_ISBAn
00088  CALL INIT_NAM_CROCUSn
00089 ENDIF
00090 !
00091 IF (LNAM_READ) THEN
00092  !
00093  !* reading of new defaults in file
00094  !  -------------------------------
00095  !
00096  CALL POSNAM(ILUDES,'NAM_ISBAN',GFOUND,ILUOUT)
00097  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_ISBAn)
00098  CALL POSNAM(ILUDES,'NAM_SGH_ISBAN',GFOUND,ILUOUT)
00099  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_SGH_ISBAn)
00100  CALL POSNAM(ILUDES,'NAM_DIAG_SURFN',GFOUND,ILUOUT)
00101  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_DIAG_SURFn)
00102  CALL POSNAM(ILUDES,'NAM_DIAG_ISBAN',GFOUND,ILUOUT)
00103  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_DIAG_ISBAn)
00104  CALL POSNAM(ILUDES,'NAM_CH_CONTROLN',GFOUND,ILUOUT)
00105  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_CH_CONTROLn)
00106  CALL POSNAM(ILUDES,'NAM_CH_ISBAN',GFOUND,ILUOUT)
00107  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_CH_ISBAn)
00108  CALL POSNAM(ILUDES,'NAM_SPINUP_CARBN',GFOUND,ILUOUT)
00109  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_SPINUP_CARBn)
00110  CALL POSNAM(ILUDES,'NAM_CROCUSN',GFOUND,ILUOUT)
00111  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_CROCUSn) 
00112 ENDIF
00113 
00114 IF (IMI.NE.-1) THEN
00115  CALL UPDATE_NAM_ISBAn
00116  CALL UPDATE_NAM_SGH_ISBAn
00117  CALL UPDATE_NAM_DIAG_SURFn
00118  CALL UPDATE_NAM_DIAG_ISBAn
00119  CALL UPDATE_NAM_CH_CONTROLn
00120  CALL UPDATE_NAM_CH_ISBAn
00121  CALL UPDATE_NAM_SPINUP_CARB_ISBAn
00122  CALL UPDATE_NAM_CROCUSn 
00123 ENDIF
00124 IF (LHOOK) CALL DR_HOOK('READ_DEFAULT_ISBA_N',1,ZHOOK_HANDLE)
00125 
00126 !
00127 !-------------------------------------------------------------------------------
00128 !
00129 END SUBROUTINE READ_DEFAULT_ISBA_n