41 USE modn_assim, ONLY : nam_nacveg,nam_assim,lassim,cassim,&
42 nam_io_varassim,nam_obs,nam_var,nam_ens
43 USE modd_assim, ONLY : nvar,nobstype,xtprt,xtprt_m,xsigma,&
44 xsigma_m,cvar,cvar_m,cobs,nnco,&
45 nvarmax,nncv,lassim,cassim_isba,lprt,&
46 nobsmax,xerrobs_m,xerrobs, &
48 xinfl_m,xinfl,xaddinfl_m,xaddinfl, &
49 xaddtimecorr_m, xaddtimecorr, nie, &
51 USE yomhook
, ONLY : lhook,dr_hook
52 USE parkind1
, ONLY : jprb
55 USE modi_open_namelist
57 USE modi_close_namelist
65 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
76 REAL(KIND=JPRB) :: zhook_handle
81 IF (lhook) CALL dr_hook(
'READ_ASSIM_CONF',0,zhook_handle)
88 CALL
posnam(inam,
'NAM_ASSIM', gfound,iluout)
89 IF (gfound)
READ(unit=inam,nml=nam_assim)
90 CALL
posnam(inam,
'NAM_NACVEG', gfound,iluout)
91 IF (gfound)
READ(unit=inam,nml=nam_nacveg)
92 CALL
posnam(inam,
'NAM_IO_VARASSIM',gfound,iluout)
93 IF (gfound)
READ(unit=inam,nml=nam_io_varassim)
94 CALL
posnam(inam,
'NAM_OBS', gfound,iluout)
95 IF (gfound)
READ(unit=inam,nml=nam_obs)
96 CALL
posnam(inam,
'NAM_VAR', gfound,iluout)
97 IF (gfound)
READ(unit=inam,nml=nam_var)
98 CALL
posnam(inam,
'NAM_ENS', gfound,iluout)
99 IF (gfound)
READ(unit=inam,nml=nam_ens)
108 IF ( ( cassim_isba ==
"EKF" .AND. ( lassim.OR.lprt ) ) .OR. &
109 ( cassim_isba ==
"ENKF" .AND. ( lassim.OR.nie/=0 ) ) )
THEN
111 IF (.NOT.
ALLOCATED(xtprt))
ALLOCATE (xtprt(nvar))
112 IF (.NOT.
ALLOCATED(xsigma))
ALLOCATE (xsigma(nvar))
113 IF (.NOT.
ALLOCATED(cvar))
ALLOCATE (cvar(nvar))
115 IF (sum(nncv) /= nvar)
THEN
116 WRITE(*,*)
'INCONSISTENCY in set-up of CONTROL VARIABLES',sum(nncv),nvar
117 CALL
abor1_sfx(
'INCONSISTENCY in set-up of CONTROL VARIABLES')
122 IF (nncv(i) == 1 .AND. j <= nvar )
THEN
123 xtprt(j) = xtprt_m(i)
124 xsigma(j) = xsigma_m(i)
131 IF ( ( cassim_isba ==
"EKF" .AND. ( lassim.OR.lprt ) ) .OR. &
132 ( cassim_isba ==
"ENKF" .AND. ( lassim.OR.nie/=0 ) ) .OR. (trim(cfile_format_obs) ==
"ASCII") )
THEN
134 IF (sum(nnco) /= nobstype)
THEN
135 WRITE(*,*)
'INCONSISTENCY in set-up of OBSERVATIONS',sum(nnco),nobstype
136 CALL
abor1_sfx(
'INCONSISTENCY in set-up ofOBSERVATIONS')
139 IF (.NOT.
ALLOCATED(cobs))
ALLOCATE (cobs(nobstype))
141 IF (.NOT.
ALLOCATED(xerrobs))
ALLOCATE (xerrobs(nobstype))
142 IF (.NOT.
ALLOCATED(xqcobs))
ALLOCATE (xqcobs(nobstype))
145 IF (nnco(i) == 1 .AND. j <= nobstype )
THEN
158 xerrobs(j) = xerrobs_m(i)
159 xqcobs(j) = xqcobs_m(i)
165 IF ( cassim_isba ==
"ENKF" .AND. ( lassim.OR.nie/=0 ) )
THEN
167 IF (.NOT.
ALLOCATED(xinfl))
ALLOCATE (xinfl(nvar))
168 IF (.NOT.
ALLOCATED(xaddinfl))
ALLOCATE (xaddinfl(nvar))
169 IF (.NOT.
ALLOCATED(xaddtimecorr))
ALLOCATE (xaddtimecorr(nvar))
173 IF (nncv(i) == 1 .AND. j <= nvar )
THEN
174 xinfl(j) = xinfl_m(i)
175 xaddinfl(j) = xaddinfl_m(i)
176 xaddtimecorr(j) = xaddtimecorr_m(i)
183 IF (lhook) CALL dr_hook(
'READ_ASSIM_CONF',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_assim_conf(HPROGRAM)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)