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 12461 for NEMO/branches/UKMO/r12083_cpl-pressure/src/OCE/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2020-02-25T18:24:46+01:00 (4 years ago)
Author:
jcastill
Message:

Changes as the original branch updated to vn4.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/r12083_cpl-pressure/src/OCE/SBC/sbccpl.F90

    r11715 r12461  
    191191 
    192192   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   alb_oce_mix    ! ocean albedo sent to atmosphere (mix clear/overcast sky) 
    193  
    194    REAL(wp) ::   rpref = 101000._wp   ! reference atmospheric pressure[N/m2]  
    195    REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0)  
    196193 
    197194   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:) ::   nrcvinfo           ! OASIS info argument 
     
    550547      !                                                      ! Mean Sea Level Pressure   !  
    551548      !                                                      ! ------------------------- !  
    552       srcv(jpr_mslp)%clname = 'O_MSLP'     ;   IF( TRIM(sn_rcv_mslp%cldes  ) == 'coupled' )    srcv(jpr_mslp)%laction = .TRUE.  
     549      srcv(jpr_mslp)%clname = 'O_MSLP'   
     550      IF( TRIM(sn_rcv_mslp%cldes  ) == 'coupled' ) THEN   
     551         srcv(jpr_mslp)%laction = .TRUE.   
     552         cpl_mslp = .TRUE.   
     553      ENDIF 
    553554      ! 
    554555      !                                                      ! ------------------------- ! 
     
    10951096      !!---------------------------------------------------------------------- 
    10961097      USE zdf_oce,  ONLY :   ln_zdfswm 
     1098      USE sbcssm ,  ONLY :   sbc_ssm_cpl   
     1099      USE lib_fortran     ! distributed memory computing library 
    10971100      ! 
    10981101      INTEGER, INTENT(in) ::   kt          ! ocean model time step index 
     
    12591262      !                                                      ! ========================= !  
    12601263      IF( srcv(jpr_mslp)%laction ) THEN                    ! UKMO SHELF effect of atmospheric pressure on SSH  
    1261           IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields  
    1262  
    1263           r1_grau = 1.e0 / (grav * rau0)               !* constant for optimization  
    1264           ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau    ! equivalent ssh (inverse barometer)  
    1265           apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1)                         !atmospheric pressure  
     1264          IF( ln_apr_dyn ) THEN  
     1265             IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields 
    12661266     
    1267           IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:)  ! correct this later (read from restart if possible)  
     1267             !                                                  !* update the reference atmospheric pressure (if necessary)   
     1268             IF( ln_ref_apr )  rn_pref = glob_sum( 'sbccpl', frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea  
     1269      
     1270             ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau  ! equivalent ssh (inverse barometer)   
     1271             apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1)                        !atmospheric pressure   
     1272             !  
     1273             CALL iom_put( "ssh_ib", ssh_ib )                                  !* output the inverse barometer ssh  
     1274             !                                         ! ---------------------------------------- !   
     1275             IF( kt == nit000 ) THEN                   !   set the forcing field at nit000 - 1    !   
     1276                !                                      ! ---------------------------------------- !   
     1277                !* Restart: read in restart file   
     1278                IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN   
     1279                   IF(lwp) WRITE(numout,*) 'sbc_cpl:   ssh_ibb read in the restart file'   
     1280                   CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb )   ! before inv. barometer ssh   
     1281                ELSE                                         !* no restart: set from nit000 values   
     1282                   IF(lwp) WRITE(numout,*) 'sbc_cpl:   ssh_ibb set to nit000 values'   
     1283                   ssh_ibb(:,:) = ssh_ib(:,:)   
     1284                ENDIF   
     1285             ENDIF   
     1286             !                                         ! ---------------------------------------- !   
     1287             IF( lrst_oce ) THEN                       ! Write in the ocean restart file     !   
     1288                !                                      ! ---------------------------------------- !   
     1289                IF(lwp) WRITE(numout,*)   
     1290                IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp   
     1291                IF(lwp) WRITE(numout,*) '~~~~'   
     1292                CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib )   
     1293             ENDIF   
     1294          ENDIF  
     1295       
     1296          ! Update mean ssh   
     1297          IF( nn_components /= jp_iam_sas ) CALL sbc_ssm_cpl( kt ) 
    12681298      END IF  
    12691299      ! 
Note: See TracChangeset for help on using the changeset viewer.