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 2045 – NEMO

Changeset 2045


Ignore:
Timestamp:
2010-08-12T17:21:43+02:00 (14 years ago)
Author:
smasson
Message:

update DEV_r1879_FCM with the trunk

Location:
branches/DEV_r1879_FCM/NEMOGCM/NEMO
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r2007 r2045  
    101101#endif 
    102102 
    103       Call opa_init  ! Initializations of each fine grid 
    104       Call agrif_opa_init 
    105  
    106103      ! Specific fine grid Initializations 
    107104#if defined key_tradmp || defined key_esopa 
     
    113110      lk_obc = .FALSE. 
    114111#endif 
     112 
     113      Call opa_init  ! Initializations of each fine grid 
     114      Call agrif_opa_init 
     115 
    115116      ! 1. Declaration of the type of variable which have to be interpolated 
    116117      !--------------------------------------------------------------------- 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/DOM/phycst.F90

    r2007 r2045  
    6666   REAL(wp), PUBLIC ::   rcpsn   =   6.9069e+5_wp !: density times specific heat for snow 
    6767   REAL(wp), PUBLIC ::   rcpic   =   1.8837e+6_wp !: volumetric latent heat fusion of sea ice 
     68   REAL(wp), PUBLIC ::   lfus    =   0.3337e+6    !: latent heat of fusion of fresh ice   (J.kg-1)     
    6869   REAL(wp), PUBLIC ::   xlsn    = 110.121e+6_wp  !: volumetric latent heat fusion of snow 
    6970   REAL(wp), PUBLIC ::   xlic    = 300.33e+6_wp   !: volumetric latent heat fusion of ice 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r1613 r2045  
    120120      IF( PRESENT(tab2d_1) )  ztab2d_1(:,:)  = tab2d_1(:,:) 
    121121      IF( PRESENT(tab2d_2) )  ztab2d_2(:,:)  = tab2d_2(:,:) 
    122       IF( PRESENT(tab3d_1) )  ztab3d_1(:,:,:)= tab3d_1(:,:,:) 
    123       IF( PRESENT(tab3d_2) )  ztab3d_2(:,:,:)= tab3d_2(:,:,:) 
     122      IF( PRESENT(tab3d_1) )  ztab3d_1(:,:,1:kdir)= tab3d_1(:,:,:) 
     123      IF( PRESENT(tab3d_2) )  ztab3d_2(:,:,1:kdir)= tab3d_2(:,:,:) 
    124124      IF( PRESENT(mask1)   )  zmask1  (:,:,:)= mask1  (:,:,:) 
    125125      IF( PRESENT(mask2)   )  zmask2  (:,:,:)= mask2  (:,:,:) 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obc_par.F90

    r2036 r2045  
    4747   !! open boundary parameter 
    4848   !!--------------------------------------------------------------------- 
    49    INTEGER ::     &  !: time dimension of the BCS fields on input 
     49   INTEGER, PARAMETER ::     &  !: time dimension of the BCS fields on input 
    5050      jptobc  =         2  
    5151   !! * EAST open boundary 
    52    LOGICAL ::     &  !: 
     52   LOGICAL, PARAMETER ::     &  !: 
    5353      lp_obc_east = .FALSE.     !: to active or not the East open boundary 
    5454     INTEGER   & 
     
    6464 
    6565   !! * WEST open boundary 
    66    LOGICAL ::     &  !: 
     66   LOGICAL, PARAMETER ::     &  !: 
    6767      lp_obc_west = .FALSE.     !: to active or not the West open boundary 
    6868     INTEGER   & 
     
    7878 
    7979   !! * NORTH open boundary 
    80    LOGICAL ::     &  !: 
     80   LOGICAL, PARAMETER ::     &  !: 
    8181      lp_obc_north = .FALSE.    !: to active or not the North open boundary 
    8282     INTEGER   & 
     
    9292 
    9393   !! * SOUTH open boundary 
    94    LOGICAL ::     &  !: 
     94   LOGICAL, PARAMETER ::     &  !: 
    9595      lp_obc_south = .FALSE.    !: to active or not the South open boundary 
    9696     INTEGER   & 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obcdta.F90

    r2007 r2045  
    3030 
    3131  !! * Shared module variables 
     32!$AGRIF_DO_NOT_TREAT 
    3233  REAL(wp),  DIMENSION(2)              ::  zjcnes_obc   !  
    3334  REAL(wp),  DIMENSION(:), ALLOCATABLE :: ztcobc 
     35!$AGRIF_END_DO_NOT_TREAT 
    3436  REAL(wp) :: rdt_obc 
    3537  REAL(wp) :: zjcnes 
     
    469471       ENDIF 
    470472    ELSE 
    471 #if defined key_agrif 
    472        IF ( ASSOCIATED(ztcobc) ) DEALLOCATE ( ztcobc ) 
    473 #else 
    474473       IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 
    475 #endif 
    476474       ALLOCATE (ztcobc(itobc)) 
    477475       DO ji=1,1   ! use a dummy loop to read ztcobc only once 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obcini.F90

    r2007 r2045  
    6262      NAMELIST/namobc/ rn_dpein, rn_dpwin, rn_dpnin, rn_dpsin,       & 
    6363         &             rn_dpeob, rn_dpwob, rn_dpnob, rn_dpsob,       & 
    64          &             rn_volemp, nn_obcdta, cn_obcdta, rn_volemp,   & 
     64         &             rn_volemp, nn_obcdta, cn_obcdta,    & 
    6565         &             ln_obc_clim, ln_vol_cst, ln_obc_fla 
    6666      !!---------------------------------------------------------------------- 
     
    7070 
    7171      ! convert DOCTOR namelist name into the OLD names 
     72      nbobc    = 0 
    7273      nobc_dta = nn_obcdta 
    7374      cffile   = cn_obcdta 
     
    149150      ENDIF 
    150151 
    151       IF( nbobc /= 0 .AND. jperio /= 0 )   & 
     152      IF( nbobc >= 2 .AND. jperio /= 0 )   & 
    152153         &   CALL ctl_stop( ' Cyclic or symmetric, and open boundary condition are not compatible' ) 
    153154 
     
    441442            END DO 
    442443         END IF 
    443  
    444444         IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 
    445445            DO jj = njn0, njn1 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obctra.F90

    r1152 r2045  
    490490                  zin = sign( 1., -1.* z05cx ) 
    491491                  zin = 0.5*( zin + abs(zin) ) 
    492                   ztau = (1.-zin ) + zin * rtaus 
     492                  ztau = (1.-zin ) * rtausin + zin * rtaus 
    493493                  z05cx = z05cx * zin 
     494 
    494495         !... update (ta,sa) with radiative or climatological (t, s) 
    495496                  ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) +             & 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r2007 r2045  
    4040   USE restart         ! 
    4141   USE oce   , ONLY : tn, un, vn 
    42    USE phycst, ONLY : rt0, rcp 
    4342   USE albedo          ! 
    4443   USE in_out_manager  ! I/O manager 
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90

    r2007 r2045  
    8080      ENDIF 
    8181 
    82 #if defined key_dynspg_flt && ! defined key_obc 
     82#if defined key_dynspg_flt  
     83#   if ! defined key_obc 
    8384 
    8485      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system 
     
    9798         END DO 
    9899      END DO 
    99        
    100 #  elif defined key_dynspg_flt && defined key_obc 
    101       IF( Agrif_Root() ) THEN 
    102          DO jj = 2, jpjm1                      ! matrix of free surface elliptic system with open boundaries 
    103             DO ji = 2, jpim1 
    104                zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
    105                !                                    ! south coefficient 
    106                IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 
    107                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 
    108                ELSE 
    109                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
    110                END IF 
    111                gcp(ji,jj,1) = zcoefs 
    112                ! 
    113                !                                    ! west coefficient 
    114                IF( lp_obc_west  .AND. ( ji == niw0p1 ) ) THEN 
    115                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 
    116                ELSE 
    117                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
    118                END IF 
    119                gcp(ji,jj,2) = zcoefw 
    120                ! 
    121                !                                    ! east coefficient 
    122                IF( lp_obc_east  .AND. ( ji == nie0 ) ) THEN 
    123                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 
    124                ELSE 
    125                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
    126                END IF 
    127                gcp(ji,jj,3) = zcoefe 
    128                ! 
    129                !                                    ! north coefficient 
    130                IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 
    131                   zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 
    132                ELSE 
     100#   else 
     101    IF ( Agrif_Root() ) THEN 
     102      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system with open boundaries 
     103         DO ji = 2, jpim1 
     104            zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
     105            !                                    ! south coefficient 
     106            IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 
     107               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 
     108            ELSE 
     109               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
     110            END IF 
     111            gcp(ji,jj,1) = zcoefs 
     112            ! 
     113            !                                    ! west coefficient 
     114            IF( lp_obc_west  .AND. ( ji == niw0p1 ) ) THEN 
     115               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 
     116            ELSE 
     117               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
     118            END IF 
     119            gcp(ji,jj,2) = zcoefw 
     120            ! 
     121            !                                    ! east coefficient 
     122            IF( lp_obc_east  .AND. ( ji == nie0 ) ) THEN 
     123               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 
     124            ELSE 
     125               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
     126            END IF 
     127            gcp(ji,jj,3) = zcoefe 
     128            ! 
     129            !                                    ! north coefficient 
     130            IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 
     131               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 
     132            ELSE 
    133133               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 
    134                END IF 
    135                gcp(ji,jj,4) = zcoefn 
    136                ! 
    137                !                                    ! diagonal coefficient 
    138                gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj)   & 
    139                   &            - zcoefs -zcoefw -zcoefe -zcoefn 
    140             END DO 
    141          END DO 
    142       ENDIF 
     134            END IF 
     135            gcp(ji,jj,4) = zcoefn 
     136            ! 
     137            !                                    ! diagonal coefficient 
     138            gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj)   & 
     139               &            - zcoefs -zcoefw -zcoefe -zcoefn 
     140         END DO 
     141      END DO 
     142    ELSE 
     143      DO jj = 2, jpjm1                      ! matrix of free surface elliptic system 
     144         DO ji = 2, jpim1 
     145            zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
     146            zcoefs = -zcoef * hv(ji  ,jj-1) * e1v(ji  ,jj-1) / e2v(ji  ,jj-1)    ! south coefficient 
     147            zcoefw = -zcoef * hu(ji-1,jj  ) * e2u(ji-1,jj  ) / e1u(ji-1,jj  )    ! west coefficient 
     148            zcoefe = -zcoef * hu(ji  ,jj  ) * e2u(ji  ,jj  ) / e1u(ji  ,jj  )    ! east coefficient 
     149            zcoefn = -zcoef * hv(ji  ,jj  ) * e1v(ji  ,jj  ) / e2v(ji  ,jj  )    ! north coefficient 
     150            gcp(ji,jj,1) = zcoefs 
     151            gcp(ji,jj,2) = zcoefw 
     152            gcp(ji,jj,3) = zcoefe 
     153            gcp(ji,jj,4) = zcoefn 
     154            gcdmat(ji,jj) = e1t(ji,jj) * e2t(ji,jj) * bmask(ji,jj)    &          ! diagonal coefficient 
     155               &          - zcoefs -zcoefw -zcoefe -zcoefn 
     156         END DO 
     157      END DO 
     158    ENDIF 
     159#   endif 
    143160#endif 
    144161 
    145 #if defined key_agrif 
    146       IF( .NOT.AGRIF_ROOT() ) THEN 
     162      IF( .NOT. Agrif_Root() ) THEN 
    147163         ! 
    148164         IF( nbondi == -1 .OR. nbondi == 2 )   bmask(2     ,:     ) = 0.e0 
     
    193209         !  
    194210      ENDIF 
    195 #endif 
    196211 
    197212      ! 2. Boundary conditions  
  • branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r1756 r2045  
    4545    
    4646   ! Module variables 
     47!$AGRIF_DO_NOT_TREAT 
    4748   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_chl   ! structure of input Chl (file informations, fields read) 
    4849   INTEGER ::   nksr   ! levels below which the light cannot penetrate ( depth larger than 391 m) 
    4950   REAL(wp), DIMENSION(3,61) ::   rkrgb   !: tabulated attenuation coefficients for RGB absorption 
     51!$AGRIF_END_DO_NOT_TREAT 
    5052 
    5153   !! * Substitutions 
Note: See TracChangeset for help on using the changeset viewer.