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 7646 for trunk/NEMOGCM/NEMO/OPA_SRC/C1D – NEMO

Ignore:
Timestamp:
2017-02-06T10:25:03+01:00 (7 years ago)
Author:
timgraham
Message:

Merge of dev_merge_2016 into trunk. UPDATE TO ARCHFILES NEEDED for XIOS2.
LIM_SRC_s/limrhg.F90 to follow in next commit due to change of kind (I'm unable to do it in this commit).
Merged using the following steps:

1) svn merge --reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk .
2) Resolve minor conflicts in sette.sh and namelist_cfg for ORCA2LIM3 (due to a change in trunk after branch was created)
3) svn commit
4) svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
5) svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2016/dev_merge_2016 .
6) At this stage I checked out a clean copy of the branch to compare against what is about to be committed to the trunk.
6) svn commit #Commit code to the trunk

In this commit I have also reverted a change to Fcheck_archfile.sh which was causing problems on the Paris machine.

Location:
trunk/NEMOGCM/NEMO/OPA_SRC/C1D
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90

    r6140 r7646  
    2424 
    2525   PUBLIC   dom_c1d   ! called in domcfg.F90 
     26 
     27   INTEGER ::   jpizoom = 1      !: left bottom (i,j) indices of the zoom 
     28   INTEGER ::   jpjzoom = 1      !: in data domain indices 
    2629 
    2730   !!---------------------------------------------------------------------- 
     
    8285      !  mesh, only glamt and gphit   ! 
    8386      ! ============================= ! 
    84  
     87      ! 
    8588      SELECT CASE( jphgr_msh )   ! type of horizontal mesh 
    86  
     89      ! 
    8790      CASE ( 0 )                 !  curvilinear coordinate on the sphere read in coordinate.nc file 
    88  
     91         ! 
    8992         CALL iom_open( 'coordinates', inum ) 
    9093         CALL iom_get( inum, jpdom_unknown, 'glamt', glamdta ) ! mig, mjg undefined at this point 
    9194         CALL iom_get( inum, jpdom_unknown, 'gphit', gphidta ) ! so use jpdom_unknown not jpdom_data 
    9295         CALL iom_close ( inum ) 
    93  
     96         ! 
    9497      CASE ( 1 )                 ! geographical mesh on the sphere with regular grid-spacing 
    95  
     98         ! 
    9699         DO jj = 1, jpjdta 
    97100            DO ji = 1, jpidta 
    98101               zti = FLOAT( ji - 1 + nimpp - 1 ) 
    99102               ztj = FLOAT( jj - 1 + njmpp - 1 ) 
    100  
     103               ! 
    101104               glamdta(ji,jj) = ppglam0 + ppe1_deg * zti 
    102105               gphidta(ji,jj) = ppgphi0 + ppe2_deg * ztj 
    103106            END DO 
    104107         END DO 
    105  
     108         ! 
    106109      CASE ( 2:3 )               ! f- or beta-plane with regular grid-spacing 
    107           
     110         ! 
    108111         glam0 = 0.e0 
    109112         gphi0 = - ppe2_m * 1.e-3 
    110  
     113         ! 
    111114         DO jj = 1, jpjdta 
    112115            DO ji = 1, jpidta 
     
    115118            END DO 
    116119         END DO 
    117  
     120         ! 
    118121      CASE ( 4 )                 ! geographical mesh on the sphere, isotropic MERCATOR type 
    119  
     122         ! 
    120123         IF( ppgphi0 == -90 )   CALL ctl_stop( ' Mercator grid cannot start at south pole !!!! ' ) 
    121  
     124         ! 
    122125         zarg = rpi / 4. - rpi / 180. * ppgphi0 / 2. 
    123126         ijeq = ABS( 180. / rpi * LOG( COS( zarg ) / SIN( zarg ) ) / ppe1_deg ) 
    124127         IF( ppgphi0 > 0 )   ijeq = -ijeq 
    125  
     128         ! 
    126129         DO jj = 1, jpjdta 
    127130            DO ji = 1, jpidta 
    128131               zti = FLOAT( ji - 1    + nimpp - 1 ) 
    129132               ztj = FLOAT( jj - ijeq + njmpp - 1 ) 
    130  
     133               ! 
    131134               glamdta(ji,jj) = ppglam0 + ppe1_deg * zti 
    132135               gphidta(ji,jj) = 1. / rad * ASIN ( TANH( ppe1_deg * rad * ztj ) ) 
    133136            END DO 
    134137         END DO 
    135  
     138         ! 
    136139      CASE ( 5 )                 ! beta-plane with regular grid-spacing and rotated domain (GYRE configuration) 
    137     
     140         ! 
    138141         zlam1 = -85 
    139142         zphi1 = 29 
    140          ze1 = 106000. / FLOAT(jp_cfg) 
    141   
     143         ze1 = 106000. / REAL( nn_cfg , wp ) 
     144         ! 
    142145         zsin_alpha = - SQRT( 2. ) / 2. 
    143146         zcos_alpha =   SQRT( 2. ) / 2. 
    144147         ze1deg = ze1 / (ra * rad) 
    145  
     148         ! 
    146149         glam0 = zlam1 + zcos_alpha * ze1deg * FLOAT( jpjdta-2 ) ! Force global 
    147150         gphi0 = zphi1 + zsin_alpha * ze1deg * FLOAT( jpjdta-2 ) 
    148  
     151         ! 
    149152         DO jj = 1, jpjdta 
    150153            DO ji = 1, jpidta 
     
    156159            END DO 
    157160         END DO 
    158  
     161         ! 
    159162      CASE DEFAULT 
    160  
     163         ! 
    161164         WRITE(ctmp1,*) '          bad flag value for jphgr_msh = ', jphgr_msh 
    162165         CALL ctl_stop( ctmp1 ) 
    163  
     166         ! 
    164167      END SELECT 
    165168 
  • trunk/NEMOGCM/NEMO/OPA_SRC/C1D/dyncor_c1d.F90

    r6140 r7646  
    4949      IF(lwp) WRITE(numout,*) '~~~~~~~' 
    5050 
    51       SELECT CASE( jphgr_msh )   ! type of horizontal mesh 
    52       ! 
    53       CASE ( 0, 1, 4 )               ! mesh on the sphere 
    54          ff(:,:) = 2. * omega * SIN( rad * gphit(:,:) )  
    55          ! 
    56       CASE ( 2 )                     ! f-plane at ppgphi0  
    57          ff(:,:) = 2. * omega * SIN( rad * ppgphi0 ) 
    58          IF(lwp) WRITE(numout,*) '          f-plane: Coriolis parameter = constant = ', ff(1,1) 
    59          ! 
    60       CASE ( 3 )                     ! beta-plane 
    61          zbeta   = 2. * omega * COS( rad * ppgphi0 ) / ra                     ! beta at latitude ppgphi0 
    62          zphi0   = ppgphi0 - FLOAT( jpjglo/2) * ppe2_m *1.e-3  / ( ra * rad ) ! latitude of the first row F-points 
    63          zf0     = 2. * omega * SIN( rad * zphi0 )                            ! compute f0 1st point south 
    64          ff(:,:) = ( zf0  + zbeta * gphit(:,:) * 1.e+3 )                      ! f = f0 +beta* y ( y=0 at south) 
    65          IF(lwp) WRITE(numout,*) '          Beta-plane: Beta parameter = constant = ', ff(1,1) 
    66          IF(lwp) WRITE(numout,*) '                      Coriolis parameter varies from ', ff(1,1),' to ', ff(1,jpj) 
    67          ! 
    68       CASE ( 5 )                     ! beta-plane and rotated domain 
    69          zbeta = 2. * omega * COS( rad * ppgphi0 ) / ra                     ! beta at latitude ppgphi0 
    70          zphi0 = 15.e0                                                      ! latitude of the first row F-points 
    71          zf0   = 2. * omega * SIN( rad * zphi0 )                            ! compute f0 1st point south 
    72          ff(:,:) = ( zf0 + zbeta * ABS( gphit(:,:) - zphi0 ) * rad * ra )   ! f = f0 +beta* y ( y=0 at south) 
    73          IF(lwp) WRITE(numout,*) '          Beta-plane: Beta parameter = constant = ', ff(1,1) 
    74          IF(lwp) WRITE(numout,*) '                      Coriolis parameter varies from ', ff(1,1),' to ', ff(1,jpj) 
    75          ! 
    76       END SELECT 
    7751      ! 
    7852   END SUBROUTINE cor_c1d 
     
    10074         DO jj = 2, jpjm1 
    10175            DO ji = fs_2, fs_jpim1   ! vector opt. 
    102                ua(ji,jj,jk) = ua(ji,jj,jk) + ff(ji,jj) * vn(ji,jj,jk) 
    103                va(ji,jj,jk) = va(ji,jj,jk) - ff(ji,jj) * un(ji,jj,jk) 
     76               ua(ji,jj,jk) = ua(ji,jj,jk) + ff_t(ji,jj) * vn(ji,jj,jk) 
     77               va(ji,jj,jk) = va(ji,jj,jk) - ff_t(ji,jj) * un(ji,jj,jk) 
    10478            END DO 
    10579         END DO 
Note: See TracChangeset for help on using the changeset viewer.