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 3625 for branches/2012/dev_NOC_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/DOM/closea.F90 – NEMO

Ignore:
Timestamp:
2012-11-21T14:19:18+01:00 (11 years ago)
Author:
acc
Message:

Branch dev_NOC_2012_r3555. #1006. Step 7. Check in code now merged with dev_r3385_NOCS04_HAMF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_NOC_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/DOM/closea.F90

    r2715 r3625  
    1818   USE oce             ! dynamics and tracers 
    1919   USE dom_oce         ! ocean space and time domain 
     20   USE phycst 
    2021   USE in_out_manager  ! I/O manager 
    2122   USE sbc_oce         ! ocean surface boundary conditions 
     
    173174      !!      put as run-off in open ocean. 
    174175      !! 
    175       !! ** Action  :   emp, emps   updated surface freshwater fluxes at kt 
     176      !! ** Action  :   emp   updated surface freshwater flux at kt 
    176177      !!---------------------------------------------------------------------- 
    177178      INTEGER, INTENT(in) ::   kt   ! ocean model time step 
    178179      ! 
    179180      INTEGER                     ::   ji, jj, jc, jn   ! dummy loop indices 
    180       REAL(wp)                    ::   zze2 
     181      REAL(wp)                    ::   zze2, zcoef, zcoef1 
    181182      REAL(wp), DIMENSION (jpncs) ::   zfwf  
    182183      !!---------------------------------------------------------------------- 
     
    214215      ENDIF 
    215216      !                                                   !--------------------! 
    216       !                                                   !  update emp, emps  ! 
     217      !                                                   !  update emp        ! 
    217218      zfwf = 0.e0                                         !--------------------! 
    218219      DO jc = 1, jpncs 
     
    235236         IF( ncstt(jc) == 0 ) THEN  
    236237            ! water/evap excess is shared by all open ocean 
    237             emp (:,:) = emp (:,:) + zfwf(jc) / surf(jpncs+1) 
    238             emps(:,:) = emps(:,:) + zfwf(jc) / surf(jpncs+1) 
     238            zcoef  = zfwf(jc) / surf(jpncs+1) 
     239            zcoef1 = rcp * zcoef 
     240            emp(:,:) = emp(:,:) + zcoef 
     241            qns(:,:) = qns(:,:) - zcoef1 * sst_m(:,:) 
    239242         ELSEIF( ncstt(jc) == 1 ) THEN  
    240243            ! Excess water in open sea, at outflow location, excess evap shared 
     
    245248                  IF (      ji > 1 .AND. ji < jpi   & 
    246249                      .AND. jj > 1 .AND. jj < jpj ) THEN  
    247                       emp (ji,jj) = emp (ji,jj) + zfwf(jc) /   & 
    248                          (FLOAT(ncsnr(jc)) * e1t(ji,jj) * e2t(ji,jj)) 
    249                       emps(ji,jj) = emps(ji,jj) + zfwf(jc) /   & 
    250                           (FLOAT(ncsnr(jc)) * e1t(ji,jj) * e2t(ji,jj)) 
     250                      zcoef  = zfwf(jc) / ( REAL(ncsnr(jc), wp) * e1t(ji,jj) * e2t(ji,jj) ) 
     251                      zcoef1 = rcp * zcoef 
     252                      emp(ji,jj) = emp(ji,jj) + zcoef 
     253                      qns(ji,jj) = qns(ji,jj) - zcoef1 * sst_m(ji,jj) 
    251254                  END IF  
    252255                END DO  
    253256            ELSE  
    254                 emp (:,:) = emp (:,:) + zfwf(jc) / surf(jpncs+1) 
    255                 emps(:,:) = emps(:,:) + zfwf(jc) / surf(jpncs+1) 
     257                zcoef  = zfwf(jc) / surf(jpncs+1) 
     258                zcoef1 = rcp * zcoef 
     259                emp(:,:) = emp(:,:) + zcoef 
     260                qns(:,:) = qns(:,:) - zcoef1 * sst_m(:,:) 
    256261            ENDIF 
    257262         ELSEIF( ncstt(jc) == 2 ) THEN  
     
    262267                  ji = mi0(ncsir(jc,jn)) 
    263268                  jj = mj0(ncsjr(jc,jn)) ! Location of outflow in open ocean 
    264                   emp (ji,jj) = emp (ji,jj) + zfwf(jc)   & 
    265                       / (FLOAT(ncsnr(jc)) *  e1t(ji,jj) * e2t(ji,jj) ) 
    266                   emps(ji,jj) = emps(ji,jj) + zfwf(jc)   & 
    267                       / (FLOAT(ncsnr(jc)) *  e1t(ji,jj) * e2t(ji,jj) ) 
     269                  zcoef  = zfwf(jc) / ( REAL(ncsnr(jc), wp) * e1t(ji,jj) * e2t(ji,jj) ) 
     270                  zcoef1 = rcp * zcoef 
     271                  emp(ji,jj) = emp(ji,jj) + zcoef 
     272                  qns(ji,jj) = qns(ji,jj) - zcoef1 * sst_m(ji,jj) 
    268273                END DO  
    269274            ENDIF  
     
    272277         DO jj = ncsj1(jc), ncsj2(jc) 
    273278            DO ji = ncsi1(jc), ncsi2(jc) 
    274                emp (ji,jj) = emp (ji,jj) - zfwf(jc) / surf(jc) 
    275                emps(ji,jj) = emps(ji,jj) - zfwf(jc) / surf(jc) 
     279               zcoef  = zfwf(jc) / surf(jc) 
     280               zcoef1 = rcp * zcoef 
     281               emp(ji,jj) = emp(ji,jj) - zcoef 
     282               qns(ji,jj) = qns(ji,jj) + zcoef1 * sst_m(ji,jj) 
    276283            END DO   
    277284         END DO  
     
    280287      ! 
    281288      CALL lbc_lnk( emp , 'T', 1. ) 
    282       CALL lbc_lnk( emps, 'T', 1. ) 
    283289      ! 
    284290   END SUBROUTINE sbc_clo 
Note: See TracChangeset for help on using the changeset viewer.