- Timestamp:
- 2018-10-29T15:20:26+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r10249 r10251 76 76 INTEGER :: ib_bdy, ii, ij, ik, igrd, ib, ir, iseg ! dummy loop indices 77 77 INTEGER :: icount, icountr, ibr_max, ilen1, ibm1 ! local integers 78 INTEGER :: iw e, ies, iso, ino, inum, id_dummy ! - -78 INTEGER :: iw, ie, is, in, inum, id_dummy ! - - 79 79 INTEGER :: igrd_start, igrd_end, jpbdta ! - - 80 80 INTEGER :: jpbdtau, jpbdtas ! - - … … 105 105 !! 106 106 NAMELIST/nambdy_index/ ctypebdy, nbdyind, nbdybeg, nbdyend 107 108 109 ! ! JT110 NAMELIST/nambdy_ssh/ ln_ssh_bdy111 ! ! JT112 107 INTEGER :: ios ! Local integer output status for namelist read 113 108 !!---------------------------------------------------------------------- … … 137 132 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwp ) 138 133 IF(lwm) WRITE ( numond, nambdy ) 139 !JT Read nambdy_ssh namelist140 REWIND( numnam_ref ) ! Namelist nambdy in reference namelist :Unstructured open boundaries141 READ ( numnam_ref, nambdy_ssh, IOSTAT = ios, ERR = 905)142 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_ssh in reference namelist', lwp )143 144 REWIND( numnam_cfg ) ! Namelist nambdy in configuration namelist :Unstructured open boundaries145 READ ( numnam_cfg, nambdy_ssh, IOSTAT = ios, ERR = 906)146 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_ssh in configuration namelist', lwp )147 IF(lwm) WRITE ( numond, nambdy_ssh )148 149 IF(lwp) WRITE(numout,*)150 IF(lwp) WRITE(numout,*) 'nambdy_ssh : use of ssh boundaries'151 IF(lwp) WRITE(numout,*) '~~~~~~~~'152 IF(lwp) WRITE(numout,*) ' ln_ssh_bdy: '153 DO ib_bdy = 1,nb_bdy154 IF(lwp) WRITE(numout,*) ' ln_ssh_bdy(',ib_bdy,'): ',ln_ssh_bdy(ib_bdy)155 ENDDO156 IF(lwp) WRITE(numout,*) '~~~~~~~~'157 IF(lwp) WRITE(numout,*)158 !JT159 134 160 135 ! ----------------------------------------- … … 210 185 CASE DEFAULT ; CALL ctl_stop( 'unrecognised value for cn_dyn2d' ) 211 186 END SELECT 212 213 !JT override dta_bdy(ib_bdy)%ll_ssh with namelist value (ln_ssh_bdy)214 IF(lwp) WRITE(numout,*) 'nambdy_ssh : use of ssh boundaries'215 IF(lwp) WRITE(numout,*) '~~~~~~~~'216 IF(lwp) WRITE(numout,*) ' ib_bdy: ',ib_bdy217 IF(lwp) WRITE(numout,*) ' Prior to Implementation of nambdy_ssh'218 IF(lwp) WRITE(numout,*) ' dta_bdy(ib_bdy)%ll_ssh: ',dta_bdy(ib_bdy)%ll_ssh219 220 dta_bdy(ib_bdy)%ll_ssh = ln_ssh_bdy(ib_bdy)221 222 IF(lwp) WRITE(numout,*) ' After to Implementation of nambdy_ssh'223 IF(lwp) WRITE(numout,*) ' dta_bdy(ib_bdy)%ll_ssh: ',dta_bdy(ib_bdy)%ll_ssh224 IF(lwp) WRITE(numout,*) '~~~~~~~~'225 226 !JT227 228 187 IF( cn_dyn2d(ib_bdy) /= 'none' ) THEN 229 188 SELECT CASE( nn_dyn2d_dta(ib_bdy) ) ! … … 254 213 dta_bdy(ib_bdy)%ll_u3d = .true. 255 214 dta_bdy(ib_bdy)%ll_v3d = .true. 256 CASE('neumann')257 IF(lwp) WRITE(numout,*) ' Neumann conditions'258 dta_bdy(ib_bdy)%ll_u3d = .false.259 dta_bdy(ib_bdy)%ll_v3d = .false.260 CASE('zerograd')261 IF(lwp) WRITE(numout,*) ' Zero gradient for baroclinic velocities'262 dta_bdy(ib_bdy)%ll_u3d = .false.263 dta_bdy(ib_bdy)%ll_v3d = .false.264 215 CASE('zero') 265 216 IF(lwp) WRITE(numout,*) ' Zero baroclinic velocities (runoff case)' … … 826 777 ! is = mjg(1) + 1 ! if monotasking and no zoom, is=2 827 778 ! in = mjg(1) + nlcj-1 - 1 ! if monotasking and no zoom, in=jpjm1 828 iw e= mig(1) - jpizoom + 2 ! if monotasking and no zoom, iw=2829 ie s= mig(1) + nlci - jpizoom - 1 ! if monotasking and no zoom, ie=jpim1830 is o= mjg(1) - jpjzoom + 2 ! if monotasking and no zoom, is=2831 in o= mjg(1) + nlcj - jpjzoom - 1 ! if monotasking and no zoom, in=jpjm1779 iw = mig(1) - jpizoom + 2 ! if monotasking and no zoom, iw=2 780 ie = mig(1) + nlci - jpizoom - 1 ! if monotasking and no zoom, ie=jpim1 781 is = mjg(1) - jpjzoom + 2 ! if monotasking and no zoom, is=2 782 in = mjg(1) + nlcj - jpjzoom - 1 ! if monotasking and no zoom, in=jpjm1 832 783 833 784 ALLOCATE( nbondi_bdy(nb_bdy)) … … 902 853 ENDIF 903 854 ! check if point is in local domain 904 IF( nbidta(ib,igrd,ib_bdy) >= iw e .AND. nbidta(ib,igrd,ib_bdy) <= ies.AND. &905 & nbjdta(ib,igrd,ib_bdy) >= is o .AND. nbjdta(ib,igrd,ib_bdy) <= ino) THEN855 IF( nbidta(ib,igrd,ib_bdy) >= iw .AND. nbidta(ib,igrd,ib_bdy) <= ie .AND. & 856 & nbjdta(ib,igrd,ib_bdy) >= is .AND. nbjdta(ib,igrd,ib_bdy) <= in ) THEN 906 857 ! 907 858 icount = icount + 1 … … 939 890 com_south_b = 0 940 891 com_north_b = 0 941 942 892 DO igrd = 1, jpbgrd 943 893 icount = 0 … … 946 896 DO ib = 1, nblendta(igrd,ib_bdy) 947 897 ! check if point is in local domain and equals ir 948 IF( nbidta(ib,igrd,ib_bdy) >= iw e .AND. nbidta(ib,igrd,ib_bdy) <= ies.AND. &949 & nbjdta(ib,igrd,ib_bdy) >= is o .AND. nbjdta(ib,igrd,ib_bdy) <= ino.AND. &898 IF( nbidta(ib,igrd,ib_bdy) >= iw .AND. nbidta(ib,igrd,ib_bdy) <= ie .AND. & 899 & nbjdta(ib,igrd,ib_bdy) >= is .AND. nbjdta(ib,igrd,ib_bdy) <= in .AND. & 950 900 & nbrdta(ib,igrd,ib_bdy) == ir ) THEN 951 901 ! … … 1136 1086 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 1137 1087 nbr => idx_bdy(ib_bdy)%nbr(ib,igrd) 1138 idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) * 0.5 & 1139 & *(10./ FLOAT(nn_rimwidth(ib_bdy))) ) ! JGraham:modified for rim=15 1140 ! idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) *0.5 ) ! tanh formulation 1088 idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) *0.5 ) ! tanh formulation 1141 1089 ! idx_bdy(ib_bdy)%nbw(ib,igrd) = (FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy)))**2. ! quadratic 1142 1090 ! idx_bdy(ib_bdy)%nbw(ib,igrd) = FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy)) ! linear … … 1646 1594 ELSE 1647 1595 ! This is a corner 1648 IF(lwp)WRITE(numout,*) 'Found a South-West corner at (i,j): ', jpiwob(ib), jpjwdt(ib)1596 WRITE(numout,*) 'Found a South-West corner at (i,j): ', jpiwob(ib), jpjwdt(ib) 1649 1597 CALL bdy_ctl_corn(npckgw(ib), icornw(ib,1)) 1650 1598 itest=itest+1 … … 1660 1608 ELSE 1661 1609 ! This is a corner 1662 IF(lwp)WRITE(numout,*) 'Found a North-West corner at (i,j): ', jpiwob(ib), jpjwft(ib)1610 WRITE(numout,*) 'Found a North-West corner at (i,j): ', jpiwob(ib), jpjwft(ib) 1663 1611 CALL bdy_ctl_corn(npckgw(ib), icornw(ib,2)) 1664 1612 itest=itest+1 … … 1690 1638 ELSE 1691 1639 ! This is a corner 1692 IF(lwp)WRITE(numout,*) 'Found a South-East corner at (i,j): ', jpieob(ib)+1, jpjedt(ib)1640 WRITE(numout,*) 'Found a South-East corner at (i,j): ', jpieob(ib)+1, jpjedt(ib) 1693 1641 CALL bdy_ctl_corn(npckge(ib), icorne(ib,1)) 1694 1642 itest=itest+1 … … 1704 1652 ELSE 1705 1653 ! This is a corner 1706 IF(lwp)WRITE(numout,*) 'Found a North-East corner at (i,j): ', jpieob(ib)+1, jpjeft(ib)1654 WRITE(numout,*) 'Found a North-East corner at (i,j): ', jpieob(ib)+1, jpjeft(ib) 1707 1655 CALL bdy_ctl_corn(npckge(ib), icorne(ib,2)) 1708 1656 itest=itest+1
Note: See TracChangeset
for help on using the changeset viewer.