7 PDURATION, PTSTEP_FORC, KNI, &
8 KYEAR, KMONTH, KDAY, PTIME, &
55 USE modi_init_io_surf_n
57 USE modi_end_io_surf_n
58 USE modi_get_size_full_n
62 USE modi_set_surfex_filein
77 CHARACTER(LEN=6),
INTENT(IN) :: HSURF_FILETYPE
78 CHARACTER(LEN=6),
INTENT(IN) :: HFORCING_FILETYPE
79 INTEGER,
INTENT(OUT) :: KNI
80 INTEGER,
INTENT(OUT) :: KYEAR, KMONTH, KDAY
81 REAL,
INTENT(OUT) :: PDURATION,PTSTEP_FORC
82 REAL,
INTENT(OUT) :: PTIME
83 REAL,
DIMENSION(:),
POINTER :: PLAT, PLON
84 REAL,
DIMENSION(:),
POINTER :: PZS
85 REAL,
DIMENSION(:),
POINTER :: PZREF, PUREF
87 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWORK
90 CHARACTER(LEN=1) :: YSWAP
92 INTEGER :: INI, IDIM_FULL
93 INTEGER :: IYEAR, IMONTH, IDAY
95 INTEGER :: IRET, INB_FORC
97 DOUBLE PRECISION :: XTIME0
98 REAL(KIND=JPRB) :: ZHOOK_HANDLE
102 IF (
lhook)
CALL dr_hook(
'OL_READ_ATM_CONF_ASCII',0,zhook_handle)
115 IF (hforcing_filetype ==
'BINARY')
READ(21,*) yswap
116 IF (yswap.EQ.
'Y')
THEN 118 WRITE(iluout,*)
'*******************************************************************' 119 WRITE(iluout,*)
'Architecture of the machine needs to swap LITTLE_ENDIAN_ARCH to ', &
121 WRITE(iluout,*)
'*******************************************************************' 128 READ(21,*) ptstep_forc
129 pduration = ( inb_forc - 1 ) * ptstep_forc
145 CALL mpi_bcast(ptstep_forc,kind(ptstep_forc)/4,mpi_real,
npio,
ncomm,infompi)
146 CALL mpi_bcast(pduration,kind(pduration)/4,mpi_real,
npio,
ncomm,infompi)
154 CALL init_io_surf_n(dtco, u, hsurf_filetype,
'FULL ',
'SURF ',
'READ ')
156 CALL read_surf(hsurf_filetype,
'DIM_FULL',idim_full,iret)
157 CALL read_surf(hsurf_filetype,
'DTCUR',ttime,iret)
161 kyear = ttime%TDATE%YEAR
162 kmonth = ttime%TDATE%MONTH
163 kday = ttime%TDATE%DAY
177 ALLOCATE(zwork(idim_full))
189 READ(unit=21,fmt=
'(F15.8)') zwork0
192 READ(unit=21,fmt=
'(50(F15.8))') zwork
208 READ(unit=21,fmt=
'(F15.8)') zwork0
211 READ(unit=21,fmt=
'(50(F15.8))') zwork
227 READ(unit=21,fmt=
'(F15.8)') zwork0
230 READ(unit=21,fmt=
'(50(F15.8))') zwork
246 READ(unit=21,fmt=
'(F15.8)') zwork0
249 READ(unit=21,fmt=
'(50(F15.8))') zwork
265 READ(unit=21,fmt=
'(F15.8)') zwork0
268 READ(unit=21,fmt=
'(50(F15.8))') zwork
283 IF (idim_full /= ini .AND. ini/=1)
THEN 284 WRITE(iluout,*)
' NUMBER OF GRID POINTS INCONSISTENCY: ',kni,
'/',ini
285 CALL abor1_sfx(
'OL_READ_ATM_CONF_ASCII: NUMBER OF GRID POINTS INCONSISTENCY')
290 IF ( (kyear /= iyear) .OR. (kmonth /= imonth) .OR. (kday /= iday) )
THEN 291 WRITE(iluout,*)
' DATE INCONSISTANCY: ',kyear,kmonth,kday,
'/',iyear,imonth,iday
292 CALL abor1_sfx(
'OL_READ_ATM_CONF_ASCII: DATE INCONSISTENCY')
295 IF ( ptime /= ztime )
THEN 296 WRITE(iluout,*)
' TIME INCONSISTANCY: ',ptime,
'/',ztime
297 CALL abor1_sfx(
'OL_READ_ATM_CONF_ASCII: TIME INCONSISTENCY')
302 IF (
lhook)
CALL dr_hook(
'OL_READ_ATM_CONF_ASCII',1,zhook_handle)
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine get_size_full_n(HPROGRAM, KDIM_FULL, KSIZE_FULL_IN, KSIZE
subroutine ol_read_atm_conf_ascii(DTCO, U, HSURF_FILETYPE, HFORCING_FILETYPE, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF)
subroutine abor1_sfx(YTEXT)
subroutine end_io_surf_n(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
logical, dimension(nnwl), parameter little_endian_arch