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

Ignore:
Timestamp:
2009-11-25T15:15:20+01:00 (14 years ago)
Author:
smasson
Message:

implement AR5 diagnostics, see ticket:610

File:
1 edited

Legend:

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

    r1752 r1756  
    4949   USE p4zflx, ONLY : oce_co2 
    5050#endif 
     51   USE diaar5, ONLY :   lk_diaar5 
    5152   IMPLICIT NONE 
    5253   PRIVATE 
     
    10381039      INTEGER ::   isec, info       ! temporary integer 
    10391040      REAL(wp)::   zcoef, ztsurf    ! temporary scalar 
     1041      REAL(wp), DIMENSION(jpi,jpj    )::   zcptn    ! rcp * tn(:,:,1) 
     1042      REAL(wp), DIMENSION(jpi,jpj    )::   ztmp     ! temporary array 
    10401043      REAL(wp), DIMENSION(jpi,jpj    )::   zsnow    ! snow precipitation  
    10411044      REAL(wp), DIMENSION(jpi,jpj,jpl)::   zicefr   ! ice fraction  
    10421045      !!---------------------------------------------------------------------- 
    10431046      zicefr(:,:,1) = 1.- p_frld(:,:,1) 
     1047      IF( lk_diaar5 )   zcptn(:,:) = rcp * tn(:,:,1) 
    10441048      ! 
    10451049      !                                                      ! ========================= ! 
     
    10551059         pemp_ice(:,:) = frcv(:,:,jpr_ievp) - frcv(:,:,jpr_snow) 
    10561060         zsnow   (:,:) = frcv(:,:,jpr_snow) 
     1061                           CALL iom_put( 'rain'         , frcv(:,:,jpr_rain)              )   ! liquid precipitation  
     1062         IF( lk_diaar5 )   CALL iom_put( 'hflx_rain_cea', frcv(:,:,jpr_rain) * zcptn(:,:) )   ! heat flux from liq. precip.  
     1063         ztmp(:,:) = frcv(:,:,jpr_tevp) - frcv(:,:,jpr_ievp) * zicefr(:,:,1) 
     1064                           CALL iom_put( 'evap_ao_cea'  , ztmp                            )   ! ice-free oce evap (cell average) 
     1065         IF( lk_diaar5 )   CALL iom_put( 'hflx_evap_cea', ztmp(:,:         ) * zcptn(:,:) )   ! heat flux from from evap (cell ave) 
    10571066      CASE( 'oce and ice'   )   ! received fields: jpr_sbpr, jpr_semp, jpr_oemp 
    10581067         pemp_tot(:,:) = p_frld(:,:,1) * frcv(:,:,jpr_oemp) + zicefr(:,:,1) * frcv(:,:,jpr_sbpr)  
     
    10611070      END SELECT 
    10621071      psprecip(:,:) = - pemp_ice(:,:) 
    1063       CALL iom_put( 'snowpre', psprecip )     ! Snow precipitation  
     1072      CALL iom_put( 'snowpre'    , zsnow                               )   ! Snow 
     1073      CALL iom_put( 'snow_ao_cea', zsnow(:,:         ) * p_frld(:,:,1) )   ! Snow        over ice-free ocean  (cell average) 
     1074      CALL iom_put( 'snow_ai_cea', zsnow(:,:         ) * zicefr(:,:,1) )   ! Snow        over sea-ice         (cell average) 
     1075      CALL iom_put( 'subl_ai_cea', frcv (:,:,jpr_ievp) * zicefr(:,:,1) )   ! Sublimation over sea-ice         (cell average) 
    10641076      !    
    10651077      !                                                           ! runoffs and calving (put in emp_tot) 
    1066       IF( srcv(jpr_rnf)%laction )   pemp_tot(:,:) = pemp_tot(:,:) -      frcv(:,:,jpr_rnf) 
    1067       IF( srcv(jpr_cal)%laction )   pemp_tot(:,:) = pemp_tot(:,:) - ABS( frcv(:,:,jpr_cal) ) 
     1078      IF( srcv(jpr_rnf)%laction ) THEN  
     1079         pemp_tot(:,:) = pemp_tot(:,:) - frcv(:,:,jpr_rnf) 
     1080                           CALL iom_put( 'runoffs'      , frcv(:,:,jpr_rnf )              )   ! rivers 
     1081         IF( lk_diaar5 )   CALL iom_put( 'hflx_rnf_cea' , frcv(:,:,jpr_rnf ) * zcptn(:,:) )   ! heat flux from rivers 
     1082      ENDIF 
     1083      IF( srcv(jpr_cal)%laction ) THEN  
     1084         pemp_tot(:,:) = pemp_tot(:,:) - frcv(:,:,jpr_cal) 
     1085         CALL iom_put( 'calving', frcv(:,:,jpr_cal) ) 
     1086      ENDIF 
    10681087      ! 
    10691088!!gm :  this seems to be internal cooking, not sure to need that in a generic interface  
     
    11011120      !   energy for melting solid precipitation over ice-free ocean 
    11021121      zcoef = xlsn / rhosn 
    1103       pqns_tot(:,:) = pqns_tot(:,:) - p_frld(:,:,1) * zsnow(:,:) * zcoef 
     1122      ztmp(:,:) = p_frld(:,:,1) * zsnow(:,:) * zcoef 
     1123      pqns_tot(:,:) = pqns_tot(:,:) - ztmp(:,:) 
     1124      IF( lk_diaar5 )   CALL iom_put( 'hflx_snow_cea', ztmp + zsnow(:,:) * zcptn(:,:) )   ! heat flux from snow (cell average) 
    11041125!!gm 
    11051126!!    currently it is taken into account in leads budget but not in the qns_tot, and thus not in  
     
    11131134      IF( srcv(jpr_cal)%laction ) THEN  
    11141135         zcoef = xlic / rhoic 
    1115          pqns_tot(:,:) = pqns_tot(:,:) - frcv(:,:,jpr_cal) * zcoef 
     1136         ztmp(:,:) = frcv(:,:,jpr_cal) * zcoef 
     1137         pqns_tot(:,:) = pqns_tot(:,:) - ztmp(:,:) 
     1138         IF( lk_diaar5 )   CALL iom_put( 'hflx_cal_cea', ztmp + frcv(:,:,jpr_cal) * zcptn(:,:) )   ! heat flux from calving 
    11161139      ENDIF 
    11171140 
Note: See TracChangeset for help on using the changeset viewer.