Changeset 4768


Ignore:
Timestamp:
2014-09-17T11:05:03+02:00 (6 years ago)
Author:
jwhile
Message:

Adding code for bias correction to SST obs

Location:
branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/CONFIG/SHARED/namelist_ref

    r4384 r4768  
    11121112                           !     sstfiles                GHRSST input observation file name 
    11131113   !                       ! sstfbfiles: Feedback SST input observation file name 
    1114    sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 
     1114   sstfbfiles = 'sst_01.nc' 
    11151115                           !     seaicefiles             Sea Ice input observation file name 
    11161116                           !     velavcurfiles           Vel. cur. daily av. input file name 
     
    11321132   ln_grid_global = .true. 
    11331133   ln_grid_search_lookup = .false. 
     1134   ln_sstbias = .false.  
     1135   sstbias_files = 'sstbias.nc' 
    11341136/ 
    11351137!----------------------------------------------------------------------- 
  • branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r4624 r4768  
    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? 
     
    135139      !!        !  06-10  (A. Weaver) Cleaning and add controls 
    136140      !!        !  07-03  (K. Mogensen) General handling of profiles 
     141      !!        !  14-08  (J.While) Incorporated SST bias correction   
    137142      !!---------------------------------------------------------------------- 
    138143 
     
    144149      CHARACTER(len=128) :: profbfiles(MaxNumFiles) 
    145150      CHARACTER(len=128) :: sstfiles(MaxNumFiles)       
    146       CHARACTER(len=128) :: sstfbfiles(MaxNumFiles)  
     151      CHARACTER(len=128) :: sstfbfiles(MaxNumFiles) 
     152      CHARACTER(len=128) :: sstbias_files(MaxNumFiles)  
    147153      CHARACTER(len=128) :: slafilesact(MaxNumFiles)       
    148154      CHARACTER(len=128) :: slafilespas(MaxNumFiles)       
     
    180186         &            ln_velhradcp, velhradcpfiles,                   & 
    181187         &            ln_velfb, velfbfiles, ln_velfb_av,              & 
    182          &            ln_profb_enatim, ln_ignmis, ln_cl4 
     188         &            ln_profb_enatim, ln_ignmis, ln_cl4,             & 
     189         &            ln_sstbias, sstbias_files           
    183190 
    184191      INTEGER :: jprofset 
     
    193200      INTEGER :: jnumsst 
    194201      INTEGER :: jnumsstfb 
     202      INTEGER :: jnumsstbias  
    195203      INTEGER :: jnumseaice 
    196204      INTEGER :: jnumvelavcur 
     
    208216      !----------------------------------------------------------------------- 
    209217 
    210       velcurfiles(:) = '' 
     218      !Initalise all values in namelist arrays  
     219      enactfiles(:) = ''  
     220      coriofiles(:) = ''  
     221      profbfiles(:) = ''  
     222      slafilesact(:) = ''  
     223      slafilespas(:) = ''  
     224      slafbfiles(:) = ''  
     225      sstfiles(:)   = ''  
     226      sstfbfiles(:) = ''  
     227      seaicefiles(:) = ''  
     228      velcurfiles(:) = ''  
     229      veladcpfiles(:) = ''  
     230      velavcurfiles(:) = ''  
     231      velhrcurfiles(:) = ''  
     232      velavadcpfiles(:) = ''  
     233      velhradcpfiles(:) = ''  
     234      velfbfiles(:) = ''  
     235      velcurfiles(:) = ''  
    211236      veladcpfiles(:) = '' 
     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.  
    212244      CALL ini_date( dobsini ) 
    213245      CALL fin_date( dobsend ) 
     
    264296         lmask(:) = .FALSE. 
    265297      ENDIF 
     298      IF (ln_sstbias) THEN  
     299         lmask(:) = .FALSE.  
     300         WHERE (sstbias_files(:) /= '') lmask(:) = .TRUE.  
     301         jnumsstbias = COUNT(lmask)  
     302         lmask(:) = .FALSE.  
     303      ENDIF       
    266304      IF (ln_seaice) THEN 
    267305         lmask(:) = .FALSE. 
     
    315353         WRITE(numout,*) '             Logical switch for GHRSST observations          ln_ghrsst = ', ln_ghrsst 
    316354         WRITE(numout,*) '             Logical switch for feedback SST data             ln_sstfb = ', ln_sstfb 
     355         WRITE(numout,*) '             Logical switch for SST bias correction         ln_sstbias = ', ln_sstbias  
    317356         WRITE(numout,*) '             Logical switch for night-time SST obs         ln_sstnight = ', ln_sstnight 
    318357         WRITE(numout,*) '             Logical switch for SSS observations                ln_sss = ', ln_sss 
     
    754793 
    755794         ENDIF 
    756  
     795          
     796         !Read in bias field and correct SST. 
     797         IF ( ln_sstbias ) THEN 
     798            IF ( jnumsstbias == 0 ) CALL ctl_stop("ln_sstbias set,"// & 
     799                                             "  but no bias"// & 
     800                                             " files to read in")    
     801            CALL obs_app_sstbias( nsstsets, sstdatqc, n2dint, & 
     802                                  jnumsstbias, &  
     803                                  sstbias_files(1:jnumsstbias) ) 
     804         ENDIF 
     805          
    757806      ENDIF 
    758807 
Note: See TracChangeset for help on using the changeset viewer.