Changeset 9013


Ignore:
Timestamp:
2017-12-13T15:00:04+01:00 (4 years ago)
Author:
dford
Message:

Update to read in and write out logchl obs STD values. See internal Met Office NEMO ticket 736.

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

Legend:

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

    r7713 r9013  
    11661166         nlogchlvars = 1 
    11671167 
    1168          ! Set the number of extra variables for logchl to 0 
    1169          nlogchlextr = 0 
     1168         ! Set the number of extra variables for logchl to 1 (STD) 
     1169         nlogchlextr = 1 
    11701170          
    11711171         IF ( ln_logchlfb ) THEN 
     
    20502050 
    20512051         ! Write the logchl data 
     2052         ! If padd is ever defined and added as an optional argument 
     2053         ! to the obs_wri_logchl call, then the observed STD values 
     2054         ! will need adding to padd in order to be written out 
    20522055         DO jlogchlset = 1, nlogchlsets 
    20532056       
  • branches/UKMO/dev_r4650_general_vert_coord_obsoper/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_logchl.F90

    r7713 r9013  
    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/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r7713 r9013  
    974974         nadd = padd%inum 
    975975      ELSE 
    976          nadd = 0 
     976         nadd = 1 
    977977      ENDIF 
    978978 
     
    10001000      fbdata%caddunit(1,1) = 'mg/m3' 
    10011001      fbdata%cgrid(1)      = 'T' 
    1002       DO ja = 1, nadd 
    1003          fbdata%caddname(1+ja) = padd%cdname(ja) 
    1004          fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
    1005          fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
    1006       END DO 
     1002      IF ( PRESENT( padd ) ) THEN 
     1003         DO ja = 1, nadd 
     1004            fbdata%caddname(1+ja) = padd%cdname(ja) 
     1005            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     1006            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     1007         END DO 
     1008      ELSE 
     1009         fbdata%caddname(2) = 'STD' 
     1010         fbdata%caddlong(2) = 'Standard deviation of LOGCHL' 
     1011         fbdata%caddunit(2) = 'mg/m3' 
     1012      ENDIF 
    10071013 
    10081014      WRITE(cfname, FMT="(A,'_fdbk_',I4.4,'.nc')") TRIM(cprefix), nproc 
     
    10671073         fbdata%iobsk(1,jo,1)  = 0 
    10681074         DO ja = 1, nadd 
    1069             fbdata%padd(1,jo,1+ja,1) = & 
    1070                & logchldata%rext(jo,padd%ipoint(ja)) 
     1075            IF ( PRESENT( padd ) ) THEN 
     1076               fbdata%padd(1,jo,1+ja,1) = & 
     1077                  & logchldata%rext(jo,padd%ipoint(ja)) 
     1078            ELSE 
     1079               fbdata%padd(1,jo,1+ja,1) = & 
     1080                  & logchldata%rext(jo,1) 
     1081            ENDIF 
    10711082         END DO 
    10721083         DO je = 1, next 
Note: See TracChangeset for help on using the changeset viewer.