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