|
SURFEX v7.3
General documentation of Surfex
|
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
1.8.0