New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10251 for branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM – NEMO

Ignore:
Timestamp:
2018-10-29T15:20:26+01:00 (6 years ago)
Author:
kingr
Message:

Rolled back to r10247 - i.e., undid merge of pkg br and 3.6_stable br

Location:
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM
Files:
3 edited

Legend:

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

    r10249 r10251  
    5050   USE ice 
    5151#endif 
    52    USE asminc, ONLY: ln_avgbkg 
    5352   IMPLICIT NONE 
    5453   PRIVATE 
    5554    
    5655   PUBLIC   asm_bkg_wri   !: Write out the background state 
    57  
    58   !! * variables for calculating time means 
    59    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   tn_tavg  , sn_tavg   
    60    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   un_tavg  , vn_tavg 
    61    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   avt_tavg 
    62 #if defined key_zdfgls || key_zdftke 
    63    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   en_tavg 
    64 #endif 
    65    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_tavg 
    66    REAL(wp),SAVE :: numtimes_tavg     ! No of times to average over 
    6756 
    6857   !!---------------------------------------------------------------------- 
     
    9281      INTEGER :: inum          ! File unit number 
    9382      REAL(wp) :: zdate        ! Date 
    94       INTEGER :: ierror 
    9583      !!----------------------------------------------------------------------- 
    9684 
    97       ! If creating an averaged assim bkg, initialise on first timestep 
    98       IF ( ln_avgbkg .AND. kt == ( nn_it000 - 1) ) THEN 
    99          ! Allocate memory  
    100          ALLOCATE( tn_tavg(jpi,jpj,jpk), STAT=ierror ) 
    101          IF( ierror > 0 ) THEN 
    102             CALL ctl_stop( 'asm_wri_bkg: unable to allocate tn_tavg' )   ;   RETURN 
    103          ENDIF 
    104          tn_tavg(:,:,:)=0 
    105          ALLOCATE( sn_tavg(jpi,jpj,jpk), STAT=ierror ) 
    106          IF( ierror > 0 ) THEN 
    107             CALL ctl_stop( 'asm_wri_bkg: unable to allocate sn_tavg' )   ;   RETURN 
    108          ENDIF 
    109          sn_tavg(:,:,:)=0 
    110          ALLOCATE( un_tavg(jpi,jpj,jpk), STAT=ierror ) 
    111          IF( ierror > 0 ) THEN 
    112             CALL ctl_stop( 'asm_wri_bkg: unable to allocate un_tavg' )   ;   RETURN 
    113          ENDIF 
    114          un_tavg(:,:,:)=0 
    115          ALLOCATE( vn_tavg(jpi,jpj,jpk), STAT=ierror ) 
    116          IF( ierror > 0 ) THEN 
    117             CALL ctl_stop( 'asm_wri_bkg: unable to allocate vn_tavg' )   ;   RETURN 
    118          ENDIF 
    119          vn_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 
    125 #if defined key_zdftke 
    126          ALLOCATE( en_tavg(jpi,jpj,jpk), STAT=ierror ) 
    127          IF( ierror > 0 ) THEN 
    128             CALL ctl_stop( 'asm_wri_bkg: unable to allocate en_tavg' )   ;   RETURN 
    129          ENDIF 
    130          en_tavg(:,:,:)=0 
    131 #endif 
    132          ALLOCATE( avt_tavg(jpi,jpj,jpk), STAT=ierror ) 
    133          IF( ierror > 0 ) THEN 
    134             CALL ctl_stop( 'asm_wri_bkg: unable to allocate avt_tavg' )   ;   RETURN 
    135          ENDIF 
    136          avt_tavg(:,:,:)=0 
    137           
    138          numtimes_tavg = REAL ( nitavgbkg_r -  nn_it000 + 1 ) 
    139       ENDIF    
    140  
    141       ! If creating an averaged assim bkg, sum the contribution every timestep 
    142       IF ( ln_avgbkg ) THEN  
    143          IF (lwp) THEN 
    144               WRITE(numout,*) 'asm_wri_bkg : Summing assim bkg fields at timestep ',kt 
    145               WRITE(numout,*) '~~~~~~~~~~~~ ' 
    146          ENDIF 
    147  
    148          tn_tavg(:,:,:)        = tn_tavg(:,:,:) + tsn(:,:,:,jp_tem) / numtimes_tavg 
    149          sn_tavg(:,:,:)        = sn_tavg(:,:,:) + tsn(:,:,:,jp_sal) / numtimes_tavg 
    150          sshn_tavg(:,:)        = sshn_tavg(:,:) + sshn (:,:) / numtimes_tavg 
    151          un_tavg(:,:,:)        = un_tavg(:,:,:) + un(:,:,:) / numtimes_tavg 
    152          vn_tavg(:,:,:)        = vn_tavg(:,:,:) + vn(:,:,:) / numtimes_tavg 
    153          avt_tavg(:,:,:)        = avt_tavg(:,:,:) + avt(:,:,:) / numtimes_tavg 
    154 #if defined key_zdftke 
    155          en_tavg(:,:,:)       = en_tavg(:,:,:) + en(:,:,:) / numtimes_tavg 
    156 #endif 
    157       ENDIF 
    158       
    159  
    160       ! Write out background at time step nitbkg_r or nitavgbkg_r 
    161       IF ( ( .NOT. ln_avgbkg .AND. (kt == nitbkg_r) ) .OR. & 
    162       &          ( ln_avgbkg .AND. (kt == nitavgbkg_r) ) ) THEN 
     85      !                                !------------------------------------------- 
     86      IF( kt == nitbkg_r ) THEN        ! Write out background at time step nitbkg_r 
     87         !                             !-----------------------------------======== 
    16388         ! 
    16489         WRITE(cl_asmbkg, FMT='(A,".nc")' ) TRIM( c_asmbkg ) 
     
    17297            CALL iom_open( c_asmbkg, inum, ldwrt = .TRUE., kiolib = jprstlib) 
    17398            ! 
    174             ! 
    175             ! Write the information 
    176             IF ( ln_avgbkg ) THEN 
    177                IF( nitavgbkg_r == nit000 - 1 ) THEN      ! Treat special case when nitavgbkg = 0 
    178                   zdate = REAL( ndastp ) 
     99            IF( nitbkg_r == nit000 - 1 ) THEN      ! Treat special case when nitbkg = 0 
     100               zdate = REAL( ndastp ) 
    179101#if defined key_zdftke 
    180                   ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
    181                   IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 
    182                   CALL tke_rst( nit000, 'READ' )               ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
     102               ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
     103               IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 
     104               CALL tke_rst( nit000, 'READ' )               ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
    183105 
    184106#endif 
    185                ELSE 
    186                   zdate = REAL( ndastp ) 
    187                ENDIF 
    188                CALL iom_rstput( kt, nitavgbkg_r, inum, 'rdastp' , zdate   ) 
    189                CALL iom_rstput( kt, nitavgbkg_r, inum, 'un'     , un_tavg ) 
    190                CALL iom_rstput( kt, nitavgbkg_r, inum, 'vn'     , vn_tavg ) 
    191                CALL iom_rstput( kt, nitavgbkg_r, inum, 'tn'     , tn_tavg ) 
    192                CALL iom_rstput( kt, nitavgbkg_r, inum, 'sn'     , sn_tavg ) 
    193                CALL iom_rstput( kt, nitavgbkg_r, inum, 'sshn'   , sshn_tavg) 
     107            ELSE 
     108               zdate = REAL( ndastp ) 
     109            ENDIF 
     110            ! 
     111            !                                      ! Write the information 
     112            CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate             ) 
     113            CALL iom_rstput( kt, nitbkg_r, inum, 'un'     , un                ) 
     114            CALL iom_rstput( kt, nitbkg_r, inum, 'vn'     , vn                ) 
     115            CALL iom_rstput( kt, nitbkg_r, inum, 'tn'     , tsn(:,:,:,jp_tem) ) 
     116            CALL iom_rstput( kt, nitbkg_r, inum, 'sn'     , tsn(:,:,:,jp_sal) ) 
     117            CALL iom_rstput( kt, nitbkg_r, inum, 'sshn'   , sshn              ) 
    194118#if defined key_zdftke 
    195                CALL iom_rstput( kt, nitavgbkg_r, inum, 'en'     , en_tavg ) 
     119            CALL iom_rstput( kt, nitbkg_r, inum, 'en'     , en                ) 
    196120#endif 
    197                CALL iom_rstput( kt, nitavgbkg_r, inum, 'avt'    , avt_tavg) 
    198                ! 
    199             ELSE 
    200                IF( nitbkg_r == nit000 - 1 ) THEN      ! Treat special case when nitbkg = 0 
    201                   zdate = REAL( ndastp ) 
    202 #if defined key_zdftke 
    203                   ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
    204                   IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 
    205                   CALL tke_rst( nit000, 'READ' )               ! lk_zdftke=T :   Read turbulent kinetic energy ( en ) 
    206  
    207 #endif 
    208                ELSE 
    209                   zdate = REAL( ndastp ) 
    210                ENDIF 
    211                CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate   ) 
    212                CALL iom_rstput( kt, nitbkg_r, inum, 'un'     , un                ) 
    213                CALL iom_rstput( kt, nitbkg_r, inum, 'vn'     , vn                ) 
    214                CALL iom_rstput( kt, nitbkg_r, inum, 'tn'     , tsn(:,:,:,jp_tem) ) 
    215                CALL iom_rstput( kt, nitbkg_r, inum, 'sn'     , tsn(:,:,:,jp_sal) ) 
    216                CALL iom_rstput( kt, nitbkg_r, inum, 'sshn'   , sshn              ) 
    217 #if defined key_zdftke 
    218                CALL iom_rstput( kt, nitbkg_r, inum, 'en'     , en                ) 
    219 #endif 
    220                CALL iom_rstput( kt, nitbkg_r, inum, 'avt'    , avt               ) 
    221                ! 
    222             ENDIF 
    223              
     121            CALL iom_rstput( kt, nitbkg_r, inum, 'gcx'    , gcx               ) 
     122            ! 
    224123            CALL iom_close( inum ) 
    225  
    226124         ENDIF 
    227125         ! 
  • branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r10249 r10251  
    4040#endif 
    4141   USE sbc_oce          ! Surface boundary condition variables. 
    42    USE zdfmxl, ONLY :  &   
    43    &  hmld_tref,       &    
    44 #if defined key_karaml 
    45    &  hmld_kara,       & 
    46    &  ln_kara,         & 
    47 #endif    
    48    &  hmld,            &  
    49    &  hmlp,            & 
    50    &  hmlpt 
    51 #if defined key_bdy  
    52    USE bdy_oce, ONLY: bdytmask   
    53 #endif   
    5442 
    5543   IMPLICIT NONE 
     
    6957#endif 
    7058   LOGICAL, PUBLIC :: ln_bkgwri = .FALSE.      !: No output of the background state fields 
    71    LOGICAL, PUBLIC :: ln_avgbkg = .FALSE.      !: No output of the mean background state fields 
    7259   LOGICAL, PUBLIC :: ln_asmiau = .FALSE.      !: No applying forcing with an assimilation increment 
    7360   LOGICAL, PUBLIC :: ln_asmdin = .FALSE.      !: No direct initialization 
     
    9178   INTEGER , PUBLIC ::   nitiaustr   !: Time step of the start of the IAU interval  
    9279   INTEGER , PUBLIC ::   nitiaufin   !: Time step of the end of the IAU interval 
    93    INTEGER , PUBLIC ::   nitavgbkg   !: Number of timesteps to average assim bkg [0,nitavgbkg] 
    9480   !  
    9581   INTEGER , PUBLIC ::   niaufn      !: Type of IAU weighing function: = 0   Constant weighting 
     
    9985   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   ssh_bkg, ssh_bkginc   ! Background sea surface height and its increment 
    10086   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   seaice_bkginc         ! Increment to the background sea ice conc 
    101  
    102    INTEGER :: mld_choice        = 4   !: choice of mld criteria to use for physics assimilation 
    103                                       !: 1) hmld      - Turbocline/mixing depth                           [W points] 
    104                                       !: 2) hmlp      - Density criterion (0.01 kg/m^3 change from 10m)   [W points] 
    105                                       !: 3) hmld_kara - Kara MLD                                          [Interpolated] 
    106                                       !: 4) hmld_tref - Temperature criterion (0.2 K change from surface) [T points] 
    107  
    10887 
    10988   !! * Substitutions 
     
    138117      INTEGER :: iitiaustr_date  ! Date YYYYMMDD of IAU interval start time step 
    139118      INTEGER :: iitiaufin_date  ! Date YYYYMMDD of IAU interval final time step 
    140       INTEGER :: isurfstat       ! Local integer for status of reading surft variable 
    141       INTEGER :: iitavgbkg_date  ! Date YYYYMMDD of end of assim bkg averaging period 
    142119      ! 
    143120      REAL(wp) :: znorm        ! Normalization factor for IAU weights 
     
    148125      REAL(wp) :: zdate_inc    ! Time axis in increments file 
    149126      ! 
    150       REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: &  
    151           &       t_bkginc_2d  ! file for reading in 2D   
    152       !                        ! temperature increments  
    153       REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: &  
    154           &       z_mld     ! Mixed layer depth  
    155            
    156127      REAL(wp), POINTER, DIMENSION(:,:) ::   hdiv   ! 2D workspace 
    157       ! 
    158       LOGICAL :: lk_surft      ! Logical: T => Increments file contains surft variable  
    159                                !               so only apply surft increments. 
    160       !! 
    161       NAMELIST/nam_asminc/ ln_bkgwri, ln_avgbkg,                           & 
     128      !! 
     129      NAMELIST/nam_asminc/ ln_bkgwri,                                      & 
    162130         &                 ln_trainc, ln_dyninc, ln_sshinc,                & 
    163131         &                 ln_asmdin, ln_asmiau,                           & 
    164132         &                 nitbkg, nitdin, nitiaustr, nitiaufin, niaufn,   & 
    165          &                 ln_salfix, salfixmin, nn_divdmp, nitavgbkg, mld_choice 
     133         &                 ln_salfix, salfixmin, nn_divdmp 
    166134      !!---------------------------------------------------------------------- 
    167135 
     
    169137      ! Read Namelist nam_asminc : assimilation increment interface 
    170138      !----------------------------------------------------------------------- 
    171  
    172       ! Set default values 
    173       ln_bkgwri = .FALSE. 
    174       ln_avgbkg = .FALSE. 
    175       ln_trainc = .FALSE. 
    176       ln_dyninc = .FALSE. 
    177       ln_sshinc = .FALSE. 
    178139      ln_seaiceinc = .FALSE. 
    179       ln_asmdin = .FALSE. 
    180       ln_asmiau = .TRUE. 
    181       ln_salfix = .FALSE. 
    182140      ln_temnofreeze = .FALSE. 
    183       salfixmin = -9999 
    184       nitbkg    = 0 
    185       nitdin    = 0       
    186       nitiaustr = 1 
    187       nitiaufin = 150 
    188       niaufn    = 0 
    189       nitavgbkg = 1 
    190141 
    191142      REWIND( numnam_ref )              ! Namelist nam_asminc in reference namelist : Assimilation increment 
     
    205156         WRITE(numout,*) '   Namelist namasm : set assimilation increment parameters' 
    206157         WRITE(numout,*) '      Logical switch for writing out background state          ln_bkgwri = ', ln_bkgwri 
    207          WRITE(numout,*) '      Logical switch for writing mean background state         ln_avgbkg = ', ln_avgbkg 
    208158         WRITE(numout,*) '      Logical switch for applying tracer increments            ln_trainc = ', ln_trainc 
    209159         WRITE(numout,*) '      Logical switch for applying velocity increments          ln_dyninc = ', ln_dyninc 
     
    216166         WRITE(numout,*) '      Timestep of start of IAU interval in [0,nitend-nit000-1] nitiaustr = ', nitiaustr 
    217167         WRITE(numout,*) '      Timestep of end of IAU interval in [0,nitend-nit000-1]   nitiaufin = ', nitiaufin 
    218          WRITE(numout,*) '      Number of timesteps to average assim bkg [0,nitavgbkg]   nitavgbkg = ', nitavgbkg 
    219168         WRITE(numout,*) '      Type of IAU weighting function                           niaufn    = ', niaufn 
    220169         WRITE(numout,*) '      Logical switch for ensuring that the sa > salfixmin      ln_salfix = ', ln_salfix 
    221170         WRITE(numout,*) '      Minimum salinity after applying the increments           salfixmin = ', salfixmin 
    222          WRITE(numout,*) '      Choice of MLD for physics assimilation                  mld_choice = ', mld_choice 
    223171      ENDIF 
    224172 
     
    227175      nitiaustr_r = nitiaustr + nit000 - 1  ! Start of IAU interval referenced to nit000 
    228176      nitiaufin_r = nitiaufin + nit000 - 1  ! End of IAU interval referenced to nit000 
    229       nitavgbkg_r = nitavgbkg + nit000 - 1  ! Averaging period referenced to nit000 
    230177 
    231178      iiauper = nitiaufin_r - nitiaustr_r + 1  ! IAU interval length 
     
    237184      CALL calc_date( nit000, nitiaustr_r, ndate0, iitiaustr_date )     ! IAU start time referenced to ndate0 
    238185      CALL calc_date( nit000, nitiaufin_r, ndate0, iitiaufin_date )     ! IAU end time referenced to ndate0 
    239       CALL calc_date( nit000, nitavgbkg_r, ndate0, iitavgbkg_date )     ! End of assim bkg averaging period referenced to ndate0 
    240186      ! 
    241187      IF(lwp) THEN 
     
    249195         WRITE(numout,*) '       nitiaustr_r = ', nitiaustr_r 
    250196         WRITE(numout,*) '       nitiaufin_r = ', nitiaufin_r 
    251          WRITE(numout,*) '       nitavgbkg_r = ', nitavgbkg_r 
    252197         WRITE(numout,*) 
    253198         WRITE(numout,*) '   Dates referenced to current cycle:' 
     
    259204         WRITE(numout,*) '       iitiaustr_date = ', iitiaustr_date 
    260205         WRITE(numout,*) '       iitiaufin_date = ', iitiaufin_date 
    261          WRITE(numout,*) '       iitavgbkg_date = ', iitavgbkg_date 
    262206      ENDIF 
    263207 
     
    302246         & CALL ctl_stop( ' nitdin :',  & 
    303247         &                ' Background time step for Direct Initialization is outside', & 
    304          &                ' the cycle interval') 
    305  
    306       IF ( nitavgbkg_r > nitend ) & 
    307          & CALL ctl_stop( ' nitavgbkg_r :',  & 
    308          &                ' Assim bkg averaging period is outside', & 
    309248         &                ' the cycle interval') 
    310249 
     
    386325      !-------------------------------------------------------------------- 
    387326 
    388       IF ( ln_trainc ) THEN 
    389          ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 
    390          ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 
    391          t_bkginc(:,:,:) = 0.0 
    392          s_bkginc(:,:,:) = 0.0 
    393       ENDIF 
    394       IF ( ln_dyninc ) THEN  
    395          ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 
    396          ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 
    397          u_bkginc(:,:,:) = 0.0 
    398          v_bkginc(:,:,:) = 0.0 
    399       ENDIF 
    400       IF ( ln_sshinc ) THEN 
    401          ALLOCATE( ssh_bkginc(jpi,jpj)   ) 
    402          ssh_bkginc(:,:) = 0.0 
    403       ENDIF 
    404       IF ( ln_seaiceinc ) THEN  
    405          ALLOCATE( seaice_bkginc(jpi,jpj)) 
    406          seaice_bkginc(:,:) = 0.0 
    407       ENDIF 
     327      ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 
     328      ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 
     329      ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 
     330      ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 
     331      ALLOCATE( ssh_bkginc(jpi,jpj)   ) 
     332      ALLOCATE( seaice_bkginc(jpi,jpj)) 
    408333#if defined key_asminc 
    409334      ALLOCATE( ssh_iau(jpi,jpj)      ) 
     335#endif 
     336      t_bkginc(:,:,:) = 0.0 
     337      s_bkginc(:,:,:) = 0.0 
     338      u_bkginc(:,:,:) = 0.0 
     339      v_bkginc(:,:,:) = 0.0 
     340      ssh_bkginc(:,:) = 0.0 
     341      seaice_bkginc(:,:) = 0.0 
     342#if defined key_asminc 
    410343      ssh_iau(:,:)    = 0.0 
    411344#endif 
     
    443376 
    444377         IF ( ln_trainc ) THEN    
    445  
    446             !Test if the increments file contains the surft variable. 
    447             isurfstat = iom_varid( inum, 'bckinsurft', ldstop = .FALSE. ) 
    448             IF ( isurfstat == -1 ) THEN 
    449                lk_surft = .FALSE. 
    450             ELSE 
    451                lk_surft = .TRUE. 
    452                CALL ctl_warn( ' Applying 2D temperature increment to bottom of ML: ', & 
    453             &                 ' bckinsurft found in increments file.' ) 
    454             ENDIF              
    455  
    456             IF (lk_surft) THEN  
    457                  
    458                ALLOCATE(z_mld(jpi,jpj))  
    459                SELECT CASE(mld_choice)  
    460                CASE(1)  
    461                   z_mld = hmld  
    462                CASE(2)  
    463                   z_mld = hmlp  
    464                CASE(3)  
    465 #if defined key_karaml 
    466                   IF ( ln_kara ) THEN 
    467                      z_mld = hmld_kara 
    468                   ELSE 
    469                      CALL ctl_stop("Kara mixed layer not calculated as ln_kara=.false.") 
    470                   ENDIF 
    471 #else 
    472                   CALL ctl_stop("Kara mixed layer not defined in current version of NEMO")  ! JW: Safety feature, should be removed 
    473                                                                                             ! once the Kara mixed layer is available  
    474 #endif 
    475                CASE(4)  
    476                   z_mld = hmld_tref  
    477                END SELECT        
    478                        
    479                ALLOCATE( t_bkginc_2d(jpi,jpj) )  
    480                CALL iom_get( inum, jpdom_autoglo, 'bckinsurft', t_bkginc_2d, 1)  
    481 #if defined key_bdy                 
    482                DO jk = 1,jpkm1  
    483                   WHERE( z_mld(:,:) > fsdepw(:,:,jk) )  
    484                      t_bkginc(:,:,jk) = t_bkginc_2d(:,:) * 0.5 * & 
    485                      &       ( 1 + cos( (fsdept(:,:,jk)/z_mld(:,:) ) * rpi ) ) 
    486                       
    487                      t_bkginc(:,:,jk) = t_bkginc(:,:,jk) * bdytmask(:,:)  
    488                   ELSEWHERE  
    489                      t_bkginc(:,:,jk) = 0.  
    490                   ENDWHERE  
    491                ENDDO  
    492 #else  
    493                t_bkginc(:,:,:) = 0.  
    494 #endif                 
    495                s_bkginc(:,:,:) = 0.  
    496                  
    497                DEALLOCATE(z_mld, t_bkginc_2d)  
    498              
    499             ELSE  
    500                 
    501                CALL iom_get( inum, jpdom_autoglo, 'bckint', t_bkginc, 1 ) 
    502                CALL iom_get( inum, jpdom_autoglo, 'bckins', s_bkginc, 1 ) 
    503                ! Apply the masks 
    504                t_bkginc(:,:,:) = t_bkginc(:,:,:) * tmask(:,:,:) 
    505                s_bkginc(:,:,:) = s_bkginc(:,:,:) * tmask(:,:,:) 
    506                ! Set missing increments to 0.0 rather than 1e+20 
    507                ! to allow for differences in masks 
    508                WHERE( ABS( t_bkginc(:,:,:) ) > 1.0e+10 ) t_bkginc(:,:,:) = 0.0 
    509                WHERE( ABS( s_bkginc(:,:,:) ) > 1.0e+10 ) s_bkginc(:,:,:) = 0.0 
    510           
    511             ENDIF 
    512  
     378            CALL iom_get( inum, jpdom_autoglo, 'bckint', t_bkginc, 1 ) 
     379            CALL iom_get( inum, jpdom_autoglo, 'bckins', s_bkginc, 1 ) 
     380            ! Apply the masks 
     381            t_bkginc(:,:,:) = t_bkginc(:,:,:) * tmask(:,:,:) 
     382            s_bkginc(:,:,:) = s_bkginc(:,:,:) * tmask(:,:,:) 
     383            ! Set missing increments to 0.0 rather than 1e+20 
     384            ! to allow for differences in masks 
     385            WHERE( ABS( t_bkginc(:,:,:) ) > 1.0e+10 ) t_bkginc(:,:,:) = 0.0 
     386            WHERE( ABS( s_bkginc(:,:,:) ) > 1.0e+10 ) s_bkginc(:,:,:) = 0.0 
    513387         ENDIF 
    514388 
     
    782656 
    783657      DO jk = 1, jpkm1 
    784         CALL eos_fzp( tsn(:,:,jk,jp_sal), fzptnz(:,:,jk), fsdept(:,:,jk) ) 
     658         fzptnz(:,:,jk) = eos_fzp( tsn(:,:,jk,jp_sal), fsdept(:,:,jk) ) 
    785659      END DO 
    786660 
     
    1016890            ENDIF 
    1017891 
    1018 #if defined key_asminc 
    1019          ELSE 
    1020             ssh_iau(:,:) = 0._wp 
    1021 #endif 
    1022892         ENDIF 
    1023893 
  • branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM/asmpar.F90

    r10249 r10251  
    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 
    3231 
    3332   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.