Changeset 8856 for branches/UKMO/dev_r5518_obs_oper_update_obserr/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_surf.F90
- Timestamp:
- 2017-11-30T14:06:43+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update_obserr/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_surf.F90
r7992 r8856 97 97 INTEGER :: ios 98 98 INTEGER :: ioserrcount 99 INTEGER :: iextr 99 100 INTEGER, PARAMETER :: jpsurfmaxtype = 1024 100 101 INTEGER, DIMENSION(knumfiles) :: irefdate … … 108 109 & iindx, & 109 110 & ifileidx, & 110 & isurfidx 111 & isurfidx, & 112 & iadd_std 111 113 REAL(wp), DIMENSION(:), ALLOCATABLE :: & 112 114 & zphi, & … … 122 124 123 125 ! Local initialization 124 iobs = 0125 126 iobs = 0 127 iextr = kextr 126 128 !----------------------------------------------------------------------- 127 129 ! Count the number of files needed and allocate the obfbdata type … … 131 133 132 134 ALLOCATE( inpfiles(inobf) ) 135 ALLOCATE( iadd_std(inobf) ) 133 136 134 137 surf_files : DO jj = 1, inobf … … 195 198 ENDIF 196 199 END DO 200 ENDIF 201 202 iadd_std(jj) = -1 203 IF ( inpfiles(jj)%nadd > 0 ) THEN 204 DO ji = 1, inpfiles(jj)%nadd 205 IF ( TRIM( inpfiles(jj)%caddname(ji) ) == 'STD' ) THEN 206 iextr = kextr + 1 207 iadd_std(jj) = ji 208 ENDIF 209 END DO 210 ENDIF 211 212 IF(lwp) THEN 213 IF ( iadd_std(jj) /= -1 ) THEN 214 WRITE(numout,*) ' STD variable available in input file so passing it through the obs oper' 215 WRITE(numout,*) 216 ENDIF 197 217 ENDIF 198 218 … … 339 359 & iindx ) 340 360 341 CALL obs_surf_alloc( surfdata, iobs, kvars, kextr, kstp, jpi, jpj )361 CALL obs_surf_alloc( surfdata, iobs, kvars, iextr, kstp, jpi, jpj ) 342 362 343 363 ! Read obs/positions, QC, all variable and assign to surfdata … … 345 365 iobs = 0 346 366 surfdata%cvars(:) = clvars(:) 367 IF ( ldmod .AND. ( TRIM( surfdata%cvars(1) ) == 'SLA' ) ) THEN 368 surfdata%cext(1) = 'SSH' 369 surfdata%cext(2) = 'MDT' 370 ENDIF 371 IF ( iextra > kextr ) surfdata%cext(iextr) = 'STD' 347 372 348 373 ityp (:) = 0 … … 426 451 surfdata%robs(iobs,1) = inpfiles(jj)%pob(1,ji,1) 427 452 428 429 453 ! Model and MDT is set to fbrmdi unless read from file 430 454 IF ( ldmod ) THEN … … 437 461 surfdata%rmod(iobs,1) = fbrmdi 438 462 IF ( TRIM(surfdata%cvars(1)) == 'SLA' ) surfdata%rext(iobs,:) = fbrmdi 463 ENDIF 464 465 ! STD (obs error standard deviation) read from file and passed through obs operator 466 IF ( iadd_std(jj) /= -1 ) THEN 467 surfdata%rext(iobs,iextr) = inpfiles(jj)%padd(1,ji,iadd_std(jj),1) 439 468 ENDIF 440 469 ENDIF … … 488 517 END DO 489 518 DEALLOCATE( inpfiles ) 519 DEALLOCATE( iadd_std ) 490 520 491 521 END SUBROUTINE obs_rea_surf
Note: See TracChangeset
for help on using the changeset viewer.