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 13899 for NEMO/branches/2020/tickets_icb_1900/tests/CANAL/MY_SRC/usrdef_istate.F90 – NEMO

Ignore:
Timestamp:
2020-11-27T17:26:33+01:00 (4 years ago)
Author:
mathiot
Message:

ticket #1900: update branch to trunk and add ICB test case

Location:
NEMO/branches/2020/tickets_icb_1900
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/tickets_icb_1900

    • Property svn:externals
      •  

        old new  
        22^/utils/build/makenemo@HEAD   makenemo 
        33^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools/@HEAD           tools 
         4^/utils/tools@HEAD            tools 
        55^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
         
        88 
        99# SETTE 
        10 ^/utils/CI/sette@12931        sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/tickets_icb_1900/tests/CANAL/MY_SRC/usrdef_istate.F90

    r12740 r13899  
    6666      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   ' 
    6767      ! 
    68       IF (ln_sshnoise) CALL RANDOM_NUMBER(zrandom) 
    6968      zjetx = ABS(rn_ujetszx)/2. 
    7069      zjety = ABS(rn_ujetszy)/2. 
    7170      ! 
     71      zf0   = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 
     72      ! 
    7273      SELECT CASE(nn_initcase) 
     74 
     75      CASE(-1)    ! stratif at rest 
     76 
     77         ! sea level: 
     78         pssh(:,:) = 0. 
     79         ! temperature: 
     80         pts(:,:,1,jp_tem) = 25. !!30._wp 
     81         pts(:,:,2:jpk,jp_tem) = 22. !!24._wp 
     82         ! salinity:   
     83         pts(:,:,:,jp_sal) = 35._wp 
     84         ! velocities: 
     85         pu(:,:,:) = 0. 
     86         pv(:,:,:) = 0. 
     87 
    7388      CASE(0)    ! rest 
    7489          
     
    98113            zbeta = 2._wp * omega * COS( rad * rn_ppgphi0 ) / ra 
    99114            WHERE( ABS(gphit) <= zjety ) 
    100                pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:) * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
    101             ELSEWHERE 
    102                pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:) * SIGN(zjety, gphit(:,:)) * 1.e3   & 
     115               pssh(:,:) = - rn_uzonal / grav * ( zf0 * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
     116            ELSEWHERE 
     117               pssh(:,:) = - rn_uzonal / grav * ( zf0 * SIGN(zjety, gphit(:,:)) * 1.e3   & 
    103118                  &                             + 0.5 * zbeta * zjety * zjety * 1.e6 ) 
    104119            END WHERE 
     
    109124         pts(:,:,jpk,jp_sal) = 0. 
    110125         DO jk=1, jpkm1 
    111             pts(:,:,jk,jp_sal) = gphit(:,:) 
     126            WHERE( ABS(gphit) <= zjety ) 
     127!!$            WHERE( ABS(gphit) <= zjety*0.5 .AND. ABS(glamt) <= zjety*0.5 ) ! for a square of salt 
     128               pts(:,:,jk,jp_sal) = 35. 
     129            ELSEWHERE 
     130               pts(:,:,jk,jp_sal) = 30. 
     131            END WHERE                     
    112132         END DO 
    113133         ! velocities: 
     
    134154            WHERE( ABS(gphit) <= zjety ) 
    135155               pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav   & 
    136                   &        * ( ff_t(:,:) * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
     156                  &        * ( zf0 * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 
    137157            ELSEWHERE 
    138158               pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav   & 
    139                   &        * ( ff_t(:,:) * SIGN(zjety, gphit(:,:)) * 1.e3 + 0.5 * zbeta * zjety * zjety * 1.e6 ) 
     159                  &        * ( zf0 * SIGN(zjety, gphit(:,:)) * 1.e3 + 0.5 * zbeta * zjety * zjety * 1.e6 ) 
    140160            END WHERE 
    141161         END SELECT 
     
    143163         pts(:,:,:,jp_tem) = 10._wp 
    144164         ! salinity:   
    145          pts(:,:,:,jp_sal) = 2. 
    146          DO jk=1, jpkm1 
    147             WHERE( ABS(gphiv) <= zjety ) pts(:,:,jk,jp_sal) = 2. + SIGN(1.,gphiv(:,:)) 
     165         pts(:,:,:,jp_sal) = 30. 
     166         DO jk=1, jpkm1 
     167            WHERE( ABS(gphiv) <= zjety ) pts(:,:,jk,jp_sal) = 30. + SIGN(1.,gphiv(:,:)) 
    148168         END DO 
    149169         ! velocities: 
     
    166186         pssh(:,1) = - ff_t(:,1) / grav * pu(:,1,1) * e2t(:,1) 
    167187         DO jl=1, jpnj 
    168             DO_2D_00_00 
     188            DO_2D( 0, 0, 0, 0 ) 
    169189               pssh(ji,jj) = pssh(ji,jj-1) - ff_t(ji,jj) / grav * pu(ji,jj,1) * e2t(ji,jj) 
    170190            END_2D 
     
    176196         ! salinity:   
    177197         DO jk=1, jpkm1 
    178             pts(:,:,jk,jp_sal) = gphit(:,:) 
     198            pts(:,:,jk,jp_sal) = pssh(:,:) 
    179199         END DO 
    180200         ! velocities: 
     
    183203      CASE(4)    ! geostrophic zonal pulse 
    184204    
    185          DO_2D_11_11 
     205         DO_2D( 1, 1, 1, 1 ) 
    186206            IF ( ABS(glamt(ji,jj)) <= zjetx ) THEN 
    187207               zdu = rn_uzonal 
     
    210230         zf0   = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 
    211231         zumax = rn_vtxmax * SIGN(1._wp, zf0) ! Here Anticyclonic: set zumax=-1 for cyclonic 
    212          zlambda = SQRT(2._wp)*rn_lambda       ! Horizontal scale in meters  
     232         zlambda = SQRT(2._wp)*rn_lambda*1.e3       ! Horizontal scale in meters  
    213233         zn2 = 3.e-3**2 
    214234         zH = 0.5_wp * 5000._wp 
     
    217237         zP0 = rho0 * zf0 * zumax * zlambda * SQRT(EXP(1._wp)/2._wp) 
    218238         ! 
    219          DO_2D_11_11 
     239         DO_2D( 1, 1, 1, 1 ) 
    220240            zx = glamt(ji,jj) * 1.e3 
    221241            zy = gphit(ji,jj) * 1.e3 
     
    248268         ! velocities: 
    249269         za = 2._wp * zP0 / zlambda**2 
    250          DO_2D_00_00 
     270         DO_2D( 0, 0, 0, 0 ) 
    251271            zx = glamu(ji,jj) * 1.e3 
    252272            zy = gphiu(ji,jj) * 1.e3 
     
    263283         END_2D 
    264284         ! 
    265          DO_2D_00_00 
     285         DO_2D( 0, 0, 0, 0 ) 
    266286            zx = glamv(ji,jj) * 1.e3 
    267287            zy = gphiv(ji,jj) * 1.e3 
     
    281301       
    282302      IF (ln_sshnoise) THEN 
     303         CALL RANDOM_SEED() 
    283304         CALL RANDOM_NUMBER(zrandom) 
    284305         pssh(:,:) = pssh(:,:) + ( 0.1  * zrandom(:,:) - 0.05 ) 
Note: See TracChangeset for help on using the changeset viewer.