SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_seaflux_confn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_SEAFLUX_CONF_n(HPROGRAM)
00003 !     #############################################################
00004 !
00005 !!****  *READ_SEAFLUX_CONF* - routine to read the configuration for SEAFLUX
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 !!      Modified    01/2006 : sea flux parameterization.
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*       0.    DECLARATIONS
00035 !              ------------
00036 !
00037 !
00038 USE MODE_MODELN_SURFEX_HANDLER
00039 !
00040 USE MODE_POS_SURF
00041 !
00042 USE MODI_TEST_NAM_VAR_SURF
00043 USE MODI_GET_LUOUT
00044 USE MODI_OPEN_NAMELIST
00045 USE MODI_CLOSE_NAMELIST
00046 !
00047 USE MODN_SEAFLUX_n
00048 !
00049 USE MODD_READ_NAMELIST, ONLY : LNAM_READ
00050 USE MODD_SURF_PAR,   ONLY : XUNDEF
00051 !
00052 !
00053 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00054 USE PARKIND1  ,ONLY : JPRB
00055 !
00056 IMPLICIT NONE
00057 !
00058 !*       0.1   Declarations of arguments
00059 !              -------------------------
00060 !
00061  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling ISBA
00062 !
00063 !*       0.2   Declarations of local variables
00064 !              -------------------------------
00065 !
00066 !
00067 LOGICAL           :: GFOUND         ! Return code when searching namelist
00068 INTEGER           :: ILUOUT         ! logical unit of output file
00069 INTEGER           :: INAM           ! logical unit of namelist file
00070 INTEGER           :: IMI
00071 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00072 !-------------------------------------------------------------------------------
00073 !
00074 !* get output listing file logical unit
00075 !
00076 IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_CONF_N',0,ZHOOK_HANDLE)
00077  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00078 !
00079 IMI=GET_CURRENT_MODEL_INDEX_SURFEX()
00080 !
00081 IF (IMI.NE.-1 .AND. LNAM_READ) THEN
00082  CALL INIT_NAM_SEAFLUXn
00083  CALL INIT_NAM_DIAG_SURFn
00084  CALL INIT_NAM_CH_SEAFLUXn
00085  CALL INIT_NAM_DIAG_OCEANn
00086 ENDIF
00087 !
00088 IF (LNAM_READ) THEN
00089  !        
00090  !* open namelist file
00091  !
00092  CALL OPEN_NAMELIST(HPROGRAM,INAM)
00093  !
00094  !* reading of namelist
00095  !  -------------------
00096  !
00097  CALL POSNAM(INAM,'NAM_SEAFLUXN',GFOUND,ILUOUT)
00098  IF (GFOUND) READ(UNIT=INAM,NML=NAM_SEAFLUXn)
00099  CALL POSNAM(INAM,'NAM_DIAG_SURFN',GFOUND,ILUOUT)
00100  IF (GFOUND) READ(UNIT=INAM,NML=NAM_DIAG_SURFn)
00101  CALL POSNAM(INAM,'NAM_CH_SEAFLUXN',GFOUND,ILUOUT)
00102  IF (GFOUND) READ(UNIT=INAM,NML=NAM_CH_SEAFLUXn)
00103  CALL POSNAM(INAM,'NAM_DIAG_OCEANN',GFOUND,ILUOUT)
00104  IF (GFOUND) READ(UNIT=INAM,NML=NAM_DIAG_OCEANn)
00105  !
00106  CALL TEST_NAM_VAR_SURF(ILUOUT,'CSEA_FLUX',CSEA_FLUX,'DIRECT','ITERAT','ECUME ','COARE3')
00107  CALL TEST_NAM_VAR_SURF(ILUOUT,'CSEA_ALB',CSEA_ALB,'UNIF','TA96','MK10')
00108  CALL TEST_NAM_VAR_SURF(ILUOUT,'CCH_DRY_DEP',CCH_DRY_DEP,'      ','WES89 ','NONE  ')
00109  CALL TEST_NAM_VAR_SURF(ILUOUT,'CINTERPOL_SST',CINTERPOL_SST,'ANNUAL','MONTH ','NONE  ')
00110  !
00111  !* close namelist file
00112  !
00113  CALL CLOSE_NAMELIST(HPROGRAM,INAM)
00114  !
00115 ENDIF
00116 !
00117 IF (IMI.NE.-1) THEN
00118  CALL UPDATE_NAM_SEAFLUXn
00119  CALL UPDATE_NAM_DIAG_SURFn
00120  CALL UPDATE_NAM_CH_SEAFLUXn
00121  CALL UPDATE_NAM_DIAG_OCEANn
00122 ENDIF
00123 !
00124 !-------------------------------------------------------------------------------
00125 !
00126 !* surface time-step forced by the atmosphere
00127 !
00128 XTSTEP = XUNDEF
00129 IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_CONF_N',1,ZHOOK_HANDLE)
00130 !
00131 !-------------------------------------------------------------------------------
00132 !
00133 END SUBROUTINE READ_SEAFLUX_CONF_n