SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modn_seafluxn.F90
Go to the documentation of this file.
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