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

Changeset 13834


Ignore:
Timestamp:
2020-11-19T19:19:02+01:00 (4 years ago)
Author:
dancopsey
Message:

Merge in changes from NEMO4.0.1 version of this branch.

Location:
NEMO/branches/UKMO/NEMO_4.0.3_penetrating_solar/src/OCE/SBC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.3_penetrating_solar/src/OCE/SBC/cpl_oasis3.F90

    r13587 r13834  
    6666   INTEGER                    ::   nsnd         ! total number of fields sent  
    6767   INTEGER                    ::   ncplmodel    ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
    68    INTEGER, PUBLIC, PARAMETER ::   nmaxfld=60   ! Maximum number of coupling fields 
     68   INTEGER, PUBLIC, PARAMETER ::   nmaxfld=61   ! Maximum number of coupling fields 
    6969   INTEGER, PUBLIC, PARAMETER ::   nmaxcat=5    ! Maximum number of coupling fields 
    7070   INTEGER, PUBLIC, PARAMETER ::   nmaxcpl=5    ! Maximum number of coupling fields 
  • NEMO/branches/UKMO/NEMO_4.0.3_penetrating_solar/src/OCE/SBC/sbccpl.F90

    r13587 r13834  
    120120   INTEGER, PARAMETER ::   jpr_tauwy  = 56   ! y component of the ocean stress from waves 
    121121   INTEGER, PARAMETER ::   jpr_ts_ice = 57   ! Sea ice surface temp 
    122  
    123    INTEGER, PARAMETER ::   jprcv      = 57   ! total number of fields received   
     122   INTEGER, PARAMETER ::   jpr_qtr    = 61   ! Transmitted solar 
     123 
     124   INTEGER, PARAMETER ::   jprcv      = 61   ! total number of fields received 
    124125 
    125126   INTEGER, PARAMETER ::   jps_fice   =  1   ! ice fraction sent to the atmosphere 
     
    192193   TYPE(FLD_C) ::   sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tauwoc, & 
    193194                    sn_rcv_wdrag, sn_rcv_wfreq 
     195   ! Transmitted solar 
     196   TYPE(FLD_C) ::   sn_rcv_qtr 
    194197   !                                   ! Other namelist parameters 
    195198   INTEGER     ::   nn_cplmodel           ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
     
    268271         &                  sn_rcv_w10m  , sn_rcv_taumod, sn_rcv_tau  , sn_rcv_dqnsdt, sn_rcv_qsr   ,  &  
    269272         &                  sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum  , sn_rcv_tauwoc,  & 
     273         &                  sn_rcv_qtr   ,                                                             & 
    270274         &                  sn_rcv_wdrag , sn_rcv_qns   , sn_rcv_emp  , sn_rcv_rnf   , sn_rcv_cal   ,  & 
    271275         &                  sn_rcv_iceflx, sn_rcv_co2   , sn_rcv_mslp ,                                & 
     
    313317         WRITE(numout,*)'      ice shelf                       = ', TRIM(sn_rcv_isf%cldes   ), ' (', TRIM(sn_rcv_isf%clcat   ), ')' 
    314318         WRITE(numout,*)'      sea ice heat fluxes             = ', TRIM(sn_rcv_iceflx%cldes), ' (', TRIM(sn_rcv_iceflx%clcat), ')' 
     319         WRITE(numout,*)'      transmitted solar               = ', TRIM(sn_rcv_qtr%cldes   ), ' (', TRIM(sn_rcv_qtr%clcat   ), ')' 
    315320         WRITE(numout,*)'      atm co2                         = ', TRIM(sn_rcv_co2%cldes   ), ' (', TRIM(sn_rcv_co2%clcat   ), ')' 
    316321         WRITE(numout,*)'      significant wave heigth         = ', TRIM(sn_rcv_hsig%cldes  ), ' (', TRIM(sn_rcv_hsig%clcat  ), ')'  
     
    582587         srcv(jpr_topm:jpr_botm)%laction = .TRUE. 
    583588      ENDIF 
     589      !                                                      ! ------------------------- ! 
     590      !                                                      !    transmitted solar      !    
     591      !                                                      ! ------------------------- ! 
     592      srcv(jpr_qtr )%clname = 'OQtr' 
     593      IF( TRIM(sn_rcv_qtr%cldes) == 'coupled' ) THEN 
     594         IF ( TRIM( sn_rcv_qtr%clcat ) == 'yes' ) THEN 
     595            srcv(jpr_qtr)%nct = nn_cats_cpl 
     596         ELSE 
     597            CALL ctl_stop( 'sbc_cpl_init: sn_rcv_qtr%clcat should always be set to yes currently' ) 
     598         ENDIF 
     599         srcv(jpr_qtr)%laction = .TRUE. 
     600      ENDIF 
     601 
    584602      !                                                      ! ------------------------- ! 
    585603      !                                                      !    ice skin temperature   !    
     
    21262144      ELSEIF( ln_cndflx .AND. .NOT.ln_cndemulate ) THEN      !==  conduction flux as surface forcing  ==! 
    21272145         ! 
    2128          !          ! ===> here we must receive the qtr_ice_top array from the coupler 
    2129          !                 for now just assume zero (fully opaque ice) 
    2130          zqtr_ice_top(:,:,:) = 0._wp 
     2146         SELECT CASE( TRIM( sn_rcv_qtr%cldes ) ) 
     2147         ! 
     2148         !      ! ===> here we receive the qtr_ice_top array from the coupler 
     2149         CASE ('coupled') 
     2150            IF (ln_scale_ice_fluxes) THEN 
     2151               WHERE( a_i(:,:,:) > 0.0_wp ) zqtr_ice_top(:,:,:) = frcv(jpr_qtr)%z3(:,:,:) * a_i_last_couple(:,:,:) / a_i(:,:,:) 
     2152               WHERE( a_i(:,:,:) <= 0.0_wp ) zqtr_ice_top(:,:,:) = 0.0_wp 
     2153            ELSE 
     2154               zqtr_ice_top(:,:,:) = frcv(jpr_qtr)%z3(:,:,:) 
     2155            ENDIF 
     2156 
     2157         !      if we are not getting this data from the coupler then assume zero (fully opaque ice) 
     2158         CASE ('none') 
     2159            zqtr_ice_top(:,:,:) = 0._wp 
     2160         END SELECT 
    21312161         ! 
    21322162      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.