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 440 for trunk/NEMO/OPA_SRC/SBC/flxmod.F90 – NEMO

Ignore:
Timestamp:
2006-04-19T16:43:17+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_046 : CT : - light modifications related to the way to make SST/SSS damping

  • add a flx_init subroutine to read the namflx namelist to get feedback coefficients for SST(dqdt0)/SSS(deds0) damping
  • replace the ztrp variable by the dqdt0 read in the namflx namelist
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/flxmod.F90

    r247 r440  
    1919   !! * Routine accessibility 
    2020   PUBLIC flx       ! routine called by step.F90 
     21   PUBLIC flx_init  ! routine called by opa.F90 
     22 
     23   !! * local declarations 
     24   REAL(wp), PUBLIC ::            & !!! surface fluxes namelist (namflx) 
     25      q0    = 0.e0,               &  ! net heat flux 
     26      qsr0  = 0.e0,               &  ! solar heat flux 
     27      emp0  = 0.e0,               &  ! net freshwater flux 
     28      dqdt0 = -40.,               &  ! coefficient for SST damping (W/m2/K) 
     29      deds0 = 27.7                   ! coefficient for SSS damping (mm/day) 
    2130    
    2231   !! * Substitutions 
     
    91100      !!   8.5  !  02-09  (G. Madec)  F90: Free form and module 
    92101      !!---------------------------------------------------------------------- 
    93       !! * Modules used 
    94       USE flxrnf                       ! ocean runoffs 
    95  
    96102      !! * arguments 
    97103      INTEGER, INTENT( in  ) ::   kt   ! ocean time step 
    98  
    99       !! * local declarations 
    100       REAL(wp) ::                   & !!! surface fluxes namelist (namflx) 
    101          q0   = 0.e0,               &  ! net heat flux 
    102          qsr0 = 0.e0,               &  ! solar heat flux 
    103          emp0 = 0.e0                   ! net freshwater flux 
    104  
    105       NAMELIST/namflx/ q0, qsr0, emp0 
    106104      !!--------------------------------------------------------------------- 
    107105 
    108       IF( kt == nit000 ) THEN 
    109  
    110          ! Read Namelist namflx : surface thermohaline fluxes 
    111          ! -------------------- 
    112          REWIND ( numnam ) 
    113          READ   ( numnam, namflx ) 
    114  
     106      IF( kt == nit000 )  THEN 
    115107         IF(lwp) WRITE(numout,*)' ' 
    116          IF(lwp) WRITE(numout,*)' flx     : Constant surface fluxes read in namelist' 
    117          IF(lwp) WRITE(numout,*)' ~~~~~~~ ' 
    118          IF(lwp) WRITE(numout,*)'      : See the routine ocesbc'      
    119  
    120      ENDIF 
     108         IF(lwp) WRITE(numout,*)'flx     : Analytical/Constant surface fluxes' 
     109         IF(lwp) WRITE(numout,*)'~~~~~~~ ' 
     110         IF(lwp) WRITE(numout,*)'          See the routine oce_sbc'      
     111         IF(lwp) WRITE(numout,*)' ' 
     112      ENDIF 
    121113 
    122114   END SUBROUTINE flx 
    123115 
    124116#endif 
    125    !!====================================================================== 
     117 
     118 
     119   SUBROUTINE flx_init 
     120      !!--------------------------------------------------------------------- 
     121      !!                    ***  ROUTINE flx  *** 
     122      !!               
     123      !! ** Purpose :   provide the thermohaline fluxes (heat and freshwater) 
     124      !!      to the ocean at each time step. 
     125      !! 
     126      !! ** Method  :   Constant surface fluxes (read in namelist (namflx)) 
     127      !! 
     128      !! ** Action  : - q, qt, qsr, emp, emps, qrp, erp 
     129      !! 
     130      !! History : 
     131      !!        !  91-03  ()  Original code 
     132      !!   8.5  !  02-09  (G. Madec)  F90: Free form and module 
     133      !!---------------------------------------------------------------------- 
     134      NAMELIST/namflx/ q0, qsr0, emp0, dqdt0, deds0 
     135      !!--------------------------------------------------------------------- 
     136 
     137      ! Read Namelist namflx : surface thermohaline fluxes 
     138      ! -------------------- 
     139      REWIND ( numnam ) 
     140      READ   ( numnam, namflx ) 
     141 
     142      IF(lwp) THEN 
     143         WRITE(numout,*)' ' 
     144         WRITE(numout,*)'flx_init : thermohaline forcing ' 
     145         WRITE(numout,*)'~~~~~~~~ ' 
     146         WRITE(numout,*)'           net heat flux                  q0   = ', q0  , ' W/m2' 
     147         WRITE(numout,*)'           solar heat flux                qsr0 = ', qsr0, ' W/m2' 
     148         WRITE(numout,*)'           net heat flux                  emp0 = ', emp0, ' W/m2' 
     149         WRITE(numout,*)'           coefficient for SST damping   dqdt0 = ', dqdt0,' W/m2/K' 
     150         WRITE(numout,*)'           coefficient for SSS damping   deds0 = ', deds0,' mm/day' 
     151      ENDIF 
     152 
     153   END SUBROUTINE flx_init 
     154 
    126155END MODULE flxmod 
Note: See TracChangeset for help on using the changeset viewer.