Ignore:
Timestamp:
2020-11-09T17:25:44+01:00 (6 months ago)
Author:
techene
Message:

#2385 initilise ssh separately to remove domqco.F90 duplicates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/tests/VORTEX/MY_SRC/usrdef_istate.F90

    r13295 r13757  
    2727 
    2828   PUBLIC   usr_def_istate   ! called by istate.F90 
     29   PUBLIC   usr_def_ssh      ! called by domqco.F90 
    2930 
    3031   !! * Substitutions 
     
    6768      zf0   = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 
    6869      zumax = 1._wp * SIGN(1._wp, zf0) ! Here Anticyclonic: set zumax=-1 for cyclonic 
    69       zlambda = SQRT(2._wp)*60.e3      ! Horizontal scale in meters  
     70      zlambda = SQRT(2._wp)*60.e3      ! Horizontal scale in meters 
    7071      zn2 = 3.e-3**2 
    7172      zH = 0.5_wp * 5000._wp 
     
    134135   END SUBROUTINE usr_def_istate 
    135136 
     137 
     138   SUBROUTINE usr_def_ssh( ptmask, pssh ) 
     139      !!---------------------------------------------------------------------- 
     140      !!                   ***  ROUTINE usr_def_istate  *** 
     141      !!  
     142      !! ** Purpose :   Initialization of ssh 
     143      !!                Here VORTEX configuration  
     144      !! 
     145      !! ** Method  :   Set a gaussian anomaly of pressure and associated 
     146      !!                geostrophic velocities 
     147      !!---------------------------------------------------------------------- 
     148      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   ) ::   ptmask  ! t-point ocean mask   [m] 
     149      REAL(wp), DIMENSION(jpi,jpj)         , INTENT(  out) ::   pssh    ! sea-surface height   [m] 
     150      ! 
     151      INTEGER  :: ji, jj ! dummy loop indices 
     152      REAL(wp) :: zx, zy, zP0, zumax, zlambda, zf0, zH, zrho1, za 
     153      !!---------------------------------------------------------------------- 
     154      ! 
     155      IF(lwp) WRITE(numout,*) 
     156      IF(lwp) WRITE(numout,*) 'usr_def_ssh : VORTEX configuration, analytical definition of initial state' 
     157      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   ' 
     158      ! 
     159      ! 
     160      ! 
     161      zf0   = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 
     162      zumax = 1._wp * SIGN(1._wp, zf0) ! Here Anticyclonic: set zumax=-1 for cyclonic 
     163      zlambda = SQRT(2._wp)*60.e3      ! Horizontal scale in meters  
     164      zH = 0.5_wp * 5000._wp 
     165      ! 
     166      zP0 = rho0 * zf0 * zumax * zlambda * SQRT(EXP(1._wp)/2._wp) 
     167      ! 
     168      ! Sea level: 
     169      za = -zP0 * (1._wp-EXP(-zH)) / (grav*(zH-1._wp + EXP(-zH))) 
     170      DO_2D( 1, 1, 1, 1 ) 
     171         zx = glamt(ji,jj) * 1.e3 
     172         zy = gphit(ji,jj) * 1.e3 
     173         zrho1 = rho0 + za * EXP(-(zx**2+zy**2)/zlambda**2) 
     174         pssh(ji,jj) = zP0 * EXP(-(zx**2+zy**2)/zlambda**2)/(zrho1*grav) * ptmask(ji,jj,1) 
     175      END_2D 
     176       
     177   END SUBROUTINE usr_def_ssh 
     178 
    136179   !!====================================================================== 
    137180END MODULE usrdef_istate 
Note: See TracChangeset for help on using the changeset viewer.