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 6895 – NEMO

Changeset 6895


Ignore:
Timestamp:
2016-08-26T16:53:01+02:00 (8 years ago)
Author:
flavoni
Message:

commit usrdef routines for OVERFLOW

Location:
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/OVERFLOW
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/OVERFLOW/EXP00/namelist_cfg

    r6878 r6895  
    1717&namcfg        !   parameters of the configuration 
    1818!----------------------------------------------------------------------- 
    19    ln_read_cfg = .true.   !  (=T) read the domain configuration in 'domain_cfg.nc" file 
     19   ln_read_cfg = .false.   !  (=T) read the domain configuration in 'domain_cfg.nc" file 
    2020   !                       !  (=F) user defined configuration  ==>>>  see usrdef(_...) modules 
    21    ln_write_cfg= .false.    !  (=T) create the domain configuration file 
     21   ln_write_cfg= .false.   !  (=T) create the domain configuration file 
    2222   ! 
    2323   cp_cfg      = "overflow" !  name of the configuration 
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/OVERFLOW/MY_SRC/usrdef_sbc.F90

    r6879 r6895  
    44   !! Ocean forcing:  user defined momentum, heat and freshwater forcings 
    55   !! 
    6    !!                ===     Here  GYRE configuration      === 
     6   !!                ===     Here  OVERFLOW configuration      === 
    77   !! 
    88   !!===================================================================== 
     
    1111 
    1212   !!---------------------------------------------------------------------- 
    13    !!   usr_def_sbc    : user defined surface bounday conditions in GYRE case 
     13   !!   usr_def_sbc    : user defined surface bounday conditions in OVERFLOW case 
    1414   !!---------------------------------------------------------------------- 
    1515   USE oce             ! ocean dynamics and tracers 
     
    2121   USE lib_mpp         ! distribued memory computing library 
    2222   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    23    USE lib_fortran     ! 
     23   USE lib_fortran     ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
    2424 
    2525   IMPLICIT NONE 
     
    4444      !!              condition, i.e. the momentum, heat and freshwater fluxes. 
    4545      !! 
    46       !! ** Method  :   analytical seasonal cycle (all 0 fields, for overflow 
    47       !!              case). 
     46      !! ** Method  :   all 0 fields, for OVERFLOW case 
    4847      !!                CAUTION : never mask the surface stress field ! 
    4948      !! 
    50       !! ** Action  : - set the ocean surface boundary condition, i.e.    
     49      !! ** Action  : - set to ZERO all the ocean surface boundary condition, i.e.    
    5150      !!                   utau, vtau, taum, wndm, qns, qsr, emp, sfx 
    5251      !! 
     
    5453      INTEGER, INTENT(in) ::   kt   ! ocean time step 
    5554      !! 
    56       !SF INTEGER  ::   ji, jj                 ! dummy loop indices 
    57       !SF INTEGER  ::   zyear0                 ! initial year  
    58       !SF INTEGER  ::   zmonth0                ! initial month 
    59       !SF INTEGER  ::   zday0                  ! initial day 
    60       !SF INTEGER  ::   zday_year0             ! initial day since january 1st 
    61       !SF REAL(wp) ::   ztau     , ztau_sais   ! wind intensity and of the seasonal cycle 
    62       !SF REAL(wp) ::   ztime                  ! time in hour 
    63       !SF REAL(wp) ::   ztimemax , ztimemin    ! 21th June, and 21th decem. if date0 = 1st january 
    64       !SF REAL(wp) ::   ztimemax1, ztimemin1   ! 21th June, and 21th decem. if date0 = 1st january 
    65       !SF REAL(wp) ::   ztimemax2, ztimemin2   ! 21th June, and 21th decem. if date0 = 1st january 
    66       !SF REAL(wp) ::   ztaun                  ! intensity 
    67       !SF REAL(wp) ::   zemp_s, zemp_n, zemp_sais, ztstar 
    68       !SF REAL(wp) ::   zcos_sais1, zcos_sais2, ztrp, zconv, t_star 
    69       !SF REAL(wp) ::   zsumemp, zsurf 
    70       !SF REAL(wp) ::   zrhoa  = 1.22         ! Air density kg/m3 
    71       !SF REAL(wp) ::   zcdrag = 1.5e-3       ! drag coefficient 
    72       !SF REAL(wp) ::   ztx, zty, zmod, zcoef ! temporary variables 
    73       !SF REAL(wp) ::   zyydd                 ! number of days in one year 
    74 !SF ------- 
    75 !SF sbc ana: 
    76       REAL(wp) ::   zrhoa  = 1.22_wp      ! air density kg/m3 
    77       REAL(wp) ::   zcdrag = 1.5e-3_wp    ! drag coefficient 
    78       REAL(wp) ::   zfact, ztx            ! local scalars 
    79       REAL(wp) ::   zcoef, zty, zmod      !   -      - 
    80       INTEGER  ::   nn_tau000   =   0     !  gently increase the stress over the first ntau_rst time-steps 
     55      INTEGER  ::   nn_tau000   =   0     !  spin up of the stress 
    8156      REAL(wp) ::   rn_utau0    =   0.e0  !  uniform value for the i-stress 
    8257      REAL(wp) ::   rn_vtau0    =   0.e0  !  uniform value for the j-stress 
     
    8964      IF( kt == nit000 ) THEN 
    9065         ! 
    91          IF(lwp) WRITE(numout,*)' sbc_ana : Constant surface fluxes read in namsbc_ana namelist' 
     66         IF(lwp) WRITE(numout,*)' usr_sbc : OVERFLOW case: NO surface forcing' 
    9267         IF(lwp) WRITE(numout,*)' ~~~~~~~ ' 
    9368         IF(lwp) WRITE(numout,*)'              spin up of the stress  nn_tau000 = ', nn_tau000, ' time-steps' 
     
    9772         IF(lwp) WRITE(numout,*)'              net heat flux          rn_emp0 = ', rn_emp0  , ' Kg/m2/s' 
    9873         ! 
    99          nn_tau000 = MAX( nn_tau000, 1 )     ! must be >= 1 
    100          ! 
    10174         utau(:,:) = rn_utau0 
    10275         vtau(:,:) = rn_vtau0 
    103          taum(:,:) = SQRT ( rn_utau0 * rn_utau0 + rn_vtau0 * rn_vtau0 ) 
    104          wndm(:,:) = SQRT ( taum(1,1) /  ( zrhoa * zcdrag ) ) 
     76         taum(:,:) = 0.0_wp 
     77         wndm(:,:) = 0.0_wp 
    10578         ! 
    10679         emp (:,:) = rn_emp0 
    10780         sfx (:,:) = 0.0_wp 
    108          qns (:,:) = rn_qns0 - emp(:,:) * sst_m(:,:) * rcp      ! including heat content associated with mass flux at SST 
     81         qns (:,:) = 0.0_wp 
    10982         qsr (:,:) = rn_qsr0 
    11083         !          
    11184      ENDIF 
    112  
    113       IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    114          ! 
    115          IF( kt <= nn_tau000 ) THEN       ! Increase the stress to its nominal value  
    116             !                             ! during the first nn_tau000 
    117             !                             time-steps 
    118             zfact = 0.5 * (  1. - COS( rpi * REAL( kt, wp ) / REAL( nn_tau000, wp ) )  ) 
    119             zcoef = 1. / ( zrhoa * zcdrag ) 
    120             ztx   = zfact * rn_utau0 
    121             zty   = zfact * rn_vtau0 
    122             zmod  = SQRT( ztx * ztx + zty * zty ) 
    123             utau(:,:) = ztx 
    124             vtau(:,:) = zty 
    125             taum(:,:) = zmod 
    126             zmod = SQRT( zmod * zcoef ) 
    127             wndm(:,:) = zmod 
    128          ENDIF 
    129          !                                ! update heat and fresh water fluxes 
    130          !                                ! as they may have been changed by 
    131          !                                sbcssr module 
    132          emp (:,:) = rn_emp0              ! NB: qns changes with SST if emp /= 0 
    133          sfx (:,:) = 0._wp 
    134          qns (:,:) = rn_qns0 - emp(:,:) * sst_m(:,:) * rcp 
    135          qsr (:,:) = rn_qsr0 
    136          ! 
    137       ENDIF 
    138       ! 
    139 !SF END sbc ana 
    140 !SF ----------- 
    14185 
    14286   END SUBROUTINE usr_def_sbc 
Note: See TracChangeset for help on using the changeset viewer.