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 3865 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

Ignore:
Timestamp:
2013-04-09T18:34:38+02:00 (11 years ago)
Author:
acc
Message:

Branch 2013/dev_r3858_NOC_ZTC, #863. Nearly complete port of 2011/dev_r2739_LOCEAN8_ZTC development branch into v3.5aplha base. Compiles and runs but currently unstable after 8 timesteps with ORCA2_LIM reference configuration.

Location:
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r3680 r3865  
    9191   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sss_m     !: mean (nn_fsbc time-step) surface sea salinity            [psu] 
    9292   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ssh_m     !: mean (nn_fsbc time-step) sea surface height                [m] 
     93   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e3t_m     !: mean (nn_fsbc time-step) sea surface height                [m] 
    9394 
    9495   !! * Substitutions 
     
    105106      !!                  ***  FUNCTION sbc_oce_alloc  *** 
    106107      !!--------------------------------------------------------------------- 
    107       INTEGER :: ierr(4) 
     108      INTEGER :: ierr(5) 
    108109      !!--------------------------------------------------------------------- 
    109110      ierr(:) = 0 
     
    126127         &      ssu_m  (jpi,jpj) , sst_m(jpi,jpj) ,                       & 
    127128         &      ssv_m  (jpi,jpj) , sss_m  (jpi,jpj), ssh_m(jpi,jpj) , STAT=ierr(4) ) 
     129         ! 
     130#if defined key_vvl 
     131      ALLOCATE( e3t_m(jpi,jpj) , STAT=ierr(5) ) 
     132#endif 
    128133         ! 
    129134      sbc_oce_alloc = MAXVAL( ierr ) 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r3625 r3865  
    412412! Freezing/melting potential 
    413413! Calculated over NEMO leapfrog timestep (hence 2*dt) 
    414       nfrzmlt(:,:)=rau0*rcp*fse3t_m(:,:,1)*(Tocnfrz-sst_m(:,:))/(2.0*dt) 
     414      nfrzmlt(:,:)=rau0*rcp*fse3t_m(:,:)*(Tocnfrz-sst_m(:,:))/(2.0*dt) 
    415415 
    416416      ztmp(:,:) = nfrzmlt(:,:) 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90

    r3680 r3865  
    2424   PRIVATE 
    2525 
    26    PUBLIC   sbc_ssm         ! routine called by step.F90 
    27    PUBLIC   sbc_ssm_init    ! routine called by sbcmod.F90 
    28     
     26   PUBLIC   sbc_ssm    ! routine called by step.F90 
     27 
    2928   LOGICAL, SAVE  ::   l_ssm_mean = .FALSE.       ! keep track of whether means have been read 
    3029                                                  ! from restart file 
    31  
     30    
    3231   !! * Substitutions 
    3332#  include "domzgr_substitute.h90" 
     
    6766         ELSE                    ;   ssh_m(:,:) = sshn(:,:) 
    6867         ENDIF 
    69  
     68         ! 
     69         IF( lk_vvl )   fse3t_m(:,:) = fse3t_n(:,:,1) 
    7070         ! 
    7171      ELSE 
     
    8484            ELSE                    ;   ssh_m(:,:) = zcoef *   sshn(:,:) 
    8585            ENDIF 
     86            IF( lk_vvl )   fse3t_m(:,:) = zcoef * fse3t_n(:,:,1) 
    8687            !                                             ! ---------------------------------------- ! 
    8788         ELSEIF( MOD( kt - 2 , nn_fsbc ) == 0 ) THEN      !   Initialisation: New mean computation   ! 
     
    9293            sss_m(:,:) = 0.e0 
    9394            ssh_m(:,:) = 0.e0 
     95            IF( lk_vvl )   fse3t_m(:,:) = 0.e0 
    9496         ENDIF 
    9597         !                                                ! ---------------------------------------- ! 
     
    104106         ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 
    105107         ENDIF 
     108         IF( lk_vvl )   fse3t_m(:,:) = fse3t_m(:,:) + fse3t_n(:,:,1) 
    106109 
    107110         !                                                ! ---------------------------------------- ! 
     
    114117            ssv_m(:,:) = ssv_m(:,:) * zcoef           ! 
    115118            ssh_m(:,:) = ssh_m(:,:) * zcoef           ! mean SSH             [m] 
     119            IF( lk_vvl )   fse3t_m(:,:) = fse3t_m(:,:) * zcoef   ! mean vertical scale factor [m] 
    116120            ! 
    117121         ENDIF 
     
    130134            CALL iom_rstput( kt, nitrst, numrow, 'sss_m'  , sss_m  ) 
    131135            CALL iom_rstput( kt, nitrst, numrow, 'ssh_m'  , ssh_m  ) 
     136            IF( lk_vvl ) THEN 
     137               CALL iom_rstput( kt, nitrst, numrow, 'fse3t_m'  , fse3t_m(:,:)  ) 
     138            END IF 
    132139            ! 
    133140         ENDIF 
     
    168175            CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m  )   !   "         "    salinity    (T-point) 
    169176            CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m  )   !   "         "    height      (T-point) 
     177            IF( lk_vvl ) CALL iom_get( numror, jpdom_autoglo, 'fse3t_m', fse3t_m(:,:) ) 
    170178            ! 
    171179            IF( zf_sbc /= REAL( nn_fsbc, wp ) ) THEN      ! nn_fsbc has changed between 2 runs 
     
    178186               sss_m(:,:) = zcoef * sss_m(:,:) 
    179187               ssh_m(:,:) = zcoef * ssh_m(:,:) 
     188               IF( lk_vvl ) fse3t_m(:,:) = zcoef * fse3t_m(:,:) 
    180189            ELSE 
    181190               IF(lwp) WRITE(numout,*) '~~~~~~~   mean fields read in the ocean restart file' 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r3680 r3865  
    155155             DO jj = 1, jpj-1 
    156156                DO ji = 1, jpi-1 
    157                    usd3d(ji,jj,jk) = usd2d(ji,jj)*exp(2.0*uwavenum(ji,jj)*(-MIN( gdept(ji,jj,jk) , gdept(ji+1,jj  ,jk)))) 
    158                    vsd3d(ji,jj,jk) = vsd2d(ji,jj)*exp(2.0*vwavenum(ji,jj)*(-MIN( gdept(ji,jj,jk) , gdept(ji  ,jj+1,jk)))) 
     157                   usd3d(ji,jj,jk) = usd2d(ji,jj)*exp(2.0*uwavenum(ji,jj)*(-MIN( gdept_0(ji,jj,jk) , gdept_0(ji+1,jj  ,jk)))) 
     158                   vsd3d(ji,jj,jk) = vsd2d(ji,jj)*exp(2.0*vwavenum(ji,jj)*(-MIN( gdept_0(ji,jj,jk) , gdept_0(ji  ,jj+1,jk)))) 
    159159                END DO 
    160160             END DO 
    161              usd3d(jpi,:,jk) = usd2d(jpi,:)*exp( 2.0*uwavenum(jpi,:)*(-gdept(jpi,:,jk)) ) 
    162              vsd3d(:,jpj,jk) = vsd2d(:,jpj)*exp( 2.0*vwavenum(:,jpj)*(-gdept(:,jpj,jk)) ) 
     161             usd3d(jpi,:,jk) = usd2d(jpi,:)*exp( 2.0*uwavenum(jpi,:)*(-gdept_0(jpi,:,jk)) ) 
     162             vsd3d(:,jpj,jk) = vsd2d(:,jpj)*exp( 2.0*vwavenum(:,jpj)*(-gdept_0(:,jpj,jk)) ) 
    163163          END DO 
    164164 
Note: See TracChangeset for help on using the changeset viewer.