SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE OL_READ_ATM_BINARY(KFORC_STEP, & 00003 PTA,PQA,PWIND,PDIR_SW,PSCA_SW,PLW,PSNOW, & 00004 PRAIN,PPS,PCO2,PDIR ) 00005 !************************************************************************** 00006 ! 00007 !! PURPOSE 00008 !! ------- 00009 ! Read in the ascii file the atmospheric forcing for the actual time 00010 ! step KFORC_STEP, and for the next one. 00011 ! The two time step are needed for the time interpolation of the 00012 ! forcing. 00013 ! If the end of the file is reached, set the two step to the last 00014 ! values. 00015 ! Return undef value if the variable is not present 00016 !! 00017 !!** METHOD 00018 !! ------ 00019 !! 00020 !! EXTERNAL 00021 !! -------- 00022 !! 00023 !! IMPLICIT ARGUMENTS 00024 !! ------------------ 00025 !! 00026 !! REFERENCE 00027 !! --------- 00028 !! 00029 !! 00030 !! AUTHOR 00031 !! ------ 00032 !! A. Lemonsu *Meteo France* 00033 !! 00034 !! MODIFICATIONS 00035 !! ------------- 00036 !! Original 03/2008 00037 ! 00038 USE MODD_IO_SURF_OL, ONLY : XCOUNT 00039 USE MODI_READ_SURF_ATM 00040 ! 00041 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00042 USE PARKIND1 ,ONLY : JPRB 00043 ! 00044 IMPLICIT NONE 00045 ! 00046 ! global variables 00047 REAL, DIMENSION(:,:),INTENT(INOUT) :: PTA 00048 REAL, DIMENSION(:,:),INTENT(INOUT) :: PQA 00049 REAL, DIMENSION(:,:),INTENT(INOUT) :: PWIND 00050 REAL, DIMENSION(:,:),INTENT(INOUT) :: PDIR_SW 00051 REAL, DIMENSION(:,:),INTENT(INOUT) :: PSCA_SW 00052 REAL, DIMENSION(:,:),INTENT(INOUT) :: PLW 00053 REAL, DIMENSION(:,:),INTENT(INOUT) :: PSNOW 00054 REAL, DIMENSION(:,:),INTENT(INOUT) :: PRAIN 00055 REAL, DIMENSION(:,:),INTENT(INOUT) :: PPS 00056 REAL, DIMENSION(:,:),INTENT(INOUT) :: PCO2 00057 REAL, DIMENSION(:,:),INTENT(INOUT) :: PDIR 00058 INTEGER,INTENT(IN) :: KFORC_STEP 00059 ! local variables 00060 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00061 ! 00062 ! read data 00063 IF (LHOOK) CALL DR_HOOK('OL_READ_ATM_BINARY',0,ZHOOK_HANDLE) 00064 CALL READ_SURF_ATM('BINARY',PTA (:,1:XCOUNT),KFORC_STEP,XCOUNT,22) 00065 CALL READ_SURF_ATM('BINARY',PQA (:,1:XCOUNT),KFORC_STEP,XCOUNT,23) 00066 CALL READ_SURF_ATM('BINARY',PWIND (:,1:XCOUNT),KFORC_STEP,XCOUNT,24) 00067 CALL READ_SURF_ATM('BINARY',PLW (:,1:XCOUNT),KFORC_STEP,XCOUNT,25) 00068 CALL READ_SURF_ATM('BINARY',PDIR_SW(:,1:XCOUNT),KFORC_STEP,XCOUNT,26) 00069 CALL READ_SURF_ATM('BINARY',PSCA_SW(:,1:XCOUNT),KFORC_STEP,XCOUNT,27) 00070 CALL READ_SURF_ATM('BINARY',PRAIN (:,1:XCOUNT),KFORC_STEP,XCOUNT,28) 00071 CALL READ_SURF_ATM('BINARY',PSNOW (:,1:XCOUNT),KFORC_STEP,XCOUNT,29) 00072 CALL READ_SURF_ATM('BINARY',PPS (:,1:XCOUNT),KFORC_STEP,XCOUNT,30) 00073 CALL READ_SURF_ATM('BINARY',PDIR (:,1:XCOUNT),KFORC_STEP,XCOUNT,31) 00074 CALL READ_SURF_ATM('BINARY',PCO2 (:,1:XCOUNT),KFORC_STEP,XCOUNT,32) 00075 ! 00076 IF (LHOOK) CALL DR_HOOK('OL_READ_ATM_BINARY',1,ZHOOK_HANDLE) 00077 ! 00078 END SUBROUTINE OL_READ_ATM_BINARY