SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_all_namelists.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE READ_ALL_NAMELISTS(HPROGRAM,HINIT,ONAM_READ)
00003 !
00004 USE MODD_SURF_ATM_n, ONLY: CSEA, CWATER, CNATURE, CTOWN, LGARDEN, &
00005                   NDIM_SEA, NDIM_WATER, NDIM_NATURE, NDIM_TOWN  
00006 !
00007 USE MODD_READ_NAMELIST, ONLY : LNAM_READ
00008 !
00009 USE MODI_INIT_READ_DATA_COVER
00010 !
00011 USE MODI_READ_NAMELISTS_SURF_n
00012 USE MODI_READ_NAMELISTS_SURF
00013 USE MODI_READ_NAMELISTS_FLAKE_n
00014 USE MODI_READ_NAMELISTS_WATFLUX_n
00015 USE MODI_READ_NAMELISTS_SEAFLUX_n
00016 USE MODI_READ_NAMELISTS_ISBA_n
00017 USE MODI_READ_NAMELISTS_ISBA
00018 USE MODI_READ_NAMELISTS_TEB_n
00019 USE MODI_READ_NAMELISTS_IDEAL_n
00020 USE MODI_READ_NAMELISTS_IDEAL
00021 USE MODI_READ_NAMELISTS_TRIP_n
00022 USE MODI_READ_NAMELISTS_SLT
00023 USE MODI_READ_NAMELISTS_DST
00024 USE MODI_READ_NAMELISTS_ASSIM
00025 USE MODI_READ_NAMELISTS_TOPD
00026 !
00027 USE MODI_READ_NAM_PREP_FLAKE_n
00028 USE MODI_READ_NAM_PREP_GARDEN_n
00029 USE MODI_READ_NAM_PREP_GREENROOF_n
00030 USE MODI_READ_NAM_PREP_ISBA_n
00031 USE MODI_READ_NAM_PREP_SEAFLUX_n
00032 USE MODI_READ_NAM_PREP_SURF_n
00033 USE MODI_READ_NAM_PREP_TEB_n
00034 USE MODI_READ_NAM_PREP_WATFLUX_n
00035 !
00036 !--------------------------------------------------
00037 !
00038 !
00039 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00040 USE PARKIND1  ,ONLY : JPRB
00041 !
00042 IMPLICIT NONE
00043 !
00044  CHARACTER(LEN=6),  INTENT(IN)   :: HPROGRAM  ! program calling surf. schemes
00045  CHARACTER(LEN=3),   INTENT(IN)  :: HINIT     ! choice of fields to initialize
00046 LOGICAL,INTENT(IN)              :: ONAM_READ
00047 !
00048 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00049 !
00050 !----------------------------------------
00051 !namelists always read here
00052 !
00053 IF (LHOOK) CALL DR_HOOK('READ_ALL_NAMELISTS',0,ZHOOK_HANDLE)
00054 LNAM_READ=.TRUE.
00055 !
00056  CALL INIT_READ_DATA_COVER(HPROGRAM)
00057 !
00058  CALL READ_NAMELISTS_SURF(HPROGRAM)
00059  CALL READ_NAMELISTS_ISBA(HPROGRAM)
00060  CALL READ_NAMELISTS_SLT(HPROGRAM)
00061  CALL READ_NAMELISTS_DST(HPROGRAM)
00062  CALL READ_NAMELISTS_IDEAL(HPROGRAM)
00063  CALL READ_NAMELISTS_ASSIM(HPROGRAM)
00064  CALL READ_NAMELISTS_TOPD(HPROGRAM)
00065 !
00066 IF (HPROGRAM=='AROME ') THEN
00067 #ifdef ARO
00068   CALL READ_NAMELISTS_IO(HPROGRAM)
00069 #endif
00070 ENDIF
00071 !
00072 LNAM_READ = ONAM_READ
00073 !
00074 !namelists that can be reread in surfex code
00075 !
00076 IF (.NOT.LNAM_READ) THEN
00077 ! 
00078   LNAM_READ=.TRUE.
00079   !
00080   CALL READ_NAMELISTS_SURF_n(HPROGRAM,HINIT)
00081   !
00082   CALL READ_NAMELISTS_FLAKE_n(HPROGRAM,HINIT)
00083   CALL READ_NAMELISTS_WATFLUX_n(HPROGRAM,HINIT)
00084   CALL READ_NAMELISTS_SEAFLUX_n(HPROGRAM,HINIT)
00085   CALL READ_NAMELISTS_ISBA_n(HPROGRAM,HINIT)
00086   CALL READ_NAMELISTS_TEB_n(HPROGRAM,HINIT)
00087   CALL READ_NAMELISTS_IDEAL_n(HPROGRAM)
00088   CALL READ_NAMELISTS_TRIP_n(HPROGRAM)
00089   !
00090   LNAM_READ=.FALSE.
00091   !
00092   !prep namelists, to be read even if reread in surfex code, 
00093   !because only partially reread
00094   !
00095 ELSEIF (HINIT=='PRE') THEN
00096   !
00097   CALL READ_NAM_PREP_SURF_n(HPROGRAM)
00098   CALL READ_NAM_PREP_FLAKE_n(HPROGRAM)
00099   CALL READ_NAM_PREP_WATFLUX_n(HPROGRAM)
00100   CALL READ_NAM_PREP_SEAFLUX_n(HPROGRAM) 
00101   CALL READ_NAM_PREP_ISBA_n(HPROGRAM)
00102   CALL READ_NAM_PREP_GARDEN_n(HPROGRAM)
00103   CALL READ_NAM_PREP_GREENROOF_n(HPROGRAM)
00104   CALL READ_NAM_PREP_TEB_n(HPROGRAM)
00105   !
00106 ENDIF
00107 !
00108 IF (LHOOK) CALL DR_HOOK('READ_ALL_NAMELISTS',1,ZHOOK_HANDLE)
00109 !-------------------------------------------
00110 END SUBROUTINE READ_ALL_NAMELISTS