SURFEX v7.3
General documentation of Surfex
|
00001 SUBROUTINE INIT_SLT(HPROGRAM &! Program calling unit 00002 ) 00003 00004 USE MODD_SLT_n 00005 USE MODD_SLT_SURF 00006 ! 00007 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00008 USE PARKIND1 ,ONLY : JPRB 00009 ! 00010 IMPLICIT NONE 00011 00012 !PASSED VARIABLES 00013 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM !Passing unit 00014 ! 00015 !LOCAL VARIABLES 00016 CHARACTER(LEN=4) :: CRGUNITS ! type of log-normal geometric mean radius 00017 INTEGER :: JMODE ! Counter for sea salt modes 00018 INTEGER :: JMODE_IDX ! Index for sea salt modes 00019 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00020 00021 !get output listing unit 00022 IF (LHOOK) CALL DR_HOOK('INIT_SLT',0,ZHOOK_HANDLE) 00023 ! 00024 !Allocate memory for the real values which will be used by the model 00025 ALLOCATE(XEMISRADIUS_SLT(NSLTMDE)) 00026 ALLOCATE(XEMISSIG_SLT (NSLTMDE)) 00027 ! 00028 !Get initial size distributions. This is cut and pasted 00029 !from dead routine dstpsd.F90 00030 !Check for different source parameterizations 00031 IF(CEMISPARAM_SLT.eq."Vig01") THEN 00032 CRGUNITS = 'NUMB' 00033 XEMISRADIUS_INI_SLT(:) = (/ 0.2, 2.0, 12. /) ! [um] Number median radius She84 p. 75 Table 1 00034 XEMISSIG_INI_SLT (:) = (/ 1.9, 2.0, 3.00 /) ! [frc] Geometric standard deviation She84 p. 75 Table 1 00035 ELSE ! use default of Schultz et al, 2004 00036 CRGUNITS = 'MASS' 00037 XEMISRADIUS_INI_SLT(:) = 0.5*(/0.28, 2.25, 15.32/) ! [um] Mass median radius 00038 XEMISSIG_INI_SLT (:) = (/1.59, 2.00, 2.00 /) ! [frc] Geometric standard deviation 00039 ENDIF 00040 ! 00041 DO JMODE=1,NSLTMDE 00042 ! 00043 JMODE_IDX = JORDER_SLT(JMODE) 00044 ! 00045 XEMISSIG_SLT (JMODE) = XEMISSIG_INI_SLT (JMODE_IDX) 00046 XEMISRADIUS_SLT(JMODE) = XEMISRADIUS_INI_SLT(JMODE_IDX) 00047 ! 00048 IF (CRGUNITS=="MASS") & 00049 XEMISRADIUS_SLT(JMODE) = XEMISRADIUS_SLT(JMODE) * EXP(-3.d0 * (LOG(XEMISSIG_SLT(JMODE)))**2) 00050 ! 00051 ENDDO 00052 ! 00053 IF (LHOOK) CALL DR_HOOK('INIT_SLT',1,ZHOOK_HANDLE) 00054 ! 00055 END SUBROUTINE INIT_SLT