Changeset 13431


Ignore:
Timestamp:
2020-08-24T14:22:55+02:00 (5 months ago)
Author:
smueller
Message:

Miscellaneous bugfixes in ASM- and SOL-related functionality

Location:
NEMO/branches/NERC/dev_release-3.4_NEMOTAM_consolidated/NEMOGCM/NEMO/OPA_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/NERC/dev_release-3.4_NEMOTAM_consolidated/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r3689 r13431  
    88   !!             -   !  2010-05  (K. Mogensen, A. Weaver, M. Martin, D. Lea) Assimilation interface 
    99   !!             -   !  2010-09  (D.Storkey and E.O'Dea) bug fixes for BDY module 
     10   !!            3.4  !  2012-10  (A. Weaver and K. Mogensen) Fix for direct initialization 
    1011   !!---------------------------------------------------------------------- 
    1112 
     
    156157      ! 
    157158      z2dt = 2._wp * rdt                              ! set time step size (Euler/Leapfrog) 
    158       IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
     159      IF( neuler == 0 .AND. kt == nit000 ) THEN 
     160 
     161         ! Need to update hdivb and rotb for assimilation with direct initialization 
     162         z2dt = rdt 
     163         rotb (:,:,:) = rotn (:,:,:)   ! Update before fields 
     164         hdivb(:,:,:) = hdivn(:,:,:) 
     165 
     166      ENDIF 
    159167 
    160168      !                                           !------------------------------! 
  • NEMO/branches/NERC/dev_release-3.4_NEMOTAM_consolidated/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r3294 r13431  
    2424   USE trdmld_oce      ! ocean active mixed layer tracers trends variables 
    2525   USE domvvl          ! variable volume 
     26   USE sol_oce         ! gcx,gcb arrays.  
     27   USE dynspg_oce      ! pressure gradient schemes 
    2628 
    2729   IMPLICIT NONE 
     
    207209      ENDIF 
    208210#endif 
     211      ! Initialisation of SSH 
     212      IF (lk_dynspg_flt) THEN          ! Filtered free surface flag 
     213         ! copied from flt_rst 
     214         IF(lwp) WRITE(numout,*)'Reading gcx, gcxb for SSH in ASM/OBS.' 
     215         IF (sol_oce_alloc()/=0) THEN 
     216            CALL ctl_stop( 'STOP', 'restart : unable to allocate sol_oce arrays' ) 
     217         ENDIF 
     218         IF( iom_varid( numror, 'gcx' ) > 0 ) THEN 
     219            ! Caution : extra-hallow 
     220            ! gcx and gcxb are defined as: DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) 
     221            CALL iom_get( numror, jpdom_autoglo, 'gcx' , gcx (1:jpi,1:jpj) ) 
     222            CALL iom_get( numror, jpdom_autoglo, 'gcxb', gcxb(1:jpi,1:jpj) ) 
     223            IF( neuler == 0 ) THEN 
     224               gcxb(:,:) = gcx (:,:) 
     225            ENDIF 
     226         ELSE 
     227            gcx (:,:) = 0.e0 
     228            gcxb(:,:) = 0.e0 
     229         ENDIF 
     230      ENDIF 
    209231      ! 
    210232      IF( neuler == 0 ) THEN                                  ! Euler restart (neuler=0) 
  • NEMO/branches/NERC/dev_release-3.4_NEMOTAM_consolidated/NEMOGCM/NEMO/OPA_SRC/SOL/solsor.F90

    r3294 r13431  
    7777      ijpr2d    = MAX( jpr2di , jpr2dj ) 
    7878      icount = 0 
     79      gcr=0. 
    7980      !                                                       ! ============== 
    8081      DO jn = 1, nn_nmax                                      ! Iterative loop  
     
    139140            CASE ( 1 )                 ! relative precision 
    140141               ztab = 0. 
    141                ztab(:,:) = gcr(2:nlci-1,2:nlcj-1) 
     142               ztab(2:nlci-1,2:nlcj-1) = gcr(2:nlci-1,2:nlcj-1) 
    142143               rnorme = glob_sum( ztab)    ! sum over the global domain 
    143144               ! test of convergence 
     145               res = SQRT( rnorme ) 
    144146               IF( rnorme < epsr .OR. jn == nn_nmax ) THEN 
    145                   res = SQRT( rnorme ) 
    146147                  niter = jn 
    147148                  ncut = 999 
     
    150151          
    151152         !**** 
    152          !     IF(lwp)WRITE(numsol,9300) jn, res, sqrt( epsr ) / eps 
     153            IF(lwp)WRITE(numsol,9300) jn, res, SQRT( epsr ) / eps 
    1531549300     FORMAT('          niter :',i4,' res :',e20.10,' b :',e20.10) 
    154155         !**** 
  • NEMO/branches/NERC/dev_release-3.4_NEMOTAM_consolidated/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90

    r3693 r13431  
    8383 
    8484      !                              ! allocate solver arrays 
    85       IF( .NOT. lk_agrif .OR. .NOT. ln_rstart) THEN 
     85      IF(  ( .NOT. lk_agrif .OR. .NOT. ln_rstart ) .AND. & 
     86         & ( .NOT. ( lk_dynspg_flt .AND. ln_rstart ) ) ) THEN 
    8687         IF( sol_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'solver_init : unable to allocate sol_oce arrays' ) 
    8788      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.