SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_watfluxn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_WATFLUX_n(HPROGRAM)
00003 !     #########################################
00004 !
00005 !!****  *READ_WATFLUX_n* - reads WATFLUX variables
00006 !! 
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!      V. Masson   *Meteo France*      
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original    01/2003 
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*       0.    DECLARATIONS
00035 !              ------------
00036 !
00037 USE MODD_WATFLUX_n,      ONLY : XTS, XZ0, LINTERPOL_TS, &
00038                                   CINTERPOL_TS, XTS_MTH, &
00039                                   TTIME  
00040 !
00041 USE MODI_READ_SURF
00042 USE MODI_INTERPOL_TS_WATER_MTH
00043 !
00044 !
00045 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00046 USE PARKIND1  ,ONLY : JPRB
00047 !
00048 USE MODI_GET_TYPE_DIM_n
00049 !
00050 IMPLICIT NONE
00051 !
00052 !*       0.1   Declarations of arguments
00053 !              -------------------------
00054 !
00055  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00056 !
00057 !
00058 !*       0.2   Declarations of local variables
00059 !              -------------------------------
00060 !
00061 INTEGER           :: JMTH, INMTH
00062  CHARACTER(LEN=2 ) :: YMTH
00063 !
00064 INTEGER           :: ILU          ! 1D physical dimension
00065 !
00066 INTEGER           :: IRESP          ! Error code after redding
00067 !
00068  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00069 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00070 !
00071 !-------------------------------------------------------------------------------
00072 !
00073 !* 1D physical dimension
00074 !
00075 IF (LHOOK) CALL DR_HOOK('READ_WATFLUX_N',0,ZHOOK_HANDLE)
00076 YRECFM='SIZE_WATER'
00077  CALL GET_TYPE_DIM_n('WATER ',ILU)
00078 !
00079 !*       3.     Prognostic fields:
00080 !               -----------------
00081 !
00082 !* water temperature
00083 !
00084 ALLOCATE(XTS(ILU))
00085 !
00086 IF(LINTERPOL_TS)THEN
00087 !
00088 ! Precedent, Current and Next Monthly SST
00089   INMTH=3
00090 ! Precedent, Current and Next Annual Monthly SST
00091   IF(CINTERPOL_TS=='ANNUAL')INMTH=14
00092 !
00093   ALLOCATE(XTS_MTH(SIZE(XTS),INMTH))
00094   DO JMTH=1,INMTH
00095      WRITE(YMTH,'(I2)') (JMTH-1)
00096      YRECFM='TS_WATER'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))
00097      CALL READ_SURF(HPROGRAM,YRECFM,XTS_MTH(:,JMTH),IRESP)
00098   ENDDO
00099 !
00100   CALL INTERPOL_TS_WATER_MTH(TTIME%TDATE%YEAR,TTIME%TDATE%MONTH,TTIME%TDATE%DAY,XTS)
00101 !
00102 ELSE
00103 ! 
00104   ALLOCATE(XTS_MTH(0,0))
00105 !
00106   YRECFM='TS_WATER'
00107   CALL READ_SURF(HPROGRAM,YRECFM,XTS(:),IRESP)
00108 !
00109 ENDIF
00110 !
00111 !
00112 !-------------------------------------------------------------------------------
00113 !
00114 !*       4.     Semi-prognostic fields:
00115 !               ----------------------
00116 !
00117 !* roughness length
00118 !
00119 ALLOCATE(XZ0(ILU))
00120 YRECFM='Z0WATER'
00121 XZ0(:) = 0.001
00122   CALL READ_SURF(HPROGRAM,YRECFM,XZ0(:),IRESP)
00123 IF (LHOOK) CALL DR_HOOK('READ_WATFLUX_N',1,ZHOOK_HANDLE)
00124 !
00125 !-------------------------------------------------------------------------------
00126 
00127 !
00128 END SUBROUTINE READ_WATFLUX_n