18 USE modi_open_filein_ol
19 USE modi_close_filein_ol
26 USE modi_end_io_surf_n
27 USE modi_init_io_surf_n
30 REAL,
ALLOCATABLE,
DIMENSION(:) :: ZLOC
31 REAL,
ALLOCATABLE,
DIMENSION(:) :: ZWRK
32 REAL,
ALLOCATABLE,
DIMENSION(:) :: XLON
33 REAL,
ALLOCATABLE,
DIMENSION(:) :: XLAT
34 INTEGER,
ALLOCATABLE,
DIMENSION(:):: IWRK2
35 CHARACTER(LEN=50) :: YCOMMENT
36 CHARACTER(LEN=50) :: NOM_ARTICLE
37 CHARACTER(LEN=12) :: HREC
38 CHARACTER(LEN=1) :: PATCHFLAG
39 CHARACTER(LEN=2) :: YPAS,YLVL
40 CHARACTER(LEN=10) :: CGRID_TYPE
45 LOGICAL :: LGEO=.true.
51 INTEGER :: IFIELD, IWFIELD
52 INTEGER :: IPATCH, JPATCH
59 real,
allocatable,
dimension(:,:,:) :: zfield3d
60 real,
allocatable,
dimension(:,:) :: zfield2d
61 character (len=56) :: comlink
64 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 INQUIRE(file=
'LONLAT.dat',exist=lcoord)
80 INQUIRE(file=
'PGD.txt', exist=linits)
82 IF (.NOT. linits)
THEN 83 WRITE(*,*)
' Now grid attributes are only in the PGD file' 84 WRITE(*,*)
' NO INPUT FILE FOUND FOR NCPOST' 85 WRITE(*,*)
' YOU SHOULD AT LEAST RUN PGD! ' 93 CALL read_surf(
'ASCII ',
'DIM_FULL', ini, iret)
94 CALL read_surf(
'ASCII ',
'GRID_TYPE', cgrid_type, iret)
100 IF (cgrid_type==
'GAUSS ')
THEN 107 READ(
nunit,fmt=
'(A50)') ycomment
108 READ(
nunit,fmt=*,err=100) xlon(:)
110 IF (cgrid_type==
'GAUSS ')
THEN 117 READ(
nunit,fmt=
'(A50)') ycomment
118 READ(
nunit,fmt=*,err=100) xlat(:)
120 OPEN(unit=30,file=
'LONLAT.dat',form=
'FORMATTED')
122 WRITE(30,*)xlon(ip),xlat(ip)
135 INQUIRE(file=
'NCPOST.nam',exist=lsxnam)
136 IF (.NOT.lsxnam)
THEN 137 WRITE(*,*)
' > NCPOST.nam does not exist' 140 OPEN(unit=46,file=
'NCPOST.nam',form=
'FORMATTED')
141 READ(46,
'(A1,1X,A6,1X,A16,1X,A40)')patchflag,
cmask,hrec,
cfile 146 CALL read_surf(
'OFFLIN',
'DIM_FULL', ini, iret)
149 OPEN(unit=30,file=
'LONLAT.dat',form=
'FORMATTED')
151 READ(30,*)xlon(ip),xlat(ip)
154 CALL read_surf(
'OFFLIN',
'NB_TIMESTP', inb_forc, iret)
155 CALL read_surf(
'OFFLIN',
'PATCH_NUMBER', ipatch, iret)
156 CALL system(
'rm SXPOST.nc')
157 comlink=
'ln -s '//
cfile//
' SXPOST.nc' 160 IF (
cmask ==
'FORC')
THEN 161 allocate(zfield2d(inb_forc-1,ini))
162 CALL read_surf(
'OFFLIN',hrec,zfield2d(:,:), iret)
164 write(50,*)xlon(ji),xlat(ji),zfield2d(1,ji)
166 ELSEIF (
cmask ==
'SIMU')
THEN 167 IF (patchflag ==
'+')
THEN 168 allocate(zfield3d(ini,ipatch,inb_forc-1))
169 CALL read_surf(
'OFFLIN',hrec,zfield3d(:,:,:), iret)
171 write(50,*)xlon(ji),xlat(ji),zfield3d(ji,1,1)
173 ELSE IF (patchflag ==
'-')
THEN 174 allocate(zfield2d(ini,inb_forc-1))
175 CALL read_surf(
'OFFLIN',hrec,zfield2d(:,:), iret)
177 write(50,*)xlon(ji),xlat(ji),zfield2d(ji,1)
181 write(*,*)
' > ',
cmask,
'NOT ALLOWED (only FORC|SIMU)' 182 write(*,*)
' > Update NCPOST.nam' 192 WRITE(
nluout,*)
' ERROR WHEN READING ARTICLE',hrec
199 SUBROUTINE err_stop(HREC,CFILEIN,NLUOUT)
200 CHARACTER(LEN=12) :: HREC
201 CHARACTER(LEN=*) :: CFILEIN
203 REAL(KIND=JPRB) :: ZHOOK_HANDLE
206 WRITE(nluout,*)
' ARTICLE ',trim(hrec),
' NOT FOUND IN FILE ', cfilein
209 WRITE(*,*)
' ARTICLE ',trim(hrec),
' NOT FOUND IN FILE ', cfilein
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine err_stop(HREC, CFILEIN, NLUOUT)
subroutine close_filein_ol
subroutine goto_model(KMODEL)
subroutine surfex_deallo_list
type(surfex_t), pointer ysc
subroutine end_io_surf_n(HPROGRAM)
subroutine surfex_alloc_list(KMODEL)
character(len=28), save cfilein
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
character(len=28), save cfile
subroutine open_filein_ol