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 239 for trunk/NEMO/OPA_SRC/DOM/domhgr.F90 – NEMO

Ignore:
Timestamp:
2005-03-22T18:55:20+01:00 (19 years ago)
Author:
opalod
Message:

CT : UPDATE172 : remove all direct acces modules and the related cpp key key_fdir

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DOM/domhgr.F90

    r236 r239  
    88   !!   dom_hgr        : initialize the horizontal mesh  
    99   !!   hgr_read       : read "coordinate" NetCDF file  
    10    !!   hgr_read_fdir  : read "coordinate" direct access file  
    1110   !!---------------------------------------------------------------------- 
    1211   !! * Modules used 
     
    130129         IF(lwp) WRITE(numout,*) 
    131130         IF(lwp) WRITE(numout,*) '          curvilinear coordinate on the sphere read in "coordinate" file' 
    132 #if defined key_fdir 
    133          CALL hgr_read_fdir      ! 'key_fdir'       :   direct access file 
    134 #else 
     131 
    135132         CALL hgr_read           ! Defaultl option  :   NetCDF file 
    136 #endif 
    137133 
    138134         !                                                ! ===================== 
     
    644640   END SUBROUTINE hgr_read 
    645641 
    646  
    647    SUBROUTINE hgr_read_fdir 
    648       !!---------------------------------------------------------------------- 
    649       !!                 ***  ROUTINE hgr_read_fdir  *** 
    650       !! 
    651       !!---------------------------------------------------------------------- 
    652       !! * Local declarations 
    653       CHARACTER (len=5) ::   clfield 
    654       CHARACTER(len=21) ::   clname = 'coordinates' 
    655       INTEGER ::   ji, jj         ! dummy loop indices 
    656       INTEGER ::   inumcoo = 11   ! logical unit for coordinate file 
    657       INTEGER ::   ijpi, ijpj     ! temporary integers 
    658       REAL(wp), DIMENSION(jpi,jpj) ::   zdta   ! temporary workspace 
    659       !!---------------------------------------------------------------------- 
    660  
    661  
    662       ! 1. Read of the grid coordinates and scale factors 
    663       ! ------------------------------------------------- 
    664  
    665       IF(lwp) THEN 
    666          WRITE(numout,*) 
    667          WRITE(numout,*) 'hgrcoo : read the horizontal coordinates' 
    668          WRITE(numout,*) '~~~~~~' 
    669          WRITE(numout,*) '         jpiglo jpjglo jpk : ', jpiglo, jpjglo, jpk 
    670       ENDIF 
    671  
    672       ! open the file 
    673           CALL ctlopn( inumcoo, clname, 'OLD', 'UNFORMATTED', 'SEQUENTIAL',   & 
    674                        1      , numout       , lwp  , 1                            ) 
    675  
    676       ! read the file 
    677       READ(inumcoo) ijpi,ijpj 
    678       IF( (ijpi /= jpidta) .OR. (ijpj /= jpjdta) ) THEN 
    679          IF(lwp) THEN 
    680             WRITE(numout,*) 
    681             WRITE(numout,*) '         inconsitency in reading coordinate file, unit=',inumcoo 
    682             WRITE(numout,*) '            jpidta = ',jpidta  ,' jpi  read = ',ijpi 
    683             WRITE(numout,*) '            jpjdta = ',jpjdta  ,' jpj  read = ',ijpj 
    684             WRITE(numout,*) 
    685          ENDIF 
    686          nstop = nstop + 1 
    687       ENDIF 
    688  
    689       READ(inumcoo) clfield, zdta 
    690       IF( clfield /= 'GLAMT' ) THEN 
    691          IF(lwp) THEN 
    692             WRITE(numout,cform_err) 
    693             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GLAMT' 
    694          ENDIF 
    695          nstop = nstop + 1 
    696       ENDIF 
    697       DO jj = 1, nlcj 
    698          DO ji = 1, nlci 
    699             glamt(ji,jj) = zdta(mig(ji),mjg(jj)) 
    700          END DO 
    701       END DO 
    702       READ(inumcoo) clfield, zdta 
    703       IF(clfield /= 'GLAMU') THEN 
    704          IF(lwp) THEN 
    705             WRITE(numout,cform_err) 
    706             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GLAMU' 
    707          ENDIF 
    708          nstop = nstop + 1 
    709       ENDIF 
    710       DO jj = 1, nlcj 
    711          DO ji = 1, nlci 
    712             glamu(ji,jj) = zdta(mig(ji),mjg(jj))                     
    713          END DO 
    714       END DO 
    715       READ(inumcoo) clfield, zdta 
    716       IF(clfield /= 'GLAMV') THEN 
    717          IF(lwp) THEN 
    718             WRITE(numout,cform_err) 
    719             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GLAMV' 
    720          ENDIF 
    721          nstop = nstop + 1 
    722       ENDIF 
    723       DO jj = 1, nlcj 
    724          DO ji = 1, nlci 
    725             glamv(ji,jj) = zdta(mig(ji),mjg(jj))                     
    726          END DO 
    727       END DO 
    728       READ(inumcoo) clfield, zdta 
    729       IF(clfield /= 'GLAMF') THEN 
    730          IF(lwp) THEN 
    731             WRITE(numout,cform_err) 
    732             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GLAMF' 
    733          ENDIF 
    734          nstop = nstop + 1 
    735       ENDIF 
    736       DO jj = 1, nlcj 
    737          DO ji = 1, nlci 
    738             glamf(ji,jj) = zdta(mig(ji),mjg(jj))                     
    739          END DO 
    740       END DO 
    741       READ(inumcoo) clfield, zdta 
    742       IF(clfield /= 'GPHIT') THEN 
    743          IF(lwp) THEN 
    744             WRITE(numout,cform_err) 
    745             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GPHIT' 
    746          ENDIF 
    747          nstop = nstop + 1 
    748       ENDIF 
    749       DO jj = 1, nlcj 
    750          DO ji = 1, nlci 
    751             gphit(ji,jj) = zdta(mig(ji),mjg(jj))                     
    752          END DO 
    753       END DO 
    754       READ(inumcoo) clfield, zdta 
    755       IF(clfield /= 'GPHIU') THEN 
    756          IF(lwp) THEN 
    757             WRITE(numout,cform_err) 
    758             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GPHIU' 
    759          ENDIF 
    760          nstop = nstop + 1 
    761       ENDIF 
    762       DO jj = 1, nlcj 
    763          DO ji = 1, nlci 
    764             gphiu(ji,jj) = zdta(mig(ji),mjg(jj))                     
    765          END DO 
    766       END DO 
    767       READ(inumcoo) clfield, zdta 
    768       IF(clfield /= 'GPHIV') THEN 
    769          IF(lwp) THEN 
    770             WRITE(numout,cform_err) 
    771             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GPHIV' 
    772          ENDIF 
    773          nstop = nstop + 1 
    774       ENDIF 
    775       DO jj = 1, nlcj 
    776          DO ji = 1, nlci 
    777             gphiv(ji,jj) = zdta(mig(ji),mjg(jj))                     
    778          END DO 
    779       END DO 
    780       READ(inumcoo) clfield, zdta 
    781       IF(clfield /= 'GPHIF') THEN 
    782          IF(lwp) THEN 
    783             WRITE(numout,cform_err) 
    784             WRITE(numout,*) 'hgrcoo: bad read',clfield,' GPHIF' 
    785          ENDIF 
    786          nstop = nstop + 1 
    787       ENDIF 
    788       DO jj = 1, nlcj 
    789          DO ji = 1, nlci 
    790             gphif(ji,jj) = zdta(mig(ji),mjg(jj))                     
    791          END DO 
    792       END DO 
    793       READ(inumcoo) clfield, zdta 
    794       IF(clfield /= 'E1T  ') THEN 
    795          IF(lwp) THEN 
    796             WRITE(numout,cform_err) 
    797             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E1T  ' 
    798          ENDIF 
    799          nstop = nstop + 1 
    800       ENDIF 
    801       DO jj = 1, nlcj 
    802          DO ji = 1, nlci 
    803             e1t  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    804          END DO 
    805       END DO 
    806       READ(inumcoo) clfield, zdta 
    807       IF(clfield /= 'E1U  ') THEN 
    808          IF(lwp) THEN 
    809             WRITE(numout,cform_err) 
    810             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E1U  ' 
    811          ENDIF 
    812          nstop = nstop + 1 
    813       ENDIF 
    814       DO jj = 1, nlcj 
    815          DO ji = 1, nlci 
    816             e1u  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    817          END DO 
    818       END DO 
    819       READ(inumcoo) clfield, zdta 
    820       IF(clfield /= 'E1V  ') THEN 
    821          IF(lwp) THEN 
    822             WRITE(numout,cform_err) 
    823             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E1V  ' 
    824          ENDIF 
    825          nstop = nstop + 1 
    826       ENDIF 
    827       DO jj = 1, nlcj 
    828          DO ji = 1, nlci 
    829             e1v  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    830          END DO 
    831       END DO 
    832       READ(inumcoo) clfield, zdta 
    833       IF(clfield /= 'E1F  ') THEN 
    834          IF(lwp) THEN 
    835             WRITE(numout,cform_err) 
    836             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E1F  ' 
    837          ENDIF 
    838          nstop = nstop + 1 
    839       ENDIF 
    840       DO jj = 1, nlcj 
    841          DO ji = 1, nlci 
    842             e1f  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    843          END DO 
    844       END DO 
    845       READ(inumcoo) clfield, zdta 
    846       IF(clfield /= 'E2T  ') THEN 
    847          IF(lwp) THEN 
    848             WRITE(numout,cform_err) 
    849             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E2T  ' 
    850          ENDIF 
    851          nstop = nstop + 1 
    852       ENDIF 
    853       DO jj = 1, nlcj 
    854          DO ji = 1, nlci 
    855             e2t  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    856          END DO 
    857       END DO 
    858       READ(inumcoo) clfield, zdta 
    859       IF(clfield /= 'E2U  ') THEN 
    860          IF(lwp) THEN 
    861             WRITE(numout,cform_err) 
    862             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E2U  ' 
    863          ENDIF 
    864          nstop = nstop + 1 
    865       ENDIF 
    866       DO jj = 1, nlcj 
    867          DO ji = 1, nlci 
    868             e2u  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    869          END DO 
    870       END DO 
    871       READ(inumcoo) clfield, zdta 
    872       IF(clfield /= 'E2V  ') THEN 
    873          IF(lwp) THEN 
    874             WRITE(numout,cform_err) 
    875             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E2V  ' 
    876          ENDIF 
    877          nstop = nstop + 1 
    878       ENDIF 
    879       DO jj = 1, nlcj 
    880          DO ji = 1, nlci 
    881             e2v  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    882          END DO 
    883       END DO 
    884       READ(inumcoo) clfield, zdta 
    885       IF(clfield /= 'E2F  ') THEN 
    886          IF(lwp) THEN 
    887             WRITE(numout,cform_err) 
    888             WRITE(numout,*) 'hgrcoo: bad read',clfield,' E2F  ' 
    889          ENDIF 
    890          nstop = nstop + 1 
    891       ENDIF 
    892       DO jj = 1, nlcj 
    893          DO ji = 1, nlci 
    894             e2f  (ji,jj) = zdta(mig(ji),mjg(jj))                     
    895          END DO 
    896       END DO 
    897  
    898       CLOSE( inumcoo ) 
    899  
    900       ! set extra rows add in mpp to none zero values 
    901       DO jj = nlcj+1, jpj 
    902          DO ji = 1, nlci 
    903             glamt(ji,jj) = glamt(ji,1)   ;   gphit(ji,jj) = gphit(ji,1) 
    904             glamu(ji,jj) = glamu(ji,1)   ;   gphiu(ji,jj) = gphiu(ji,1) 
    905             glamv(ji,jj) = glamv(ji,1)   ;   gphiv(ji,jj) = gphiv(ji,1) 
    906             glamf(ji,jj) = glamf(ji,1)   ;   gphif(ji,jj) = gphif(ji,1) 
    907             e1t  (ji,jj) = e1t  (ji,1)   ;   e2t  (ji,jj) = e2t  (ji,1) 
    908             e1u  (ji,jj) = e1u  (ji,1)   ;   e2u  (ji,jj) = e2u  (ji,1) 
    909             e1v  (ji,jj) = e1v  (ji,1)   ;   e2v  (ji,jj) = e2v  (ji,1) 
    910             e1f  (ji,jj) = e1f  (ji,1)   ;   e2f  (ji,jj) = e2f  (ji,1) 
    911          END DO 
    912       END DO 
    913  
    914       ! set extra columns add in mpp to none zero values 
    915       DO ji = nlci+1, jpi 
    916          glamt(ji,:) = glamt(1,:)   ;   gphit(ji,:) = gphit(1,:) 
    917          glamu(ji,:) = glamu(1,:)   ;   gphiu(ji,:) = gphiu(1,:) 
    918          glamv(ji,:) = glamv(1,:)   ;   gphiv(ji,:) = gphiv(1,:) 
    919          glamf(ji,:) = glamf(1,:)   ;   gphif(ji,:) = gphif(1,:) 
    920          e1t  (ji,:) = e1t  (1,:)   ;   e2t  (ji,:) = e2t  (1,:) 
    921          e1u  (ji,:) = e1u  (1,:)   ;   e2u  (ji,:) = e2u  (1,:) 
    922          e1v  (ji,:) = e1v  (1,:)   ;   e2v  (ji,:) = e2v  (1,:) 
    923          e1f  (ji,:) = e1f  (1,:)   ;   e2f  (ji,:) = e2f  (1,:) 
    924       END DO 
    925  
    926    END SUBROUTINE hgr_read_fdir 
    927  
    928642   !!====================================================================== 
    929643END MODULE domhgr 
Note: See TracChangeset for help on using the changeset viewer.