SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/prep_coupling_surf_trip.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE PREP_COUPLING_SURF_TRIP(HPROGRAM,KNI,OFLOOD_ISBA,HGRID)
00003 !     ##################################################################
00004 !
00005 !!****  *PREP_COUPLING_SURF_TRIP* - routine to prepare the SURFACE-TRIP coupling
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      B. Decharme   *Meteo France*    
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    05/2008
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.    DECLARATIONS
00034 !              ------------
00035 !
00036 USE MODI_GET_GRID_CONF_ISBA_n
00037 USE MODI_READ_NAM_GRID_TRIP
00038 USE MODI_GET_GRID_CONF_TRIP_n
00039 !
00040 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00041 USE PARKIND1  ,ONLY : JPRB
00042 !
00043 USE MODI_ABOR1_SFX
00044 !
00045 USE MODI_GET_LUOUT
00046 IMPLICIT NONE
00047 !
00048 !*       0.1   Declarations of arguments
00049 !              -------------------------
00050 !
00051  CHARACTER(LEN=6),                 INTENT(IN)  :: HPROGRAM    ! program calling surf. schemes
00052  CHARACTER(LEN=10),                INTENT(IN)  :: HGRID       
00053 LOGICAL,                          INTENT(IN)  :: OFLOOD_ISBA
00054 INTEGER,                          INTENT(IN)  :: KNI         ! Surfex grid dimension
00055 !
00056 !*       0.2   Declarations of local variables
00057 !              -------------------------------
00058 !
00059 LOGICAL :: LFLOOD_TRIP
00060 !
00061 REAL    :: ZLONMIN_ISBA
00062 REAL    :: ZLONMIN_TRIP
00063 REAL    :: ZLONMAX_ISBA
00064 REAL    :: ZLONMAX_TRIP
00065 REAL    :: ZLATMIN_ISBA
00066 REAL    :: ZLATMIN_TRIP
00067 REAL    :: ZLATMAX_ISBA
00068 REAL    :: ZLATMAX_TRIP
00069 REAL    :: ZRES_ISBA
00070 REAL    :: ZRES_TRIP
00071 !
00072 INTEGER :: ICOMP_TRIP
00073 INTEGER :: ICOMP_ISBA
00074 !
00075 INTEGER :: ILON_ISBA
00076 INTEGER :: ILON_TRIP
00077 INTEGER :: ILAT_ISBA
00078 INTEGER :: ILAT_TRIP
00079 !
00080 INTEGER :: ILUOUT, JL, K, I, J
00081 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00082 !
00083 !-------------------------------------------------------------------------------
00084 !
00085 IF (LHOOK) CALL DR_HOOK('PREP_COUPLING_SURF_TRIP',0,ZHOOK_HANDLE)
00086  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00087 !
00088 !*       1.0   Test ISBA - TRIP grid compatibility
00089 !              -------------------------------------
00090 !
00091 IF(HGRID/="LONLAT REG")THEN
00092   CALL ABOR1_SFX('PREP_COUPLING_SURF_TRIPN: ISBA-TRIP REQUIRE LONLAT REG GRID')
00093 ENDIF
00094 !
00095  CALL READ_NAM_GRID_TRIP(HPROGRAM)
00096  CALL GET_GRID_CONF_TRIP_n(ZLONMIN_TRIP,ZLONMAX_TRIP,ZLATMIN_TRIP,ZLATMAX_TRIP,ZRES_TRIP,ILON_TRIP,ILAT_TRIP)
00097 !
00098  CALL GET_GRID_CONF_ISBA_n(ZLONMIN_ISBA,ZLONMAX_ISBA,ZLATMIN_ISBA,ZLATMAX_ISBA,ILON_ISBA,ILAT_ISBA,JL)
00099 ZRES_ISBA = (ZLONMAX_ISBA - ZLONMIN_ISBA) / ILON_ISBA
00100 !
00101 IF(ZRES_TRIP/=ZRES_ISBA)THEN
00102   WRITE(ILUOUT,*)'PREP_COUPLING_SURF_TRIPN: TRIP RESOLUTION = ',ZRES_TRIP
00103   WRITE(ILUOUT,*)'PREP_COUPLING_SURF_TRIPN: ISBA RESOLUTION = ',ZRES_ISBA
00104   CALL ABOR1_SFX('PREP_COUPLING_SURF_TRIPN: ISBA AND TRIP REQUIRE SAME RESOLUTION GRID')
00105 ENDIF
00106 !
00107 IF(ZLONMIN_ISBA/=ZLONMIN_TRIP.OR.ZLONMAX_ISBA/=ZLONMAX_TRIP)THEN
00108   CALL ABOR1_SFX('PREP_COUPLING_SURF_TRIPN: WRONG CONFIGURATION FOR LONGITUDE')
00109 ENDIF
00110 !
00111 IF(ZLATMIN_ISBA/=ZLATMIN_TRIP.OR.ZLATMAX_ISBA/=ZLATMAX_TRIP)THEN
00112   CALL ABOR1_SFX('PREP_COUPLING_SURF_TRIPN: WRONG CONFIGURATION FOR LATITUDE')
00113 ENDIF        
00114 !
00115 IF (LHOOK) CALL DR_HOOK('PREP_COUPLING_SURF_TRIP',1,ZHOOK_HANDLE)
00116 !-------------------------------------------------------------------------------
00117 !
00118 END SUBROUTINE PREP_COUPLING_SURF_TRIP