SURFEX v7.3
General documentation of Surfex
|
00001 ! ################## 00002 MODULE MODN_SEAFLUX_n 00003 ! ################## 00004 ! 00005 !!**** *MODN_SEAFLUX_n* - declaration of namelist NAM_SEAFLUXn 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! The purpose of this module is to specify the namelist NAM_SEAFLUX_n 00010 ! 00011 !! 00012 !!** IMPLICIT ARGUMENTS 00013 !! ------------------ 00014 !! 00015 !! REFERENCE 00016 !! --------- 00017 !! 00018 !! 00019 !! AUTHOR 00020 !! ------ 00021 !! V. Masson *Meteo France* 00022 !! 00023 !! MODIFICATIONS 00024 !! ------------- 00025 !! Original 01/2004 00026 !! Modified 01/2006 : sea flux parameterization. 00027 !! Modified 08/2009 : LSURF_BUDGETC 00028 !------------------------------------------------------------------------------- 00029 ! 00030 !* 0. DECLARATIONS 00031 ! ------------ 00032 ! 00033 00034 USE MODD_CH_SEAFLUX_n, ONLY: & 00035 CCH_DRY_DEP_n => CCH_DRY_DEP 00036 USE MODD_SEAFLUX_n, ONLY: & 00037 XTSTEP_n => XTSTEP, & 00038 XOUT_TSTEP_n => XOUT_TSTEP, & 00039 CSEA_FLUX_n => CSEA_FLUX, & 00040 CSEA_ALB_n => CSEA_ALB, & 00041 LPWG_n => LPWG, & 00042 LPRECIP_n => LPRECIP, & 00043 CINTERPOL_SST_n => CINTERPOL_SST, & 00044 LPWEBB_n => LPWEBB, & 00045 NGRVWAVES_n => NGRVWAVES, & 00046 XICHCE_n => XICHCE 00047 USE MODD_DIAG_SEAFLUX_n, ONLY: & 00048 XDIAG_TSTEP_n => XDIAG_TSTEP, & 00049 N2M_n => N2M, & 00050 L2M_MIN_ZS_n => L2M_MIN_ZS, & 00051 LSURF_BUDGET_n => LSURF_BUDGET, & 00052 LRAD_BUDGET_n => LRAD_BUDGET, & 00053 LSURF_BUDGETC_n => LSURF_BUDGETC, & 00054 LRESET_BUDGETC_n => LRESET_BUDGETC, & 00055 LCOEF_n => LCOEF, & 00056 LSURF_VARS_n => LSURF_VARS 00057 USE MODD_OCEAN_n, ONLY: & 00058 LPROGSST_n => LPROGSST, & 00059 NTIME_COUPLING_n => NTIME_COUPLING 00060 USE MODD_DIAG_OCEAN_n, ONLY: & 00061 LDIAG_OCEAN_n => LDIAG_OCEAN 00062 ! 00063 ! 00064 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00065 USE PARKIND1 ,ONLY : JPRB 00066 ! 00067 IMPLICIT NONE 00068 ! 00069 CHARACTER(LEN=6) :: CSEA_FLUX 00070 CHARACTER(LEN=4) :: CSEA_ALB 00071 REAL :: XTSTEP 00072 REAL :: XOUT_TSTEP 00073 REAL :: XDIAG_TSTEP 00074 INTEGER :: N2M 00075 LOGICAL :: L2M_MIN_ZS 00076 LOGICAL :: LSURF_BUDGET 00077 LOGICAL :: LRAD_BUDGET 00078 LOGICAL :: LSURF_BUDGETC 00079 LOGICAL :: LRESET_BUDGETC 00080 LOGICAL :: LCOEF 00081 LOGICAL :: LSURF_VARS 00082 LOGICAL :: LPWG 00083 LOGICAL :: LPRECIP 00084 LOGICAL :: LPWEBB 00085 LOGICAL :: LDIAG_OCEAN 00086 INTEGER :: NGRVWAVES 00087 REAL :: XICHCE 00088 CHARACTER(LEN=6) :: CCH_DRY_DEP 00089 LOGICAL :: LPROGSST 00090 INTEGER :: NTIME_COUPLING 00091 CHARACTER(LEN=6) :: CINTERPOL_SST 00092 ! 00093 NAMELIST/NAM_SEAFLUXn/CSEA_FLUX,CSEA_ALB, LPWG, LPRECIP, LPWEBB, NGRVWAVES, & 00094 LPROGSST, NTIME_COUPLING, XICHCE, CINTERPOL_SST 00095 NAMELIST/NAM_DIAG_SURFn/N2M,L2M_MIN_ZS,LSURF_BUDGET,LRAD_BUDGET, & 00096 LSURF_BUDGETC,LRESET_BUDGETC,LCOEF,LSURF_VARS 00097 NAMELIST/NAM_CH_SEAFLUXn/CCH_DRY_DEP 00098 NAMELIST/NAM_DIAG_OCEANn/LDIAG_OCEAN 00099 ! 00100 CONTAINS 00101 ! 00102 SUBROUTINE INIT_NAM_SEAFLUXn 00103 00104 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00105 00106 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAFLUXN',0,ZHOOK_HANDLE) 00107 XTSTEP = XTSTEP_n 00108 XOUT_TSTEP = XOUT_TSTEP_n 00109 CSEA_FLUX = CSEA_FLUX_n 00110 CSEA_ALB = CSEA_ALB_n 00111 LPWG = LPWG_n 00112 LPRECIP = LPRECIP_n 00113 CINTERPOL_SST = CINTERPOL_SST_n 00114 LPWEBB = LPWEBB_n 00115 NGRVWAVES = NGRVWAVES_n 00116 LPROGSST = LPROGSST_n 00117 NTIME_COUPLING = NTIME_COUPLING_n 00118 XICHCE = XICHCE_n 00119 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAFLUXN',1,ZHOOK_HANDLE) 00120 END SUBROUTINE INIT_NAM_SEAFLUXn 00121 00122 SUBROUTINE UPDATE_NAM_SEAFLUXn 00123 00124 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00125 00126 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAFLUXN',0,ZHOOK_HANDLE) 00127 XTSTEP_n = XTSTEP 00128 XOUT_TSTEP_n = XOUT_TSTEP 00129 CSEA_FLUX_n = CSEA_FLUX 00130 CSEA_ALB_n = CSEA_ALB 00131 LPWG_n = LPWG 00132 LPRECIP_n = LPRECIP 00133 CINTERPOL_SST_n = CINTERPOL_SST 00134 LPWEBB_n = LPWEBB 00135 NGRVWAVES_n = NGRVWAVES 00136 LPROGSST_n = LPROGSST 00137 NTIME_COUPLING_n = NTIME_COUPLING 00138 XICHCE_n = XICHCE 00139 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAFLUXN',1,ZHOOK_HANDLE) 00140 END SUBROUTINE UPDATE_NAM_SEAFLUXn 00141 ! 00142 SUBROUTINE INIT_NAM_DIAG_SURFn 00143 00144 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00145 00146 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_SURFN',0,ZHOOK_HANDLE) 00147 XDIAG_TSTEP = XDIAG_TSTEP_n 00148 N2M = N2M_n 00149 L2M_MIN_ZS = L2M_MIN_ZS_n 00150 LSURF_BUDGET = LSURF_BUDGET_n 00151 LRAD_BUDGET = LRAD_BUDGET_n 00152 LSURF_BUDGETC = LSURF_BUDGETC_n 00153 LRESET_BUDGETC = LRESET_BUDGETC_n 00154 LCOEF = LCOEF_n 00155 LSURF_VARS = LSURF_VARS_n 00156 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_SURFN',1,ZHOOK_HANDLE) 00157 END SUBROUTINE INIT_NAM_DIAG_SURFn 00158 00159 SUBROUTINE UPDATE_NAM_DIAG_SURFn 00160 00161 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00162 00163 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_SURFN',0,ZHOOK_HANDLE) 00164 XDIAG_TSTEP_n = XDIAG_TSTEP 00165 N2M_n = N2M 00166 L2M_MIN_ZS_n = L2M_MIN_ZS 00167 LSURF_BUDGET_n = LSURF_BUDGET 00168 LRAD_BUDGET_n = LRAD_BUDGET 00169 LSURF_BUDGETC_n = LSURF_BUDGETC 00170 LRESET_BUDGETC_n = LRESET_BUDGETC 00171 LCOEF_n = LCOEF 00172 LSURF_VARS_n = LSURF_VARS 00173 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_SURFN',1,ZHOOK_HANDLE) 00174 END SUBROUTINE UPDATE_NAM_DIAG_SURFn 00175 ! 00176 SUBROUTINE INIT_NAM_CH_SEAFLUXn 00177 00178 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00179 00180 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_CH_SEAFLUXN',0,ZHOOK_HANDLE) 00181 CCH_DRY_DEP = CCH_DRY_DEP_n 00182 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_CH_SEAFLUXN',1,ZHOOK_HANDLE) 00183 END SUBROUTINE INIT_NAM_CH_SEAFLUXn 00184 00185 SUBROUTINE UPDATE_NAM_CH_SEAFLUXn 00186 00187 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00188 00189 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_CH_SEAFLUXN',0,ZHOOK_HANDLE) 00190 CCH_DRY_DEP_n = CCH_DRY_DEP 00191 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_CH_SEAFLUXN',1,ZHOOK_HANDLE) 00192 END SUBROUTINE UPDATE_NAM_CH_SEAFLUXn 00193 00194 SUBROUTINE INIT_NAM_DIAG_OCEANn 00195 00196 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00197 00198 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_OCEANN',0,ZHOOK_HANDLE) 00199 LDIAG_OCEAN = LDIAG_OCEAN_n 00200 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_OCEANN',1,ZHOOK_HANDLE) 00201 END SUBROUTINE INIT_NAM_DIAG_OCEANn 00202 00203 SUBROUTINE UPDATE_NAM_DIAG_OCEANn 00204 00205 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00206 00207 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_OCEANN',0,ZHOOK_HANDLE) 00208 LDIAG_OCEAN_n = LDIAG_OCEAN 00209 IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_OCEANN',1,ZHOOK_HANDLE) 00210 END SUBROUTINE UPDATE_NAM_DIAG_OCEANn 00211 00212 END MODULE MODN_SEAFLUX_n