- Timestamp:
- 2017-10-30T10:28:45+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8657_UKMO_OBSoper/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90
r6140 r8667 8 8 !! obs_wri_prof : Write profile observations in feedback format 9 9 !! obs_wri_surf : Write surface observations in feedback format 10 !! obs_wri_stats : Print basic statistics on the data being written out10 !! obs_wri_stats : Print basic statistics on the data being written out 11 11 !!---------------------------------------------------------------------- 12 12 … … 83 83 TYPE(obfbdata) :: fbdata 84 84 CHARACTER(LEN=40) :: clfname 85 CHARACTER(LEN= 6) :: clfiletype85 CHARACTER(LEN=10) :: clfiletype 86 86 INTEGER :: ilevel 87 87 INTEGER :: jvar … … 196 196 fbdata%ivqc(jo,:) = profdata%ivqc(jo,:) 197 197 fbdata%ivqcf(:,jo,:) = profdata%ivqcf(:,jo,:) 198 IF ( profdata%nqc(jo) > 10) THEN199 fbdata%ioqc(jo) = 4198 IF ( profdata%nqc(jo) > 255 ) THEN 199 fbdata%ioqc(jo) = IBSET(profdata%nqc(jo),2) 200 200 fbdata%ioqcf(1,jo) = profdata%nqcf(1,jo) 201 fbdata%ioqcf(2,jo) = profdata%nqc(jo) - 10201 fbdata%ioqcf(2,jo) = profdata%nqc(jo) 202 202 ELSE 203 203 fbdata%ioqc(jo) = profdata%nqc(jo) … … 236 236 fbdata%idqc(ik,jo) = profdata%var(jvar)%idqc(jk) 237 237 fbdata%idqcf(:,ik,jo) = profdata%var(jvar)%idqcf(:,jk) 238 IF ( profdata%var(jvar)%nvqc(jk) > 10) THEN239 fbdata%ivlqc(ik,jo,jvar) = 4238 IF ( profdata%var(jvar)%nvqc(jk) > 255 ) THEN 239 fbdata%ivlqc(ik,jo,jvar) = IBSET(profdata%var(jvar)%nvqc(jk),2) 240 240 fbdata%ivlqcf(1,ik,jo,jvar) = profdata%var(jvar)%nvqcf(1,jk) 241 fbdata%ivlqcf(2,ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) - 10241 fbdata%ivlqcf(2,ik,jo,jvar) = IAND(profdata%var(jvar)%nvqc(jk),b'0000 0000 1111 1111') 242 242 ELSE 243 243 fbdata%ivlqc(ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) … … 320 320 TYPE(obfbdata) :: fbdata 321 321 CHARACTER(LEN=40) :: clfname ! netCDF filename 322 CHARACTER(LEN= 6):: clfiletype322 CHARACTER(LEN=10) :: clfiletype 323 323 CHARACTER(LEN=12), PARAMETER :: cpname = 'obs_wri_surf' 324 324 INTEGER :: jo … … 395 395 END DO 396 396 397 CASE('ICECON ')397 CASE('ICECONC') 398 398 399 399 CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & … … 418 418 END DO 419 419 420 CASE('SSS') 421 422 CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 423 & 1 + iadd, iext, .TRUE. ) 424 425 clfiletype = 'sssfb' 426 fbdata%cname(1) = surfdata%cvars(1) 427 fbdata%coblong(1) = 'Sea surface salinity' 428 fbdata%cobunit(1) = 'psu' 429 DO je = 1, iext 430 fbdata%cextname(je) = pext%cdname(je) 431 fbdata%cextlong(je) = pext%cdlong(je,1) 432 fbdata%cextunit(je) = pext%cdunit(je,1) 433 END DO 434 fbdata%caddlong(1,1) = 'Model interpolated SSS' 435 fbdata%caddunit(1,1) = 'psu' 436 fbdata%cgrid(1) = 'T' 437 DO ja = 1, iadd 438 fbdata%caddname(1+ja) = padd%cdname(ja) 439 fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 440 fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 441 END DO 442 443 CASE DEFAULT 444 445 CALL ctl_stop( 'Unknown observation type '//TRIM(surfdata%cvars(1))//' in obs_wri_surf' ) 446 420 447 END SELECT 421 448 … … 439 466 fbdata%ivqc(jo,:) = 0 440 467 fbdata%ivqcf(:,jo,:) = 0 441 IF ( surfdata%nqc(jo) > 10) THEN468 IF ( surfdata%nqc(jo) > 255 ) THEN 442 469 fbdata%ioqc(jo) = 4 443 470 fbdata%ioqcf(1,jo) = 0 444 fbdata%ioqcf(2,jo) = surfdata%nqc(jo) - 10471 fbdata%ioqcf(2,jo) = IAND(surfdata%nqc(jo),b'0000 0000 1111 1111') 445 472 ELSE 446 473 fbdata%ioqc(jo) = surfdata%nqc(jo) … … 474 501 fbdata%idqc(1,jo) = 0 475 502 fbdata%idqcf(:,1,jo) = 0 476 IF ( surfdata%nqc(jo) > 10) THEN503 IF ( surfdata%nqc(jo) > 255 ) THEN 477 504 fbdata%ivqc(jo,1) = 4 478 505 fbdata%ivlqc(1,jo,1) = 4 479 506 fbdata%ivlqcf(1,1,jo,1) = 0 480 fbdata%ivlqcf(2,1,jo,1) = surfdata%nqc(jo) - 10507 fbdata%ivlqcf(2,1,jo,1) = IAND(surfdata%nqc(jo),b'0000 0000 1111 1111') 481 508 ELSE 482 509 fbdata%ivqc(jo,1) = surfdata%nqc(jo)
Note: See TracChangeset
for help on using the changeset viewer.