18 USE modi_open_filein_ol
19 USE modi_close_filein_ol
23 USE yomhook
,ONLY : lhook, dr_hook
24 USE parkind1
,ONLY : jprb
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=40) :: cfile
62 character (len=56) :: comlink
65 REAL(KIND=JPRB) :: zhook_handle
68 IF (lhook) CALL dr_hook(
'NCPOST',0,zhook_handle)
78 INQUIRE(file=
'LONLAT.dat',exist=lcoord)
81 INQUIRE(file=
'PGD.txt', exist=linits)
83 IF (.NOT. linits)
THEN
84 WRITE(*,*)
' Now grid attributes are only in the PGD file'
85 WRITE(*,*)
' NO INPUT FILE FOUND FOR NCPOST'
86 WRITE(*,*)
' YOU SHOULD AT LEAST RUN PGD! '
93 'ASCII ',
'FULL ',
'SURF ',
'READ ')
96 'ASCII ',
'DIM_FULL', ini, iret)
98 'ASCII ',
'GRID_TYPE', cgrid_type, iret)
104 IF (cgrid_type==
'GAUSS ')
THEN
105 CALL
posnam(nunit,
'FULL '//
' '//
'LONGAUSS',gfound,nluout)
107 CALL
posnam(nunit,
'FULL '//
' '//
'XLON',gfound,nluout)
111 READ(nunit,fmt=
'(A50)') ycomment
112 READ(nunit,fmt=*,err=100) xlon(:)
114 IF (cgrid_type==
'GAUSS ')
THEN
115 CALL
posnam(nunit,
'FULL '//
' '//
'LATGAUSS',gfound,nluout)
117 CALL
posnam(nunit,
'FULL '//
' '//
'XLAT',gfound,nluout)
121 READ(nunit,fmt=
'(A50)') ycomment
122 READ(nunit,fmt=*,err=100) xlat(:)
124 OPEN(unit=30,file=
'LONLAT.dat',form=
'FORMATTED')
126 WRITE(30,*)xlon(ip),xlat(ip)
139 INQUIRE(file=
'NCPOST.nam',exist=lsxnam)
140 IF (.NOT.lsxnam)
THEN
141 WRITE(*,*)
' > NCPOST.nam does not exist'
144 OPEN(unit=46,file=
'NCPOST.nam',form=
'FORMATTED')
145 READ(46,
'(A1,1X,A6,1X,A16,1X,A40)')patchflag,cmask,hrec,cfile
149 'OFFLIN',
'FULL ',
'SURF ',
'READ ')
152 'OFFLIN',
'DIM_FULL', ini, iret)
155 OPEN(unit=30,file=
'LONLAT.dat',form=
'FORMATTED')
157 READ(30,*)xlon(ip),xlat(ip)
161 'OFFLIN',
'NB_TIMESTP', inb_forc, iret)
163 'OFFLIN',
'PATCH_NUMBER', ipatch, iret)
164 CALL system(
'rm SXPOST.nc')
165 comlink=
'ln -s '//cfile//
' SXPOST.nc'
168 IF (cmask ==
'FORC')
THEN
169 allocate(zfield2d(inb_forc-1,ini))
171 'OFFLIN',hrec,zfield2d(:,:), iret)
173 write(50,*)xlon(ji),xlat(ji),zfield2d(1,ji)
175 ELSEIF (cmask ==
'SIMU')
THEN
176 IF (patchflag ==
'+')
THEN
177 allocate(zfield3d(ini,ipatch,inb_forc-1))
179 'OFFLIN',hrec,zfield3d(:,:,:), iret)
181 write(50,*)xlon(ji),xlat(ji),zfield3d(ji,1,1)
183 ELSE IF (patchflag ==
'-')
THEN
184 allocate(zfield2d(ini,inb_forc-1))
186 'OFFLIN',hrec,zfield2d(:,:), iret)
188 write(50,*)xlon(ji),xlat(ji),zfield2d(ji,1)
192 write(*,*)
' > ',cmask,
'NOT ALLOWED (only FORC|SIMU)'
193 write(*,*)
' > Update NCPOST.nam'
203 WRITE(nluout,*)
' ERROR WHEN READING ARTICLE',hrec
207 IF (lhook) CALL dr_hook(
'NCPOST',1,zhook_handle)
211 CHARACTER(LEN=12) :: hrec
212 CHARACTER(LEN=*) :: cfilein
214 REAL(KIND=JPRB) :: zhook_handle
215 IF (lhook) CALL dr_hook(
'ERR_STOP',0,zhook_handle)
217 WRITE(nluout,*)
' ARTICLE ',trim(hrec),
' NOT FOUND IN FILE ', cfilein
220 WRITE(*,*)
' ARTICLE ',trim(hrec),
' NOT FOUND IN FILE ', cfilein
223 IF (lhook) CALL dr_hook(
'ERR_STOP',1,zhook_handle)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine err_stop(HREC, CFILEIN, NLUOUT)
subroutine close_filein_ol
subroutine surfex_deallo_list
subroutine goto_model(KMODEL)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine end_io_surf_n(HPROGRAM)
subroutine surfex_alloc_list(KMODEL)
subroutine open_filein_ol