Changeset 23
- Timestamp:
- 02/13/12 19:45:12 (13 years ago)
- Location:
- trunk/NEMOGCM/NEMO/OPA_SRC/OBC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obc_oce.F90
r10 r23 73 73 74 74 REAL(wp), PUBLIC :: obcsurftot !: Total lateral surface of open boundaries 75 ! Add computation of E/W/N/S lateral surface of open boundaries 76 REAL(wp), PUBLIC :: & !: 77 obcsurfeast , & !: East lateral surface of open boundaries 78 obcsurfwest , & !: West lateral surface of open boundaries 79 obcsurfnorth , & !: North lateral surface of open boundaries 80 obcsurfsouth !: South lateral surface of open boundaries 75 81 76 82 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: -
trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obc_par.F90
r22 r23 113 113 jpisfm1 = jpisf-1 !: last ocean point " " 114 114 115 !! * CHOSE WHERE YOU WANT TO LOCATE THE BAROTROPIC CORRECTION VELOCITY 116 LOGICAL, PARAMETER :: & !: 117 lp_obc_east_barotp_corr = .TRUE., & !: 118 lp_obc_west_barotp_corr = .TRUE., & !: 119 lp_obc_north_barotp_corr = .TRUE., & !: 120 lp_obc_south_barotp_corr = .TRUE. !: 121 115 122 INTEGER, PARAMETER :: jpnic = 2700 !: maximum number of isolated coastlines points 116 123 -
trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obc_par_EEL_R5.h90
r1 r23 72 72 jpisfm1 = jpisf-1 !: last ocean point " " 73 73 74 !! * CHOSE WHERE YOU WANT TO LOCATE THE BAROTROPIC CORRECTION VELOCITY 75 LOGICAL, PARAMETER :: & !: 76 lp_obc_east_barotp_corr = .TRUE., & !: 77 lp_obc_west_barotp_corr = .TRUE., & !: 78 lp_obc_north_barotp_corr = .TRUE., & !: 79 lp_obc_south_barotp_corr = .TRUE. !: 80 74 81 INTEGER, PARAMETER :: & !: 75 82 jpnic = 2700 !: maximum number of isolated coastlines points -
trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obcini.F90
r18 r23 423 423 ! 3.1 Total lateral surface 424 424 ! ------------------------- 425 obcsurfeast = 0.e0 ; obcsurfwest = 0.e0 426 obcsurfnorth = 0.e0 ; obcsurfsouth = 0.e0 425 427 obcsurftot = 0.e0 426 428 427 IF( lp_obc_east ) THEN ! ... East open boundary lateral surface429 IF( lp_obc_east .AND. lp_obc_east_barotp_corr ) THEN ! ... East open boundary lateral surface 428 430 DO ji = nie0, nie1 429 431 DO jj = 1, jpj 430 obcsurf tot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) )432 obcsurfeast = obcsurfeast+hu(ji,jj)*e2u(ji,jj)*uemsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 431 433 END DO 432 434 END DO 433 END IF 434 435 IF( lp_obc_west ) THEN ! ... West open boundary lateral surface 435 obcsurftot = obcsurftot + obcsurfeast 436 END IF 437 438 IF( lp_obc_west .AND. lp_obc_west_barotp_corr ) THEN ! ... West open boundary lateral surface 436 439 DO ji = niw0, niw1 437 440 DO jj = 1, jpj 438 obcsurf tot = obcsurftot+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) )441 obcsurfwest = obcsurfwest+hu(ji,jj)*e2u(ji,jj)*uwmsk(jj,1) * MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 439 442 END DO 440 443 END DO 441 END IF 442 443 IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 444 obcsurftot = obcsurftot + obcsurfwest 445 END IF 446 447 IF( lp_obc_north .AND. lp_obc_north_barotp_corr ) THEN ! ... North open boundary lateral surface 444 448 DO jj = njn0, njn1 445 449 DO ji = 1, jpi 446 obcsurf tot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) )450 obcsurfnorth = obcsurfnorth+hv(ji,jj)*e1v(ji,jj)*vnmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 447 451 END DO 448 452 END DO 449 END IF 450 451 IF( lp_obc_south ) THEN ! ... South open boundary lateral surface 453 obcsurftot = obcsurftot + obcsurfnorth 454 END IF 455 456 IF( lp_obc_south .AND. lp_obc_south_barotp_corr ) THEN ! ... South open boundary lateral surface 452 457 DO jj = njs0, njs1 453 458 DO ji = 1, jpi 454 obcsurf tot = obcsurftot+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) )459 obcsurfsouth = obcsurfsouth+hv(ji,jj)*e1v(ji,jj)*vsmsk(ji,1) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 455 460 END DO 456 461 END DO 462 obcsurftot = obcsurftot + obcsurfsouth 457 463 END IF 458 464 -
trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obcvol.F90
r1 r23 83 83 INTEGER :: ji, jj, jk 84 84 REAL(wp) :: zubtpecor 85 REAL(wp) :: zubtpecorE,zubtpecorW,zubtpecorS,zubtpecorN 85 86 REAL(wp) :: zCflxemp 86 87 REAL(wp) :: ztransw, ztranse, ztransn, ztranss, ztranst … … 105 106 106 107 zubtpecor = 0.e0 108 zubtpecorE = 0.e0 109 zubtpecorW = 0.e0 110 zubtpecorS = 0.e0 111 zubtpecorN = 0.e0 107 112 108 113 ! ... East open boundary … … 111 116 DO jk = 1, jpkm1 112 117 DO jj = 1, jpj 113 zubtpecor = zubtpecor- ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * &118 zubtpecorE = zubtpecorE - ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 114 119 & uemsk(jj,jk)*MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 115 120 END DO … … 123 128 DO jk = 1, jpkm1 124 129 DO jj = 1, jpj 125 zubtpecor = zubtpecor+ ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * &130 zubtpecorW = zubtpecorW + ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 126 131 & uwmsk(jj,jk) *MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 127 132 END DO … … 135 140 DO jk = 1, jpkm1 136 141 DO ji = 1, jpi 137 zubtpecor = zubtpecor- va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * &142 zubtpecorN = zubtpecorN - va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 138 143 & vnmsk(ji,jk) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 139 144 END DO … … 147 152 DO jk = 1, jpkm1 148 153 DO ji = 1, jpi 149 zubtpecor = zubtpecor+ va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * &154 zubtpecorS = zubtpecorS + va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 150 155 & vsmsk(ji,jk) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 151 156 END DO … … 154 159 ENDIF 155 160 156 IF( lk_mpp ) CALL mpp_sum( zubtpecor ) ! sum over the global domain 157 161 IF( lk_mpp ) CALL mpp_sum( zubtpecorN ) ! sum over the global domain 162 IF( lk_mpp ) CALL mpp_sum( zubtpecorS ) ! sum over the global domain 163 IF( lk_mpp ) CALL mpp_sum( zubtpecorW ) ! sum over the global domain 164 IF( lk_mpp ) CALL mpp_sum( zubtpecorE ) ! sum over the global domain 165 zubtpecor = zubtpecorE + zubtpecorW + zubtpecorN + zubtpecorS 158 166 159 167 ! 3. The normal velocity correction … … 165 173 IF(lwp) WRITE(numout,*)' cumulate flux EMP :', zCflxemp,' (m3/s)' 166 174 IF(lwp) WRITE(numout,*)' lateral transport :',zubtpecor,'(m3/s)' 175 IF(lwp) WRITE(numout,*)' East lateral transport (before corr.):',zubtpecorE,'(m3/s)' 176 IF(lwp) WRITE(numout,*)' West lateral transport (before corr.):',zubtpecorW,'(m3/s)' 177 IF(lwp) WRITE(numout,*)' North lateral transport (before corr.):',zubtpecorN,'(m3/s)' 178 IF(lwp) WRITE(numout,*)' South lateral transport (before corr.):',zubtpecorS,'(m3/s)' 167 179 IF(lwp) WRITE(numout,*)' net inflow :',zubtpecor-zCflxemp,'(m3/s)' 168 180 ENDIF … … 183 195 ztranst = 0.e0 ! total 184 196 185 IF( lp_obc_west ) THEN197 IF( lp_obc_west .AND. lp_obc_west_barotp_corr ) THEN 186 198 ! ... correction of the west velocity 187 199 DO ji = fs_niw0, fs_niw1 ! Vector opt. … … 200 212 END IF 201 213 202 IF( lp_obc_east ) THEN214 IF( lp_obc_east .AND. lp_obc_east_barotp_corr ) THEN 203 215 204 216 ! ... correction of the east velocity … … 221 233 END IF 222 234 223 IF( lp_obc_north ) THEN235 IF( lp_obc_north .AND. lp_obc_north_barotp_corr ) THEN 224 236 225 237 ! ... correction of the north velocity … … 241 253 END IF 242 254 243 IF( lp_obc_south ) THEN255 IF( lp_obc_south .AND. lp_obc_south_barotp_corr ) THEN 244 256 245 257 ! ... correction of the south velocity
Note: See TracChangeset
for help on using the changeset viewer.