Changeset 5992


Ignore:
Timestamp:
2015-12-03T12:16:20+01:00 (5 years ago)
Author:
timgraham
Message:

Merged branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION into branch

Location:
branches/2015/dev_MetOffice_merge_2015/NEMOGCM
Files:
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_MetOffice_merge_2015/NEMOGCM/CONFIG/SHARED/namelist_ref

    r5960 r5992  
    12141214   ln_grid_global = .true. 
    12151215   ln_grid_search_lookup = .false. 
     1216   ln_sstbias = .false.  
     1217   sstbias_files = 'sstbias.nc' 
    12161218/ 
    12171219!----------------------------------------------------------------------- 
  • branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r5979 r5992  
    2525   USE obs_read_sla             ! Reading and allocation of SLA observations   
    2626   USE obs_read_sst             ! Reading and allocation of SST observations   
     27   USE obs_sstbias              ! Bias correction routine for SST  
    2728   USE obs_readmdt              ! Reading and allocation of MDT for SLA. 
    2829   USE obs_read_seaice          ! Reading and allocation of Sea Ice observations   
     
    8788   LOGICAL, PUBLIC :: ln_ignmis      !: Logical switch for ignoring missing files 
    8889   LOGICAL, PUBLIC :: ln_s_at_t      !: Logical switch to compute model S at T observations 
    89  
     90   LOGICAL, PUBLIC :: ln_sstbias     !: Logical switch for bias corection of SST  
     91    
    9092   REAL(KIND=dp), PUBLIC :: dobsini   !: Observation window start date YYYYMMDD.HHMMSS 
    9193   REAL(KIND=dp), PUBLIC :: dobsend   !: Observation window end date YYYYMMDD.HHMMSS 
     
    102104   !                    !: If so use endailyavtypes 
    103105      & ln_profb_enatim !: Change tim for 820 enact data set. 
    104     
     106 
     107   INTEGER, DIMENSION(MaxNumFiles), PUBLIC :: sstbias_type !SST bias type     
     108       
    105109   LOGICAL, DIMENSION(MaxNumFiles) :: & 
    106110      & ln_velfb_av   !: Is the velocity feedback files daily average? 
     
    137141      !!        !  06-10  (A. Weaver) Cleaning and add controls 
    138142      !!        !  07-03  (K. Mogensen) General handling of profiles 
     143      !!        !  14-08  (J.While) Incorporated SST bias correction   
    139144      !!---------------------------------------------------------------------- 
    140145 
     
    146151      CHARACTER(len=128) :: profbfiles(MaxNumFiles) 
    147152      CHARACTER(len=128) :: sstfiles(MaxNumFiles)       
    148       CHARACTER(len=128) :: sstfbfiles(MaxNumFiles)  
     153      CHARACTER(len=128) :: sstfbfiles(MaxNumFiles) 
     154      CHARACTER(len=128) :: sstbias_files(MaxNumFiles)  
    149155      CHARACTER(len=128) :: slafilesact(MaxNumFiles)       
    150156      CHARACTER(len=128) :: slafilespas(MaxNumFiles)       
     
    182188         &            ln_velhradcp, velhradcpfiles,                   & 
    183189         &            ln_velfb, velfbfiles, ln_velfb_av,              & 
    184          &            ln_profb_enatim, ln_ignmis, ln_cl4 
     190         &            ln_profb_enatim, ln_ignmis, ln_cl4,             & 
     191         &            ln_sstbias, sstbias_files           
    185192 
    186193      INTEGER :: jprofset 
     
    195202      INTEGER :: jnumsst 
    196203      INTEGER :: jnumsstfb 
     204      INTEGER :: jnumsstbias  
    197205      INTEGER :: jnumseaice 
    198206      INTEGER :: jnumvelavcur 
     
    210218      !----------------------------------------------------------------------- 
    211219       
    212       !Initalise all values in namelist arrays 
    213       enactfiles(:) = '' 
    214       coriofiles(:) = '' 
    215       profbfiles(:) = '' 
    216       slafilesact(:) = '' 
    217       slafilespas(:) = '' 
    218       slafbfiles(:) = '' 
    219       sstfiles(:)   = '' 
    220       sstfbfiles(:) = '' 
    221       seaicefiles(:) = '' 
    222       velcurfiles(:) = '' 
     220      !Initalise all values in namelist arrays  
     221      enactfiles(:) = ''  
     222      coriofiles(:) = ''  
     223      profbfiles(:) = ''  
     224      slafilesact(:) = ''  
     225      slafilespas(:) = ''  
     226      slafbfiles(:) = ''  
     227      sstfiles(:)   = ''  
     228      sstfbfiles(:) = ''  
     229      seaicefiles(:) = ''  
     230      velcurfiles(:) = ''  
     231      velavcurfiles(:) = ''  
     232      velhrcurfiles(:) = ''  
     233      velavadcpfiles(:) = ''  
     234      velhradcpfiles(:) = ''  
     235      velfbfiles(:) = ''  
    223236      veladcpfiles(:) = '' 
    224       velavcurfiles(:) = '' 
    225       velhrcurfiles(:) = '' 
    226       velavadcpfiles(:) = '' 
    227       velhradcpfiles(:) = '' 
    228       velfbfiles(:) = '' 
    229       velcurfiles(:) = '' 
    230       veladcpfiles(:) = '' 
    231       endailyavtypes(:) = -1 
    232       endailyavtypes(1) = 820 
    233       ln_profb_ena(:) = .FALSE. 
    234       ln_profb_enatim(:) = .TRUE. 
    235       ln_velfb_av(:) = .FALSE. 
    236       ln_ignmis = .FALSE. 
     237      sstbias_files(:) = ''   
     238      endailyavtypes(:) = -1  
     239      endailyavtypes(1) = 820  
     240      ln_profb_ena(:) = .FALSE.  
     241      ln_profb_enatim(:) = .TRUE.  
     242      ln_velfb_av(:) = .FALSE.  
     243      ln_ignmis = .FALSE.  
    237244 
    238245      CALL ini_date( dobsini ) 
     
    290297         lmask(:) = .FALSE. 
    291298      ENDIF 
     299      IF (ln_sstbias) THEN  
     300         lmask(:) = .FALSE.  
     301         WHERE (sstbias_files(:) /= '') lmask(:) = .TRUE.  
     302         jnumsstbias = COUNT(lmask)  
     303         lmask(:) = .FALSE.  
     304      ENDIF       
    292305      IF (ln_seaice) THEN 
    293306         lmask(:) = .FALSE. 
     
    341354         WRITE(numout,*) '             Logical switch for GHRSST observations          ln_ghrsst = ', ln_ghrsst 
    342355         WRITE(numout,*) '             Logical switch for feedback SST data             ln_sstfb = ', ln_sstfb 
     356         WRITE(numout,*) '             Logical switch for SST bias correction         ln_sstbias = ', ln_sstbias  
    343357         WRITE(numout,*) '             Logical switch for night-time SST obs         ln_sstnight = ', ln_sstnight 
    344358         WRITE(numout,*) '             Logical switch for SSS observations                ln_sss = ', ln_sss 
     
    776790 
    777791         ENDIF 
    778  
     792          
     793         !Read in bias field and correct SST. 
     794         IF ( ln_sstbias ) THEN 
     795            IF ( jnumsstbias == 0 ) CALL ctl_stop("ln_sstbias set,"// & 
     796                                             "  but no bias"// & 
     797                                             " files to read in")    
     798            CALL obs_app_sstbias( nsstsets, sstdatqc, n2dint, & 
     799                                  jnumsstbias, &  
     800                                  sstbias_files(1:jnumsstbias) ) 
     801         ENDIF 
     802          
    779803      ENDIF 
    780804 
Note: See TracChangeset for help on using the changeset viewer.