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 4288 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90 – NEMO

Ignore:
Timestamp:
2013-11-20T16:02:06+01:00 (10 years ago)
Author:
cbricaud
Message:

correction for timesplitting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r4280 r4288  
    5656 
    5757   ! Potential namelist parameters below to be read in dyn_spg_ts_init 
    58    LOGICAL,  PUBLIC,  PARAMETER :: ln_bt_fw=.true.        !: Forward integration of barotropic sub-stepping 
     58   LOGICAL,  PUBLIC,  PARAMETER :: ln_bt_fw=.TRUE.        !: Forward integration of barotropic sub-stepping 
    5959   LOGICAL,  PRIVATE, PARAMETER :: ln_bt_av=.TRUE.        !: Time averaging of barotropic variables 
    6060   LOGICAL,  PRIVATE, PARAMETER :: ln_bt_nn_auto=.FALSE.  !: Set number of iterations automatically 
     
    228228      IF ( kt == nit000 .OR. lk_vvl ) THEN 
    229229         IF ( ln_dynvor_een ) THEN 
    230             zht(:,:) = 0. 
    231             DO jk = 1, jpk 
    232                zht(:,:) = zht(:,:) + fse3t_n(:,:,jk) * tmask(:,:,jk) 
    233             END DO 
     230            ! JC: Simplification needed below: define ht_0 even when volume is fixed 
     231            IF (lk_vvl) THEN 
     232               zht(:,:) = (ht_0(:,:) + sshn(:,:)) * tmask(:,:,1)  
     233            ELSE 
     234               zht(:,:) = 0. 
     235               DO jk = 1, jpkm1 
     236                  zht(:,:) = zht(:,:) + fse3t_n(:,:,jk) * tmask(:,:,jk) 
     237               END DO 
     238            ENDIF 
     239 
    234240            DO jj = 1, jpjm1 
    235241               DO ji = 1, jpim1 
     
    10491055      INTEGER         , INTENT(in) ::   kt         ! ocean time-step 
    10501056      ! 
    1051       INTEGER  :: ji ,jj 
     1057      INTEGER  :: ji ,jj, jk 
    10521058      REAL(wp) :: zxr2, zyr2, zcmax 
    1053       REAL(wp), POINTER, DIMENSION(:,:) :: zcu 
     1059      REAL(wp), POINTER, DIMENSION(:,:) :: zcu, zht 
    10541060      !! 
    10551061!      NAMELIST/namsplit/ ln_bt_fw, ln_bt_av, ln_bt_nn_auto, & 
     
    10601066      !         ! Max courant number for ext. grav. waves 
    10611067      ! 
    1062       CALL wrk_alloc( jpi, jpj, zcu ) 
    1063       ! 
     1068      CALL wrk_alloc( jpi, jpj, zcu, zht ) 
     1069      ! 
     1070      ! JC: Simplification needed below: define ht_0 even when volume is fixed 
     1071      IF (lk_vvl) THEN  
     1072         zht(:,:) = ht_0(:,:) * tmask(:,:,1) 
     1073      ELSE 
     1074         zht(:,:) = 0. 
     1075         DO jk = 1, jpkm1 
     1076            zht(:,:) = zht(:,:) + fse3t_n(:,:,jk) * tmask(:,:,jk) 
     1077         END DO 
     1078      ENDIF 
     1079 
    10641080      DO jj = 1, jpj 
    1065          DO ji =1, jpi  
     1081         DO ji =1, jpi 
    10661082            zxr2 = 1./(e1t(ji,jj)*e1t(ji,jj)) 
    10671083            zyr2 = 1./(e2t(ji,jj)*e2t(ji,jj)) 
    1068             zcu(ji,jj) = sqrt(grav*ht_0(ji,jj)*(zxr2 + zyr2) ) 
     1084            zcu(ji,jj) = sqrt(grav*zht(ji,jj)*(zxr2 + zyr2) ) 
    10691085         END DO 
    10701086      END DO 
     
    11201136      ENDIF 
    11211137      ! 
    1122       CALL wrk_dealloc( jpi, jpj, zcu ) 
     1138      CALL wrk_dealloc( jpi, jpj, zcu, zht ) 
    11231139      ! 
    11241140   END SUBROUTINE dyn_spg_ts_init 
Note: See TracChangeset for help on using the changeset viewer.