SURFEX v7.3
General documentation of Surfex
|
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