Changeset 8903
- Timestamp:
- 2017-12-05T16:59:03+01:00 (7 years ago)
- Location:
- branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/CONFIG/SHARED/namelist_ref
r8363 r8903 526 526 &nam_tide ! tide parameters 527 527 !----------------------------------------------------------------------- 528 ln_tide = .false. 529 ln_tide_load = .false. ! read load potential 530 filetide_load = 'tide_LOAD_grid_T.nc' ! filename for load potential 531 ln_tide_pot = .true. ! use tidal potential forcing 532 ln_tide_ramp = .false. ! 533 rdttideramp = 0. ! 534 clname(1) = 'DUMMY' ! name of constituent - all tidal components must be set in namelist_cfg 528 ln_tide = .false. ! Activate tides 529 ln_tide_pot = .true. ! use tidal potential forcing 530 ln_scal_load = .false. ! Use scalar approximation for 531 rn_scal_load = 0.094 ! load potential 532 ln_read_load = .false. ! Or read load potential from file 533 cn_tide_load = 'tide_LOAD_grid_T.nc' ! filename for load potential 534 ! 535 ln_tide_ramp = .false. ! Use linear ramp for tides at startup 536 rdttideramp = 0. ! ramp duration in days 537 clname(1) = 'DUMMY' ! name of constituent - all tidal components must be set in namelist_cfg 535 538 / 536 539 !----------------------------------------------------------------------- -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r7753 r8903 74 74 ! 75 75 INTEGER :: ji, jj, jk ! dummy loop indices 76 REAL(wp) :: z2dt, zg_2, zintp, zgrau0r 76 REAL(wp) :: z2dt, zg_2, zintp, zgrau0r, zld ! temporary scalar 77 77 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv 78 78 REAL(wp), POINTER, DIMENSION(:,:) :: zpice … … 121 121 END DO 122 122 END DO 123 ! 124 IF (ln_scal_load) THEN 125 zld = rn_scal_load * grav 126 DO jj = 2, jpjm1 ! add scalar approximation for load potential 127 DO ji = fs_2, fs_jpim1 ! vector opt. 128 spgu(ji,jj) = spgu(ji,jj) + zld * ( sshn(ji+1,jj) - sshn(ji,jj) ) * r1_e1u(ji,jj) 129 spgv(ji,jj) = spgv(ji,jj) + zld * ( sshn(ji,jj+1) - sshn(ji,jj) ) * r1_e2v(ji,jj) 130 END DO 131 END DO 132 ENDIF 123 133 ENDIF 124 134 ! -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r7831 r8903 901 901 zu_spg = - grav * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) * r1_e1u(ji,jj) 902 902 zv_spg = - grav * ( zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj) ) * r1_e2v(ji,jj) 903 zwx(ji,jj) = zu_spg * zcpx(ji,jj)904 zwy(ji,jj) = zv_spg * zcpy(ji,jj)903 zwx(ji,jj) = (1._wp - rn_scal_load) * zu_spg * zcpx(ji,jj) 904 zwy(ji,jj) = (1._wp - rn_scal_load) * zv_spg * zcpy(ji,jj) 905 905 END DO 906 906 END DO … … 911 911 zu_spg = - grav * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) * r1_e1u(ji,jj) 912 912 zv_spg = - grav * ( zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj) ) * r1_e2v(ji,jj) 913 zwx(ji,jj) = zu_spg914 zwy(ji,jj) = zv_spg913 zwx(ji,jj) = (1._wp - rn_scal_load) * zu_spg 914 zwy(ji,jj) = (1._wp - rn_scal_load) * zv_spg 915 915 END DO 916 916 END DO -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r8363 r8903 54 54 ALLOCATE( amp_pot(jpi,jpj,nb_harmo), & 55 55 & phi_pot(jpi,jpj,nb_harmo), pot_astro(jpi,jpj) ) 56 IF( ln_ tide_load )THEN56 IF( ln_read_load )THEN 57 57 ALLOCATE( amp_load(jpi,jpj,nb_harmo), phi_load(jpi,jpj,nb_harmo) ) 58 58 CALL tide_init_load … … 60 60 ENDIF 61 61 ! 62 IF( ln_ tide_load )THEN62 IF( ln_read_load )THEN 63 63 amp_pot(:,:,:) = amp_load(:,:,:) 64 64 phi_pot(:,:,:) = phi_load(:,:,:) … … 144 144 IF(lwp) THEN 145 145 WRITE(numout,*) 146 WRITE(numout,*) 'tide_init_load : Initialization of load potential '146 WRITE(numout,*) 'tide_init_load : Initialization of load potential from file' 147 147 WRITE(numout,*) '~~~~~~~~~~~~~~ ' 148 148 ENDIF … … 150 150 CALL wrk_alloc( jpi, jpj, zti, ztr ) 151 151 ! 152 CALL iom_open ( filetide_load , inum )152 CALL iom_open ( cn_tide_load , inum ) 153 153 ! 154 154 DO itide = 1, nb_harmo -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
r8363 r8903 27 27 LOGICAL , PUBLIC :: ln_tide !: 28 28 LOGICAL , PUBLIC :: ln_tide_pot !: 29 LOGICAL , PUBLIC :: ln_tide_load !: 29 LOGICAL , PUBLIC :: ln_read_load !: 30 LOGICAL , PUBLIC :: ln_scal_load !: 30 31 LOGICAL , PUBLIC :: ln_tide_ramp !: 31 32 INTEGER , PUBLIC :: nb_harmo !: 32 33 INTEGER , PUBLIC :: kt_tide !: 33 34 REAL(wp), PUBLIC :: rdttideramp !: 34 CHARACTER(len=80), PUBLIC :: filetide_load !: filename for input load potential 35 REAL(wp), PUBLIC :: rn_scal_load !: 36 CHARACTER(lc), PUBLIC :: cn_tide_load !: filename for input load potential 35 37 36 38 INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) :: ntide !: … … 51 53 INTEGER :: ios ! Local integer output status for namelist read 52 54 ! 53 NAMELIST/nam_tide/ln_tide, ln_tide_load, filetide_load, ln_tide_pot, ln_tide_ramp, rdttideramp, clname 55 NAMELIST/nam_tide/ln_tide, ln_tide_pot, ln_read_load, ln_scal_load, cn_tide_load, & 56 & ln_tide_ramp, rn_scal_load, rdttideramp, clname 54 57 !!---------------------------------------------------------------------- 55 58 ! … … 71 74 WRITE(numout,*) ' Namelist nam_tide' 72 75 WRITE(numout,*) ' Use tidal components : ln_tide = ', ln_tide 73 WRITE(numout,*) ' Apply astronomical potential : ln_tide_pot = ', ln_tide_pot 74 WRITE(numout,*) ' Read load potential : ln_tide_load = ', ln_tide_load 75 WRITE(numout,*) ' nb_harmo = ', nb_harmo 76 WRITE(numout,*) ' ln_tide_ramp = ', ln_tide_ramp 77 WRITE(numout,*) ' rdttideramp = ', rdttideramp 76 WRITE(numout,*) ' Apply astronomical potential : ln_tide_pot = ', ln_tide_pot 77 WRITE(numout,*) ' Use scalar approx. for load potential : ln_scal_load = ', ln_scal_load 78 WRITE(numout,*) ' Read load potential from file : ln_read_load = ', ln_read_load 79 80 WRITE(numout,*) ' nb_harmo = ', nb_harmo 81 WRITE(numout,*) ' rn_scal_load = ', rn_scal_load 82 WRITE(numout,*) ' ln_tide_ramp = ', ln_tide_ramp 83 WRITE(numout,*) ' rdttideramp = ', rdttideramp 78 84 ENDIF 79 85 ELSE … … 96 102 IF( nb_harmo == 0 ) CALL ctl_stop( 'tide_init : No tidal components set in nam_tide' ) 97 103 ! 98 IF( ln_tide_load.AND.(.NOT.ln_tide_pot) ) & 99 & CALL ctl_stop('with load potential, activate astronomical potential') 104 IF( ln_read_load.AND.(.NOT.ln_tide_pot) ) & 105 & CALL ctl_stop('ln_read_load requires ln_tide_pot') 106 IF( ln_scal_load.AND.(.NOT.ln_tide_pot) ) & 107 & CALL ctl_stop('ln_scal_load requires ln_tide_pot') 108 IF( ln_scal_load.AND.ln_tide_pot ) & 109 & CALL ctl_stop('Choose between ln_scal_load and ln_read_load') 100 110 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rdttideramp) ) & 101 111 & CALL ctl_stop('rdttideramp must be lower than run duration') … … 117 127 kt_tide = nit000 118 128 ! 129 IF (.NOT.ln_scal_load ) rn_scal_load = 0._wp 130 ! 119 131 END SUBROUTINE tide_init 120 132
Note: See TracChangeset
for help on using the changeset viewer.