SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TOPD/read_file_masktopd.F90
Go to the documentation of this file.
00001 !-----------------------------------------------------------------
00002 !     ##########################
00003       SUBROUTINE READ_FILE_MASKTOPD(KI)
00004 !     ##########################
00005 !
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !        
00010 !     
00011 !!**  METHOD
00012 !!    ------
00013 !
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!    none
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------ 
00021 !!      
00022 !!    REFERENCE
00023 !!    ---------
00024 !!     
00025 !!    AUTHOR
00026 !!    ------
00027 !!
00028 !!      B. Vincendon    * Meteo-France *
00029 !!
00030 !!    MODIFICATIONS
00031 !!    -------------
00032 !!
00033 !!      Original   11/2011
00034 !-------------------------------------------------------------------------------
00035 !
00036 !*       0.     DECLARATIONS
00037 !               ------------
00038 !
00039 !
00040 USE MODD_TOPODYN
00041 USE MODD_COUPLING_TOPD, ONLY : NMASKI, NNPIX, NMASKT
00042 USE MODD_SURF_PAR,        ONLY : XUNDEF, NUNDEF
00043 USE MODI_OPEN_FILE
00044 USE MODI_CLOSE_FILE
00045 USE MODI_READ_TOPD_FILE
00046 !
00047 USE MODE_GRIDTYPE_CONF_PROJ
00048 !
00049 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00050 USE PARKIND1  ,ONLY : JPRB
00051 !
00052 IMPLICIT NONE
00053 !
00054 !*      0.1    declarations of arguments
00055 !
00056 INTEGER, INTENT(IN)             :: KI    ! Grid dimensions
00057 !
00058 !
00059 !*      0.2    declarations of local variables
00060 INTEGER                    :: JCAT,JMESH,JPIX
00061 INTEGER                    :: INUMPIX
00062 INTEGER :: IIMAX,IJMAX,IUNIT
00063  CHARACTER(LEN=50) :: YNAME
00064 REAL, DIMENSION(:),ALLOCATABLE    :: ZTOPD_READ !Topgraphic variable read
00065 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00066 !-------------------------------------------------------------------------------
00067 IF (LHOOK) CALL DR_HOOK('READ_FILE_MASKTOPD',0,ZHOOK_HANDLE)
00068 !
00069 !*       0.     Initialization:
00070 !               ---------------
00071 !
00072 ALLOCATE(ZTOPD_READ(NPMAX))
00073 !
00074 DO JCAT=1,NNCAT
00075   !
00076   YNAME=TRIM(CCAT(JCAT))//TRIM('.mask_topd')
00077   !
00078   CALL READ_TOPD_FILE('OFFLIN',YNAME,'FORMATTED',NNPT(JCAT),ZTOPD_READ)
00079   !
00080   DO JPIX=1,NPMAX
00081     !
00082     IF ( NLINE(JCAT,JPIX)/=0 ) THEN
00083       IF  (ZTOPD_READ(JPIX)==XUNDEF ) THEN
00084         NMASKT(JCAT,NLINE(JCAT,JPIX)) = NUNDEF
00085       ELSE
00086         NMASKT(JCAT,NLINE(JCAT,JPIX)) = FLOOR(ZTOPD_READ(JPIX))
00087       ENDIF
00088     ENDIF
00089     !
00090   ENDDO
00091   !
00092 ENDDO
00093 !
00094 ALLOCATE(NNPIX(KI))
00095 NNPIX(:) = NUNDEF
00096 DO JMESH=1,KI
00097   NNPIX(JMESH) = COUNT(NMASKT(:,:)==JMESH)
00098 ENDDO
00099 INUMPIX=MAXVAL(NNPIX)
00100 !
00101 ALLOCATE(NMASKI(KI,NNCAT,INUMPIX))
00102 NMASKI(:,:,:) = NUNDEF
00103 
00104 DO JCAT=1,NNCAT
00105   !
00106   YNAME=TRIM(CCAT(JCAT))//TRIM('.mask_surf')
00107   CALL OPEN_FILE('ASCII ',IUNIT,YNAME,'FORMATTED','READ')
00108   ! 
00109   DO JMESH=1,KI
00110     DO JPIX=1,NNPIX(JMESH)
00111       READ(IUNIT,*) NMASKI(JMESH,JCAT,JPIX)
00112     ENDDO
00113   ENDDO
00114   !
00115   CALL CLOSE_FILE('ASCII ',IUNIT)
00116   !
00117 ENDDO
00118 !
00119 IF (LHOOK) CALL DR_HOOK('READ_FILE_MASKTOPD',1,ZHOOK_HANDLE)
00120 !
00121 END SUBROUTINE READ_FILE_MASKTOPD