SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_ver_watflux.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_VER_WATFLUX
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_VER_WATFLUX* - change in WATFLUX var. due to altitude change
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     S. Malardel
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    01/2004
00024 !!------------------------------------------------------------------
00025 !
00026 
00027 !
00028 USE MODD_WATFLUX_n,   ONLY : XZS, XTS 
00029 USE MODD_PREP,       ONLY : XZS_LS, XT_CLIM_GRAD
00030 USE MODD_CSTS,       ONLY : XTT
00031 !
00032 !
00033 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00034 USE PARKIND1  ,ONLY : JPRB
00035 !
00036 IMPLICIT NONE
00037 !
00038 !*      0.1    declarations of arguments
00039 !
00040 !
00041 !*      0.2    declarations of local variables
00042 !
00043 REAL, DIMENSION(:), ALLOCATABLE :: ZTS_LS ! large-scale water temperature
00044 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00045 !
00046 !-------------------------------------------------------------------------------------
00047 !
00048 !*      1.     Surface temperature of water
00049 !
00050 IF (LHOOK) CALL DR_HOOK('PREP_VER_WATFLUX',0,ZHOOK_HANDLE)
00051 ALLOCATE(ZTS_LS(SIZE(XTS)))
00052 ZTS_LS = XTS
00053 !
00054 XTS = ZTS_LS  + XT_CLIM_GRAD  * (XZS - XZS_LS)
00055 !
00056 !-------------------------------------------------------------------------------------
00057 !
00058 !*      2.     Limit on freezing
00059 !
00060 !* if water was already frozen, it can be considered liquid only for
00061 !  temperatures that are larger than 4 C
00062 !
00063 WHERE (ZTS_LS < XTT .AND. XTS < XTT + 4.) XTS = MIN(XTS,XTT)
00064 !
00065 !* if water was liquid, it can be considered frozen only for
00066 !  very cold temperatures, colder than 20 C. It should obviously 
00067 !  depend on the size of the lake. This cold limit is taken for
00068 !  large lakes, as US great lakes, that take a long time to freeze.
00069 !
00070 !  4 C is used here for the water of lowest density.
00071 !
00072 WHERE (ZTS_LS > XTT .AND. XTS > XTT - 20.) XTS = MAX(XTS,XTT+4.)
00073 !
00074 !-------------------------------------------------------------------------------------
00075 !
00076 !*      3.     Deallocation of large-scale orography
00077 !
00078 DEALLOCATE(ZTS_LS)
00079 IF (LHOOK) CALL DR_HOOK('PREP_VER_WATFLUX',1,ZHOOK_HANDLE)
00080 !
00081 !-------------------------------------------------------------------------------------
00082 !
00083 END SUBROUTINE PREP_VER_WATFLUX