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 3488 for branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2012-10-04T18:31:06+02:00 (11 years ago)
Author:
acc
Message:

Branch: dev_r3385_NOCS04_HAMF; #665. Stage 3 of 2012 development: Rationalisation of code. Added LIM3 changes, corrected coupled changes and highlighted areas of concern in CICE interface

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r3402 r3488  
    1212   !!             -   ! 2010-10  (J. Chanut, C. Bricaud, G. Madec)  add the surface pressure forcing 
    1313   !!            3.4  ! 2011-11  (C. Harris) CICE added as an option 
     14   !!            3.5  ! 2012-11  (A. Coward, G. Madec) Rethink of heat, mass and salt surface fluxes 
    1415   !!---------------------------------------------------------------------- 
    1516 
     
    162163      IF( nn_ice == 4 .AND. ( .NOT. ( cp_cfg == 'orca' ) .OR. lk_agrif ) )   & 
    163164         &   CALL ctl_stop( 'CICE sea-ice model currently only available in a global ORCA configuration without AGRIF' ) 
     165      IF( nn_ice == 3 .AND. nn_ice_embd == 0 )   & 
     166         &   CALL ctl_stop( 'LIM3 sea-ice model requires nn_ice_embd = 2 or 3' ) 
    164167       
    165168      IF( ln_dm2dc )   nday_qsr = -1   ! initialisation flag 
     
    222225      !! ** Action  : - set the ocean surface boundary condition at before and now  
    223226      !!                time step, i.e.   
    224       !!                utau_b, vtau_b, qns_b, qsr_b, emp_n, emps_b, qrp_b, erp_b 
    225       !!                utau  , vtau  , qns  , qsr  , emp  , sfx   , qrp  , erp 
     227      !!                utau_b, vtau_b, qns_b, qsr_b, emp_n, sfx_b, qrp_b, erp_b 
     228      !!                utau  , vtau  , qns  , qsr  , emp  , sfx  , qrp  , erp 
    226229      !!              - updte the ice fraction : fr_i 
    227230      !!---------------------------------------------------------------------- 
     
    239242         ! The 3D heat content due to qsr forcing is treated in traqsr 
    240243         ! qsr_b (:,:) = qsr (:,:) 
    241          emp_b (:,:) = emp (:,:) 
    242          emps_b(:,:) = sfx(:,:) 
     244         emp_b(:,:) = emp(:,:) 
     245         sfx_b(:,:) = sfx(:,:) 
    243246      ENDIF 
    244247      !                                            ! ---------------------------------------- ! 
     
    308311            CALL iom_get( numror, jpdom_autoglo, 'qns_b' , qns_b  )   ! before non solar heat flux (T-point) 
    309312            ! The 3D heat content due to qsr forcing is treated in traqsr 
    310             ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b  )   ! before     solar heat flux (T-point) 
    311             CALL iom_get( numror, jpdom_autoglo, 'emp_b' , emp_b  )   ! before     freshwater flux (T-point) 
    312             CALL iom_get( numror, jpdom_autoglo, 'emps_b', emps_b )   ! before C/D freshwater flux (T-point) 
     313            ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b  ) ! before     solar heat flux (T-point) 
     314            CALL iom_get( numror, jpdom_autoglo, 'emp_b', emp_b  )    ! before     freshwater flux (T-point) 
     315            ! To ensure restart capability with 3.3x/3.4 restart files    !! to be removed in v3.6 
     316            IF( iom_varid( numror, 'sfx_b', ldstop = .FALSE. ) > 0 ) THEN 
     317               CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b )  ! before salt flux (T-point) 
     318            ELSE 
     319               sfx_b (:,:) = sfx(:,:) 
     320            ENDIF 
    313321         ELSE                                                   !* no restart: set from nit000 values 
    314322            IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields set to nit000' 
     
    316324            vtau_b(:,:) = vtau(:,:) 
    317325            qns_b (:,:) = qns (:,:) 
    318             ! qsr_b (:,:) = qsr (:,:) 
    319             emp_b (:,:) = emp (:,:) 
    320             emps_b(:,:) = sfx(:,:) 
     326            emp_b (:,:) = emp(:,:) 
     327            sfx_b (:,:) = sfx(:,:) 
    321328         ENDIF 
    322329      ENDIF 
     
    334341         ! CALL iom_rstput( kt, nitrst, numrow, 'qsr_b'  , qsr  ) 
    335342         CALL iom_rstput( kt, nitrst, numrow, 'emp_b'  , emp  ) 
    336          CALL iom_rstput( kt, nitrst, numrow, 'emps_b' , sfx ) 
     343         CALL iom_rstput( kt, nitrst, numrow, 'sfx_b' , sfx ) 
    337344      ENDIF 
    338345 
     
    342349      IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN 
    343350         CALL iom_put( "empmr" , emp  - rnf )                   ! upward water flux 
    344          CALL iom_put( "empsmr", sfx - rnf )                    ! c/d water flux 
     351         CALL iom_put( "saltflx", sfx  )                        ! downward salt flux   
     352                                                                ! (includes virtual salt flux beneath ice  
     353                                                                ! in linear free surface case) 
    345354         CALL iom_put( "qt"    , qns  + qsr )                   ! total heat flux  
    346355         CALL iom_put( "qns"   , qns        )                   ! solar heat flux 
Note: See TracChangeset for help on using the changeset viewer.