SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_watflux.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_WATFLUX(HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_WATFLUX* - prepares WATFLUX fields
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 !!      S. Riette   06/2009 PREP_WATFLUX_SBL has no more argument
00025 !!------------------------------------------------------------------
00026 !
00027 
00028 !
00029 USE MODI_PREP_HOR_WATFLUX_FIELD
00030 USE MODI_PREP_VER_WATFLUX
00031 USE MODI_PREP_OUTPUT_GRID
00032 USE MODI_GET_LUOUT
00033 USE MODI_PREP_WATFLUX_SBL
00034 !
00035 USE MODD_READ_NAMELIST,  ONLY : LNAM_READ
00036 USE MODN_PREP_WATFLUX
00037 USE MODD_PREP,           ONLY : XZS_LS
00038 USE MODD_SURF_ATM,       ONLY : LVERTSHIFT
00039 USE MODD_WATFLUX_n,      ONLY : XZ0, XTS, LSBL, &
00040                                   LINTERPOL_TS,  &
00041                                   CINTERPOL_TS,  &
00042                                   XTS_MTH  
00043 USE MODD_WATFLUX_GRID_n, ONLY : CGRID, XGRID_PAR, XLAT, XLON
00044 
00045 !
00046 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00047 USE PARKIND1  ,ONLY : JPRB
00048 !
00049 USE MODI_CLEAN_PREP_OUTPUT_GRID
00050 !
00051 IMPLICIT NONE
00052 !
00053 !*      0.1    declarations of arguments
00054 !
00055  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00056  CHARACTER(LEN=28),  INTENT(IN)  :: HATMFILE    ! name of the Atmospheric file
00057  CHARACTER(LEN=6),   INTENT(IN)  :: HATMFILETYPE! type of the Atmospheric file
00058  CHARACTER(LEN=28),  INTENT(IN)  :: HPGDFILE    ! name of the Atmospheric file
00059  CHARACTER(LEN=6),   INTENT(IN)  :: HPGDFILETYPE! type of the Atmospheric file
00060 !
00061 !*      0.2    declarations of local variables
00062 !
00063 INTEGER :: JMTH, INMTH
00064 !
00065 INTEGER :: ILUOUT
00066 LOGICAL :: GFOUND         ! Return code when searching namelist
00067 INTEGER :: ILUNAM         ! logical unit of namelist file
00068 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00069 !-------------------------------------------------------------------------------------
00070 !
00071 !*      1.     Default of configuration
00072 !
00073 !
00074 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX',0,ZHOOK_HANDLE)
00075  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00076 !
00077  CALL PREP_OUTPUT_GRID(ILUOUT,CGRID,XGRID_PAR,XLAT,XLON)
00078 !
00079 !-------------------------------------------------------------------------------------
00080 !
00081 !*      2.     Reading and horizontal interpolations
00082 !
00083 !
00084 !*      2.0    Large scale orography
00085 !
00086  CALL PREP_HOR_WATFLUX_FIELD(HPROGRAM,'ZS     ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE)
00087 !
00088 !*      2.1    Temperature
00089 !
00090  CALL PREP_HOR_WATFLUX_FIELD(HPROGRAM,'TSWATER',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE)
00091 !
00092 !*      2.2    Roughness
00093 !
00094 ALLOCATE(XZ0(SIZE(XTS)))
00095 XZ0 = 0.001
00096 !
00097 !-------------------------------------------------------------------------------------
00098  CALL CLEAN_PREP_OUTPUT_GRID
00099 !-------------------------------------------------------------------------------------
00100 !
00101 !*      3.     Vertical interpolations of all variables
00102 !
00103 IF(LVERTSHIFT)THEN
00104   CALL PREP_VER_WATFLUX
00105 ENDIF
00106 !
00107 DEALLOCATE(XZS_LS)
00108 !-------------------------------------------------------------------------------------
00109 !
00110 !*      4.     Preparation of optional interpolation of monthly ts water
00111 !
00112 LINTERPOL_TS=.FALSE.
00113 IF(CINTERPOL_TS/='NONE  ')THEN
00114   LINTERPOL_TS=.TRUE.
00115 ENDIF
00116 !
00117 IF(LINTERPOL_TS)THEN
00118 !
00119 ! Precedent, Current and Next Monthly TS water
00120   INMTH=3
00121 ! Precedent, Current and Next Annual Monthly TS water
00122   IF(CINTERPOL_TS=='ANNUAL')INMTH=14
00123 !
00124   ALLOCATE(XTS_MTH(SIZE(XTS),INMTH))
00125   DO JMTH=1,INMTH
00126      XTS_MTH(:,JMTH)=XTS(:)
00127   ENDDO
00128 !
00129 ENDIF
00130 !
00131 !-------------------------------------------------------------------------------------
00132 !
00133 !*      5.     Preparation of SBL air variables
00134 !
00135 LSBL = LWAT_SBL
00136 IF (LSBL) CALL PREP_WATFLUX_SBL()
00137 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX',1,ZHOOK_HANDLE)
00138 !
00139 !-------------------------------------------------------------------------------------
00140 !
00141 END SUBROUTINE PREP_WATFLUX