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 9717 for branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2018-05-31T17:25:15+02:00 (6 years ago)
Author:
jamrae
Message:

Made changes for sea ice form drag coupling.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8427 r9717  
    149149   INTEGER, PARAMETER ::   jps_bio_dms = 35           ! MEDUSA DMS surface concentration 
    150150   INTEGER, PARAMETER ::   jps_bio_chloro = 36        ! MEDUSA chlorophyll surface concentration 
    151    INTEGER, PARAMETER ::   jpsnd      = 36            ! total number of fields sent 
     151   INTEGER, PARAMETER ::   jps_rough_ice_fmd = 37     ! ice form drag roughness length 
     152   INTEGER, PARAMETER ::   jps_rough_ice_skin = 38    ! ice skin roughness length 
     153   INTEGER, PARAMETER ::   jpsnd      = 38            ! total number of fields sent 
    152154 
    153155   REAL(wp), PARAMETER :: dms_unit_conv = 1.0e+6      ! Coversion factor to get outgong DMS in standard units for coupling 
     
    163165   END TYPE FLD_C 
    164166   ! Send to the atmosphere                           ! 
    165    TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1 
     167   TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough 
    166168   TYPE(FLD_C) ::   sn_snd_bio_co2, sn_snd_bio_dms, sn_snd_bio_chloro                    
    167169 
     
    241243      !! 
    242244      NAMELIST/namsbc_cpl/  sn_snd_temp, sn_snd_alb   , sn_snd_thick , sn_snd_crt   , sn_snd_co2,     & 
    243          &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1,                 & 
     245         &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough,& 
    244246         &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,     & 
    245247         &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   , sn_rcv_iceflx,  & 
     
    314316         WRITE(numout,*)'      meltponds fraction & depth      = ', TRIM(sn_snd_mpnd%cldes  ), ' (', TRIM(sn_snd_mpnd%clcat   ), ')' 
    315317         WRITE(numout,*)'      sea surface freezing temp       = ', TRIM(sn_snd_sstfrz%cldes   ), ' (', TRIM(sn_snd_sstfrz%clcat   ), ')' 
     318         WRITE(numout,*)'      ice formdrag                    = ', TRIM(sn_snd_icerough%cldes   ), ' (', TRIM(sn_snd_icerough%clcat   ), ')' 
    316319 
    317320         WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel 
     
    868871      CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_cond%cldes' ) 
    869872      END SELECT 
    870       ! 
    871        
    872  
     873      !      
     874      !                                                      ! ------------------------- ! 
     875      !                                                      !   Sea ice form drag       ! 
     876      !                                                      ! ------------------------- ! 
     877      ssnd(jps_rough_ice_fmd )%clname = 'OIceFmd' 
     878      ssnd(jps_rough_ice_skin )%clname = 'ORghIcSk' 
     879      SELECT CASE ( TRIM( sn_snd_icerough%cldes ) ) 
     880         CASE ( 'none' ) 
     881            ssnd(jps_rough_ice_fmd)%laction = .FALSE. 
     882            ssnd(jps_rough_ice_skin)%laction = .FALSE. 
     883         CASE ( 'ice', 'weighted ice' ) 
     884            ssnd(jps_rough_ice_fmd)%laction = .TRUE. 
     885            ssnd(jps_rough_ice_skin)%laction = .TRUE. 
     886         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_icerough%cldes' ) 
     887      END SELECT 
     888      ! 
     889      ! 
    873890      !                                                      ! ------------------------------- ! 
    874891      !                                                      !   OPA-SAS coupling - snd by opa !    
     
    26272644#endif 
    26282645      ! 
     2646      !      
     2647      !                                                      ! ------------------------- ! 
     2648      !                                                      !   Sea ice form drag       ! 
     2649      !                                                      ! ------------------------- ! 
     2650#if defined key_cice 
     2651      IF( ssnd(jps_rough_ice_fmd)%laction ) THEN 
     2652          SELECT CASE( sn_snd_icerough%cldes ) 
     2653             CASE( 'ice' ) 
     2654                ztmp1(:,:) = rough_ice_fmd(:,:) 
     2655             CASE( 'weighted ice' ) 
     2656                ztmp1(:,:) = rough_ice_fmd(:,:) * fr_i(:,:) 
     2657             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2658          END SELECT 
     2659      ENDIF 
     2660      IF( ssnd(jps_rough_ice_fmd)%laction )   CALL cpl_snd( jps_rough_ice_fmd, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2661 
     2662      IF( ssnd(jps_rough_ice_skin)%laction ) THEN 
     2663          SELECT CASE( sn_snd_icerough%cldes ) 
     2664             CASE( 'ice' ) 
     2665                ztmp1(:,:) = rough_ice_skin(:,:) 
     2666             CASE( 'weighted ice' ) 
     2667                ztmp1(:,:) = rough_ice_skin(:,:) * fr_i(:,:) 
     2668             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2669          END SELECT 
     2670      ENDIF 
     2671      IF( ssnd(jps_rough_ice_skin)%laction )   CALL cpl_snd( jps_rough_ice_skin, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2672#endif 
     2673      ! 
    26292674      CALL wrk_dealloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
    26302675      CALL wrk_dealloc( jpi,jpj, zotx1_in, zoty1_in ) 
Note: See TracChangeset for help on using the changeset viewer.