Changeset 6775


Ignore:
Timestamp:
2016-07-01T20:32:06+02:00 (4 years ago)
Author:
kingr
Message:

bugfix for previous commit to allow averaged assim bkg.

Location:
branches/UKMO/dev_r5518_25hr_mean_assim_bkg/NEMOGCM/NEMO/OPA_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_25hr_mean_assim_bkg/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90

    r6762 r6775  
    6363   REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   en_tavg 
    6464#endif 
    65    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_tavg 
    66    REAL(wp),SAVE :: gcx_tavg 
     65   REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_tavg, gcx_tavg 
    6766   REAL(wp),SAVE :: numtimes_tavg     ! No of times to average over 
    6867 
     
    9392      INTEGER :: inum          ! File unit number 
    9493      REAL(wp) :: zdate        ! Date 
     94      INTEGER :: ierror 
    9595      !!----------------------------------------------------------------------- 
    96  
    9796 
    9897      ! If creating an averaged assim bkg, initialise on first timestep 
     
    119118         ENDIF 
    120119         vn_tavg=0 
    121          ALLOCATE( ssh_tavg(jpi,jpj), STAT=ierror ) 
    122          IF( ierror > 0 ) THEN 
    123             CALL ctl_stop( 'asm_wri_bkg: unable to allocate ssh_tavg' )   ;   RETURN 
    124          ENDIF 
    125          ssh_tavg=0 
     120         ALLOCATE( sshn_tavg(jpi,jpj), STAT=ierror ) 
     121         IF( ierror > 0 ) THEN 
     122            CALL ctl_stop( 'asm_wri_bkg: unable to allocate sshn_tavg' )   ;   RETURN 
     123         ENDIF 
     124         sshn_tavg=0 
    126125         ALLOCATE( en_tavg(jpi,jpj,jpk), STAT=ierror ) 
    127126         IF( ierror > 0 ) THEN 
     
    133132            CALL ctl_stop( 'asm_wri_bkg: unable to allocate avt_tavg' )   ;   RETURN 
    134133         ENDIF 
     134         ALLOCATE( gcx_tavg(jpi,jpj), STAT=ierror ) 
     135         IF( ierror > 0 ) THEN 
     136            CALL ctl_stop( 'asm_wri_bkg: unable to allocate gcx_tavg' )   ;   RETURN 
     137         ENDIF 
     138         gcx_tavg=0     
    135139         avt_tavg=0 
    136          gcx_tavg=0     
    137140          
    138141         numtimes_tavg = REAL ( nitavgbkg_r -  nn_it000 + 1 ) 
     
    151154         un_tavg(:,:,:)        = un_tavg(:,:,:) + un(:,:,:) / numtimes_tavg 
    152155         vn_tavg(:,:,:)        = vn_tavg(:,:,:) + vn(:,:,:) / numtimes_tavg 
    153          gcx_tavg              = gcx_tavg       + gcx / numtimes_tavg 
     156!         gcx_tavg(:,:)         = gcx_tavg(:,:)  + gcx(:,:) / numtimes_tavg 
    154157         avt_tavg(:,:,:)        = avt_tavg(:,:,:) + avt(:,:,:) / numtimes_tavg 
    155158#if defined key_zdftke 
     
    160163 
    161164      ! Write out background at time step nitbkg_r or nitavgbkg_r 
    162       IF( .NOT. ln_avgbkg .AND. (kt == nitbkg_r) ) .OR. & 
    163       &       ( ln_avgbkg .AND. (kt == nitavgbkg_r) ) THEN 
     165      IF ( ( .NOT. ln_avgbkg .AND. (kt == nitbkg_r) ) .OR. & 
     166      &          ( ln_avgbkg .AND. (kt == nitavgbkg_r) ) ) THEN 
    164167         ! 
    165168         WRITE(cl_asmbkg, FMT='(A,".nc")' ) TRIM( c_asmbkg ) 
     
    193196               CALL iom_rstput( kt, nitbkg_r, inum, 'tn'     , tn_tavg ) 
    194197               CALL iom_rstput( kt, nitbkg_r, inum, 'sn'     , sn_tavg ) 
    195                CALL iom_rstput( kt, nitbkg_r, inum, 'sshn'   , sshn    ) 
     198               CALL iom_rstput( kt, nitbkg_r, inum, 'sshn'   , sshn_tavg) 
    196199#if defined key_zdftke 
    197200               CALL iom_rstput( kt, nitbkg_r, inum, 'en'     , en_tavg ) 
  • branches/UKMO/dev_r5518_25hr_mean_assim_bkg/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r6762 r6775  
    161161                               !               so only apply surft increments. 
    162162      !! 
    163       NAMELIST/nam_asminc/ ln_bkgwri, ln_avgbkg                            & 
     163      NAMELIST/nam_asminc/ ln_bkgwri, ln_avgbkg,                           & 
    164164         &                 ln_trainc, ln_dyninc, ln_sshinc,                & 
    165165         &                 ln_asmdin, ln_asmiau,                           & 
  • branches/UKMO/dev_r5518_25hr_mean_assim_bkg/NEMOGCM/NEMO/OPA_SRC/ASM/asmpar.F90

    r6757 r6775  
    2929   INTEGER, PUBLIC :: nitiaufin_r   !: IAU final time step referenced to nit000 
    3030   INTEGER, PUBLIC :: nittrjfrq     !: Frequency of trajectory output for 4D-VAR 
     31   INTEGER, PUBLIC :: nitavgbkg_r   !: Averaging period for assim bkg referenced to nit000 
    3132 
    3233   !!---------------------------------------------------------------------- 
  • branches/UKMO/dev_r5518_25hr_mean_assim_bkg/NEMOGCM/NEMO/OPA_SRC/step.F90

    r6758 r6775  
    299299      ! Dynamics                                    (tsa used as workspace) 
    300300      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     301 
     302      IF( ln_bkgwri )        CALL asm_bkg_wri( kstp )     ! output background fields 
     303 
    301304      IF( lk_dynspg_ts   )  THEN 
    302305                                                             ! revert to previously computed momentum tendencies 
     
    317320        IF(  lk_asminc .AND. ln_asmiau .AND. & 
    318321           & ln_dyninc      )  CALL dyn_asm_inc( kstp )     ! apply dynamics assimilation increment 
    319         IF( ln_bkgwri )        CALL asm_bkg_wri( kstp )     ! output background fields 
    320322        IF( ln_neptsimp )      CALL dyn_nept_cor( kstp )    ! subtract Neptune velocities (simplified) 
    321323        IF( lk_bdy          )  CALL bdy_dyn3d_dmp(kstp )    ! bdy damping trends 
Note: See TracChangeset for help on using the changeset viewer.