Changeset 9054


Ignore:
Timestamp:
2017-12-14T16:17:59+01:00 (4 years ago)
Author:
dford
Message:

Merge in fix for reading/write logchl STD values.

Location:
branches/UKMO/dev_r4650_general_vert_coord_obsoper_pfts/NEMOGCM/NEMO/OPA_SRC/OBS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r4650_general_vert_coord_obsoper_pfts/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r8430 r9054  
    14201420         nlogchlvars = 1 
    14211421 
    1422          ! Set the number of extra variables for logchl to 0 
    1423          nlogchlextr = 0 
     1422         ! Set the number of extra variables for logchl to 1 (STD) 
     1423         nlogchlextr = 1 
    14241424          
    14251425         IF ( ln_logchlfb ) THEN 
     
    14901490         nlogchlpftvars = 1   ! ??????? ASK DAVID 
    14911491 
    1492          ! Set the number of extra variables for logchl to 0 
    1493          nlogchlpftextr = 0 
     1492         ! Set the number of extra variables for logchl to 1 (STD) 
     1493         nlogchlpftextr = 1 
    14941494          
    14951495         DO pft = 1, nn_logchlpftscc  
     
    25592559 
    25602560         ! Write the logchl data 
     2561         ! If padd is ever defined and added as an optional argument 
     2562         ! to the obs_wri_logchl call, then the observed STD values 
     2563         ! will need adding to padd in order to be written out 
    25612564         DO jlogchlset = 1, nlogchlsets 
    25622565       
  • branches/UKMO/dev_r4650_general_vert_coord_obsoper_pfts/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_logchl.F90

    r7713 r9054  
    8282      INTEGER :: jj 
    8383      INTEGER :: jk 
     84      INTEGER :: jadd 
    8485      INTEGER :: iflag 
    8586      INTEGER :: inobf 
     
    115116      TYPE(obfbdata), POINTER, DIMENSION(:) :: & 
    116117         & inpfiles 
     118      LOGICAL :: ll_get_std   ! Logical for getting STD 
    117119      real(wp), DIMENSION(knumfiles) :: & 
    118120         & djulini, & 
     
    120122      INTEGER :: iobs 
    121123      INTEGER :: iobstot 
     124      INTEGER :: iaddref_std 
    122125      INTEGER :: ios 
    123126      INTEGER :: ioserrcount 
     
    205208               CALL ctl_stop( 'File format unknown' ) 
    206209            ENDIF 
     210 
     211            !------------------------------------------------------------------  
     212            ! Find the references to additional entries, if any  
     213            !------------------------------------------------------------------  
     214            ! STD  
     215            iaddref_std = 0  
     216            ll_get_std = .FALSE. 
     217            DO jadd = 1,inpfiles(jj) % nadd   
     218               IF (  TRIM(inpfiles(jj) % caddname(jadd)) == "STD" ) THEN  
     219                  iaddref_std = jadd 
     220                  ll_get_std = .TRUE.  
     221                  EXIT  
     222               ENDIF  
     223            END DO 
    207224 
    208225            !------------------------------------------------------------------ 
     
    417434                  logchldata%rmod(iobs,1) = fbrmdi 
    418435               ENDIF 
     436                   
     437               ! Copy in STD  
     438               IF ( ll_get_std ) THEN  
     439                  logchldata%rext(iobs,1) = inpfiles(jj)%padd(1,ji,iaddref_std,1)  
     440               ELSE 
     441                  IF ( jk == 1 )   & 
     442                  &   CALL ctl_warn(   & 
     443                  &   "No STD values for logchl observations, setting to zero.")  
     444                  logchldata%rext(iobs,1) = 0.  
     445               ENDIF  
    419446            ENDIF 
    420447         ENDIF 
  • branches/UKMO/dev_r4650_general_vert_coord_obsoper_pfts/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r8105 r9054  
    976976         nadd = padd%inum 
    977977      ELSE 
    978          nadd = 0 
     978         nadd = 1 
    979979      ENDIF 
    980980 
     
    10081008      fbdata%caddunit(1,1) = 'mg/m3' 
    10091009      fbdata%cgrid(1)      = 'T' 
    1010       DO ja = 1, nadd 
    1011          fbdata%caddname(1+ja) = padd%cdname(ja) 
    1012          fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
    1013          fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
    1014       END DO 
     1010      IF ( PRESENT( padd ) ) THEN 
     1011         DO ja = 1, nadd 
     1012            fbdata%caddname(1+ja) = padd%cdname(ja) 
     1013            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     1014            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     1015         END DO 
     1016      ELSE 
     1017         fbdata%caddname(2) = 'STD' 
     1018         fbdata%caddlong(2) = 'Standard deviation of LOGCHL' 
     1019         fbdata%caddunit(2) = 'mg/m3' 
     1020      ENDIF 
    10151021 
    10161022      WRITE(cfname, FMT="(A,'_fdbk_',I4.4,'.nc')") TRIM(cprefix), nproc 
     
    10751081         fbdata%iobsk(1,jo,1)  = 0 
    10761082         DO ja = 1, nadd 
    1077             fbdata%padd(1,jo,1+ja,1) = & 
    1078                & logchldata%rext(jo,padd%ipoint(ja)) 
     1083            IF ( PRESENT( padd ) ) THEN 
     1084               fbdata%padd(1,jo,1+ja,1) = & 
     1085                  & logchldata%rext(jo,padd%ipoint(ja)) 
     1086            ELSE 
     1087               fbdata%padd(1,jo,1+ja,1) = & 
     1088                  & logchldata%rext(jo,1) 
     1089            ENDIF 
    10791090         END DO 
    10801091         DO je = 1, next 
Note: See TracChangeset for help on using the changeset viewer.