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

Changeset 10479


Ignore:
Timestamp:
2019-01-09T12:22:16+01:00 (5 years ago)
Author:
jcastill
Message:

Merged branch UKMO/r6232_rnf_cplmask@9283

Location:
branches/UKMO/AMM15_v3_6_STABLE_package_collate_coupling/NEMOGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/AMM15_v3_6_STABLE_package_collate_coupling/NEMOGCM/CONFIG/SHARED/namelist_ref

    r10478 r10479  
    399399   ln_usecplmask = .false.   !  use a coupling mask file to merge data received from several models 
    400400                             !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel) 
     401   ln_usernfmask = .false.   !  use a runoff mask file to merge data received from several models  
     402                             !   -> file rnfmask.nc with the float variable called rnfmask (jpi,jpj,nn_cplmodel) 
    401403/ 
    402404!----------------------------------------------------------------------- 
  • branches/UKMO/AMM15_v3_6_STABLE_package_collate_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r10478 r10479  
    4848   LOGICAL , PUBLIC ::   ln_ssr         !: Sea Surface restoring on SST and/or SSS       
    4949   LOGICAL , PUBLIC ::   ln_apr_dyn     !: Atmospheric pressure forcing used on dynamics (ocean & ice) 
     50   LOGICAL, PUBLIC  ::   ln_usernfmask = .false.   !  use a runoff mask file to merge data received from several models  
     51                                                   !   -> file rnfmask.nc with the float variable called rnfmask (jpi,jpj,nn_cplmodel) 
    5052   INTEGER , PUBLIC ::   nn_ice         !: flag for ice in the surface boundary condition (=0/1/2/3) 
    5153   INTEGER , PUBLIC ::   nn_isf         !: flag for isf in the surface boundary condition (=0/1/2/3/4)  
     
    152154#endif 
    153155   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xcplmask          !: coupling mask for ln_mixcpl (warning: allocated in sbccpl) 
     156   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xrnfmask          !: coupling mask for ln_usernfmask (warning: allocated in sbcrnf) 
    154157 
    155158   !!---------------------------------------------------------------------- 
  • branches/UKMO/AMM15_v3_6_STABLE_package_collate_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r10478 r10479  
    252252         &                  sn_rcv_wdrag, sn_rcv_qns   , sn_rcv_emp   , sn_rcv_rnf  , sn_rcv_cal ,     &  
    253253         &                  sn_rcv_iceflx, sn_rcv_co2   , sn_rcv_mslp , sn_rcv_tauw ,                  &  
    254          &                  nn_cplmodel, ln_usecplmask 
     254         &                  nn_cplmodel, ln_usecplmask, ln_usernfmask 
    255255      !!--------------------------------------------------------------------- 
    256256      ! 
     
    320320         WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel 
    321321         WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask 
     322         WRITE(numout,*)'  ln_usernfmask                       = ', ln_usernfmask 
    322323      ENDIF 
    323324 
     
    458459      IF( TRIM( sn_rcv_rnf%cldes ) == 'coupled' ) THEN 
    459460         srcv(jpr_rnf)%laction = .TRUE. 
    460          l_rnfcpl              = .TRUE.                      ! -> no need to read runoffs in sbcrnf 
     461         l_rnfcpl              = .NOT. ln_usernfmask         ! -> no need to read runoffs in sbcrnf 
    461462         ln_rnf                = nn_components /= jp_iam_sas ! -> force to go through sbcrnf if not sas 
    462463         IF(lwp) WRITE(numout,*) 
  • branches/UKMO/AMM15_v3_6_STABLE_package_collate_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r8058 r10479  
    8282      ALLOCATE( rnfmsk(jpi,jpj)         , rnfmsk_z(jpk)          ,     & 
    8383         &      h_rnf (jpi,jpj)         , nk_rnf  (jpi,jpj)      ,     & 
    84          &      rnf_tsc_b(jpi,jpj,jpts) , rnf_tsc (jpi,jpj,jpts) , STAT=sbc_rnf_alloc ) 
     84         &      rnf_tsc_b(jpi,jpj,jpts) , rnf_tsc (jpi,jpj,jpts) ,     &  
     85         &      xrnfmask(jpi,jpj,1)     , STAT=sbc_rnf_alloc ) 
    8586         ! 
    8687      IF( lk_mpp            )   CALL mpp_sum ( sbc_rnf_alloc ) 
     
    128129      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    129130         ! 
    130          IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) )       ! updated runoff value at time step kt 
     131         IF( .NOT. l_rnfcpl )   &  
     132             rnf(:,:) = rnf(:,:) * (1. - xrnfmask(:,:,1)) + rn_rfact * sf_rnf(1)%fnow(:,:,1) * xrnfmask(:,:,1)  ! updated runoff value at time step kt 
    131133         ! 
    132134         !                                                     ! set temperature & salinity content of runoffs 
     
    442444      ENDIF 
    443445      ! 
     446      xrnfmask(:,:,:) = 1.    ! default value for points using river forcing  
     447      IF (ln_usernfmask) THEN  
     448         IF(lwp) WRITE(numout,*)  
     449         IF(lwp) WRITE(numout,*) '          runoff mask read in a file'  
     450         CALL iom_open( 'rnfmask', inum )  
     451         CALL iom_get( inum, jpdom_data, 'rnfmask', xrnfmask(:,:,1), 1)  
     452         CALL iom_close( inum )  
     453      ENDIF  
     454      ! 
    444455      rnf(:,:) =  0._wp                         ! runoff initialisation 
    445456      rnf_tsc(:,:,:) = 0._wp                    ! runoffs temperature & salinty contents initilisation 
Note: See TracChangeset for help on using the changeset viewer.