Changeset 5801


Ignore:
Timestamp:
2015-10-16T17:21:24+02:00 (5 years ago)
Author:
jcastill
Message:

Version as in svn://fcm3/NEMO_svn/NEMO/branches/dev/cloneill/r10320_vn3.6_ukv_mslp

File:
1 edited

Legend:

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

    r5487 r5801  
    105105   INTEGER, PARAMETER ::   jpr_e3t1st = 41            ! first T level thickness  
    106106   INTEGER, PARAMETER ::   jpr_fraqsr = 42            ! fraction of solar net radiation absorbed in the first ocean level 
    107    INTEGER, PARAMETER ::   jprcv      = 42            ! total number of fields received 
     107   INTEGER, PARAMETER ::   jpr_mslp   = 43            ! mean sea level pressure 
     108   INTEGER, PARAMETER ::   jprcv      = 43            ! total number of fields received 
    108109 
    109110   INTEGER, PARAMETER ::   jps_fice   =  1            ! ice fraction sent to the atmosphere 
     
    149150   ! Received from the atmosphere                     ! 
    150151   TYPE(FLD_C) ::   sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_dqnsdt, sn_rcv_qsr, sn_rcv_qns, sn_rcv_emp, sn_rcv_rnf 
    151    TYPE(FLD_C) ::   sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2                         
     152   TYPE(FLD_C) ::   sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mspl                           
    152153   ! Other namelist parameters                        ! 
    153154   INTEGER     ::   nn_cplmodel            ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
     
    161162 
    162163   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   albedo_oce_mix     ! ocean albedo sent to atmosphere (mix clear/overcast sky) 
     164 
     165   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   ssh_ib    ! Inverse barometer now    sea surface height   [m] 
     166   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   ssh_ibb   ! Inverse barometer before sea surface height   [m] 
     167   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   apr       ! atmospheric pressure at kt                 [N/m2] 
     168   REAL(wp) ::   rpref = 101000._wp   ! reference atmospheric pressure[N/m2] 
     169   REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0) 
    163170 
    164171   INTEGER , ALLOCATABLE, SAVE, DIMENSION(    :) ::   nrcvinfo           ! OASIS info argument 
     
    183190      ierr(:) = 0 
    184191      ! 
    185       ALLOCATE( albedo_oce_mix(jpi,jpj), nrcvinfo(jprcv),  STAT=ierr(1) ) 
     192      ALLOCATE( albedo_oce_mix(jpi,jpj), ssh_ib(jpi,jpj), ssh_ibb(jpi,jpj), & 
     193                apr (jpi,jpj), nrcvinfo(jprcv),  STAT=ierr(1) ) 
    186194       
    187195#if ! defined key_lim3 && ! defined key_lim2 && ! defined key_cice 
     
    216224      REAL(wp), POINTER, DIMENSION(:,:) ::   zacs, zaos 
    217225      !! 
    218       NAMELIST/namsbc_cpl/  sn_snd_temp, sn_snd_alb   , sn_snd_thick, sn_snd_crt   , sn_snd_co2,      & 
    219          &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau  , sn_rcv_dqnsdt, sn_rcv_qsr,      & 
    220          &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf  , sn_rcv_cal   , sn_rcv_iceflx,   & 
    221          &                  sn_rcv_co2 , nn_cplmodel  , ln_usecplmask 
     226      NAMELIST/namsbc_cpl/  sn_snd_temp, sn_snd_alb   , sn_snd_thick , sn_snd_crt   , sn_snd_co2,      & 
     227         &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,      & 
     228         &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   , sn_rcv_iceflx,   & 
     229         &                  sn_rcv_co2 , nn_cplmodel  , ln_usecplmask, sn_rcv_mslp 
    222230      !!--------------------------------------------------------------------- 
    223231      ! 
     
    269277         WRITE(numout,*)'                      - mesh          = ', sn_snd_crt%clvgrd 
    270278         WRITE(numout,*)'      oce co2 flux                    = ', TRIM(sn_snd_co2%cldes   ), ' (', TRIM(sn_snd_co2%clcat   ), ')' 
     279         WRITE(numout,*)'      mean sea level pressure         = ', TRIM(sn_rcv_mslp%cldes  ), ' (', TRIM(sn_rcv_mslp%clcat  ), ')' 
    271280         WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel 
    272281         WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask 
     
    470479      !                                                      ! ------------------------- ! 
    471480      srcv(jpr_co2 )%clname = 'O_AtmCO2'   ;   IF( TRIM(sn_rcv_co2%cldes   ) == 'coupled' )    srcv(jpr_co2 )%laction = .TRUE. 
     481 
     482      !                                                      ! ------------------------- ! 
     483      !                                                      ! Mean Sea Level Pressure   ! 
     484      !                                                      ! ------------------------- ! 
     485      srcv(jpr_mslp)%clname = 'O_MSLP'     ;   IF( TRIM(sn_rcv_mslp%cldes  ) == 'coupled' )    srcv(jpr_mslp)%laction = .TRUE. 
     486 
    472487      !                                                      ! ------------------------- ! 
    473488      !                                                      !   topmelt and botmelt     !    
     
    11111126      ENDIF 
    11121127      ! 
     1128      ! 
     1129      !                                                      ! ========================= ! 
     1130      !                                                      ! Mean Sea Level Pressure   !   (taum) 
     1131      !                                                      ! ========================= ! 
     1132      ! 
     1133      IF( srcv(jpr_mslp)%laction ) THEN                    ! UKMO SHELF effect of atmospheric pressure on SSH 
     1134         IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields 
     1135 
     1136         r1_grau = 1.e0 / (grav * rau0)               !* constant for optimization 
     1137         ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau    ! equivalent ssh (inverse barometer) 
     1138         apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1)                        !atmospheric pressure 
     1139 
     1140         IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:)  ! correct this later (read from restart if possible) 
     1141      END IF 
     1142 
    11131143      CALL wrk_dealloc( jpi,jpj, ztx, zty, zmsk, zemp, zqns, zqsr ) 
    11141144      ! 
Note: See TracChangeset for help on using the changeset viewer.