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

Ignore:
Timestamp:
2018-01-18T13:14:23+01:00 (5 years ago)
Author:
jcastill
Message:

Changes to stop reading and using the pressure forcing file when coupling to the atmospheric mean sea level pressure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8917 r9259  
    185185   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   albedo_oce_mix     ! ocean albedo sent to atmosphere (mix clear/overcast sky) 
    186186    
    187    REAL(wp) ::   rpref = 101000._wp   ! reference atmospheric pressure[N/m2]   
    188    REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0 
    189  
    190187   INTEGER , ALLOCATABLE, SAVE, DIMENSION(    :) ::   nrcvinfo           ! OASIS info argument 
    191188 
     
    523520      !                                                      ! Mean Sea Level Pressure   !   
    524521      !                                                      ! ------------------------- !   
    525       srcv(jpr_mslp)%clname = 'O_MSLP'     ;   IF( TRIM(sn_rcv_mslp%cldes  ) == 'coupled' )    srcv(jpr_mslp)%laction = .TRUE.   
     522      srcv(jpr_mslp)%clname = 'O_MSLP' 
     523      IF( TRIM(sn_rcv_mslp%cldes  ) == 'coupled' ) THEN 
     524         srcv(jpr_mslp)%laction = .TRUE. 
     525         cpl_mslp = .TRUE. 
     526      ENDIF 
    526527       
    527528      !                                                      ! ------------------------- ! 
     
    977978      !!---------------------------------------------------------------------- 
    978979      USE sbcflx ,  ONLY : ln_shelf_flx 
     980      USE sbcssm ,  ONLY : sbc_ssm_cpl 
     981      USE lib_fortran     ! distributed memory computing library 
    979982 
    980983      INTEGER, INTENT(in)           ::   kt          ! ocean model time step index 
     
    11751178      !   
    11761179      IF( srcv(jpr_mslp)%laction ) THEN                    ! UKMO SHELF effect of atmospheric pressure on SSH   
    1177           IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields   
     1180         IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields   
    11781181       
    1179           r1_grau = 1.e0 / (grav * rau0)               !* constant for optimization   
    1180           ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau    ! equivalent ssh (inverse barometer)   
    1181           apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure   
     1182         !                                                  !* update the reference atmospheric pressure (if necessary) 
     1183         IF( ln_ref_apr )  rn_pref = glob_sum( frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 
     1184 
     1185         ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau    ! equivalent ssh (inverse barometer)   
     1186         apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure   
     1187         ! 
     1188         CALL iom_put( "ssh_ib", ssh_ib )                                    !* output the inverse barometer ssh 
    11821189       
    1183           IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:)  ! correct this later (read from restart if possible)   
     1190         !                                         ! ---------------------------------------- ! 
     1191         IF( kt == nit000 ) THEN                   !   set the forcing field at nit000 - 1    ! 
     1192            !                                      ! ---------------------------------------- ! 
     1193            !* Restart: read in restart file 
     1194            IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 
     1195               IF(lwp) WRITE(numout,*) 'sbc_cpl:   ssh_ibb read in the restart file' 
     1196               CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb )   ! before inv. barometer ssh 
     1197            ELSE                                         !* no restart: set from nit000 values 
     1198               IF(lwp) WRITE(numout,*) 'sbc_cpl:   ssh_ibb set to nit000 values' 
     1199               ssh_ibb(:,:) = ssh_ib(:,:) 
     1200            ENDIF 
     1201         ENDIF 
     1202         !                                         ! ---------------------------------------- ! 
     1203         IF( lrst_oce ) THEN                       !      Write in the ocean restart file     ! 
     1204            !                                      ! ---------------------------------------- ! 
     1205            IF(lwp) WRITE(numout,*) 
     1206            IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 
     1207            IF(lwp) WRITE(numout,*) '~~~~' 
     1208            CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 
     1209         ENDIF 
     1210 
     1211         ! Update mean ssh 
     1212         CALL sbc_ssm_cpl( kt ) 
    11841213      END IF   
    11851214      !  
Note: See TracChangeset for help on using the changeset viewer.