1 SUBROUTINE read_map2d(filename, varname, timestep, inverse, varout)
13 CHARACTER(len=*),
INTENT(IN) :: filename
14 CHARACTER(len=*),
INTENT(IN) :: varname
16 LOGICAL,
INTENT(IN) :: inverse
18 REAL,
DIMENSION(klon),
INTENT(OUT) :: varout
22 INTEGER :: nid, nvarid, ierr
23 INTEGER,
DIMENSION(3) :: start, count
24 CHARACTER(len=20) :: modname=
'read_map2D'
26 REAL,
DIMENSION(nbp_lon,nbp_lat) :: var_glo2d
27 REAL,
DIMENSION(nbp_lon,nbp_lat) :: var_glo2d_tmp
28 REAL,
DIMENSION(klon_glo) :: var_glo1d
32 IF (is_mpi_root .AND. is_omp_root)
THEN
33 ierr = nf90_open(trim(filename), nf90_nowrite, nid)
34 IF (ierr /= nf90_noerr) CALL
write_err_mess(
'Problem in opening file')
36 ierr = nf90_inq_varid(nid, trim(varname), nvarid)
37 IF (ierr /= nf90_noerr) CALL
write_err_mess(
'The variable is absent in file')
40 count=(/nbp_lon,nbp_lat,1/)
41 ierr = nf90_get_var(nid, nvarid, var_glo2d,start,count)
42 IF (ierr /= nf90_noerr) CALL
write_err_mess(
'Problem in reading varaiable')
44 ierr = nf90_close(nid)
45 IF (ierr /= nf90_noerr) CALL
write_err_mess(
'Problem in closing file')
49 var_glo2d_tmp(:,:) = var_glo2d(:,:)
51 var_glo2d(:,
j) = var_glo2d_tmp(:,nbp_lat-
j+1)
58 WRITE(
lunout,*)
'in read_map2D, filename = ', trim(filename)
59 WRITE(
lunout,*)
'in read_map2D, varname = ', trim(varname)
69 CHARACTER(len=*),
INTENT(IN) :: err_mess
72 WRITE(
lunout,*)
'Error in read_map2D, filename = ', trim(filename)
73 WRITE(
lunout,*)
'Error in read_map2D, varname = ', trim(varname)