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