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 550 for trunk/NEMO/OPA_SRC/IOM/iom.F90 – NEMO

Ignore:
Timestamp:
2006-10-25T15:43:58+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_bugfix_065: SM: iom bugfix for agrif + others...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/IOM/iom.F90

    r547 r550  
    1313   !!   iom_close      : close a file or all files opened by iom 
    1414   !!   iom_get        : read a field (interfaced to several routines) 
    15    !!   iom_gettime    : read the time axis cdvar in the file               !!gm : never call ?????? 
     15   !!   iom_gettime    : read the time axis cdvar in the file 
    1616   !!   iom_varid      : get the id of a variable in a file 
    1717   !!   iom_rstput     : write a field in a restart file (interfaced to several routines) 
     
    2525 
    2626   IMPLICIT NONE 
    27    PUBLIC   !   must be PUBLIC to pass the variables through the modules 
    28  
     27   PRIVATE 
     28    
    2929   PUBLIC iom_open, iom_close, iom_varid, iom_get, iom_gettime, iom_rstput 
    30    PRIVATE iom_get_0d, iom_get_1d, iom_get_2d, iom_get_3d, iom_get_123d 
    31    PRIVATE iom_rstput_0d, iom_rstput_1d, iom_rstput_2d, iom_rstput_3d 
    3230 
    3331   INTERFACE iom_get 
    34       MODULE PROCEDURE iom_get_0d, iom_get_1d, iom_get_2d, iom_get_3d 
     32      MODULE PROCEDURE iom_g0d, iom_g1d, iom_g2d, iom_g3d 
    3533   END INTERFACE 
    3634   INTERFACE iom_rstput 
    37       MODULE PROCEDURE iom_rstput_0d, iom_rstput_1d, iom_rstput_2d, iom_rstput_3d 
     35      MODULE PROCEDURE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 
    3836   END INTERFACE 
    3937 
    40    INTEGER, PRIVATE ::   iom_init = 0 !  
     38   INTEGER ::   iom_init = 0 !  
    4139   !!---------------------------------------------------------------------- 
    4240   !!  OPA 9.0 , LOCEAN-IPSL (2006) 
     
    6260      CHARACTER(LEN=100)    ::   cltmpn    ! tempory name to store clname (in writting mode) 
    6361      CHARACTER(LEN=10)     ::   clsuffix  ! ".nc" or ".dimg" 
    64       CHARACTER(LEN=10)     ::   clcpu     ! the cpu number (max jpmax_digits digits) 
     62      CHARACTER(LEN=15)     ::   clcpu     ! the cpu number (max jpmax_digits digits) 
    6563      CHARACTER(LEN=100)    ::   clinfo    ! info character 
    6664      LOGICAL               ::   llok      ! check the existence  
     
    290288   !!                   INTERFACE iom_get 
    291289   !!---------------------------------------------------------------------- 
    292    SUBROUTINE iom_get_0d( kiomid, cdvar, pvar ) 
     290   SUBROUTINE iom_g0d( kiomid, cdvar, pvar ) 
    293291      INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file 
    294292      CHARACTER(len=*), INTENT(in   )                 ::   cdvar     ! Name of the variable 
     
    304302         CASE (jprstdimg)   ;   CALL iom_rstdimg_get( kiomid, idvar, pvar ) 
    305303         CASE DEFAULT     
    306             CALL ctl_stop( 'iom_get_0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     304            CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
    307305         END SELECT 
    308306      END IF 
    309    END SUBROUTINE iom_get_0d 
    310  
    311    SUBROUTINE iom_get_1d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
     307   END SUBROUTINE iom_g0d 
     308 
     309   SUBROUTINE iom_g1d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
    312310      INTEGER         , INTENT(in   )                         ::   kiomid    ! Identifier of the file 
    313311      INTEGER         , INTENT(in   )                         ::   kdom      ! Type of domain to be read 
     
    320318      IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom       , cdvar        , pv_r1d=pvar,   & 
    321319            &                                        ktime=ktime, kstart=kstart, kcount=kcount ) 
    322    END SUBROUTINE iom_get_1d 
    323  
    324    SUBROUTINE iom_get_2d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
     320   END SUBROUTINE iom_g1d 
     321 
     322   SUBROUTINE iom_g2d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
    325323      INTEGER         , INTENT(in   )                           ::   kiomid    ! Identifier of the file 
    326324      INTEGER         , INTENT(in   )                           ::   kdom      ! Type of domain to be read 
     
    333331      IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom       , cdvar        , pv_r2d=pvar,   & 
    334332            &                                        ktime=ktime, kstart=kstart, kcount=kcount ) 
    335    END SUBROUTINE iom_get_2d 
    336  
    337    SUBROUTINE iom_get_3d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
     333   END SUBROUTINE iom_g2d 
     334 
     335   SUBROUTINE iom_g3d( kiomid, kdom, cdvar, pvar, ktime, kstart, kcount ) 
    338336      INTEGER         , INTENT(in   )                             ::   kiomid    ! Identifier of the file 
    339337      INTEGER         , INTENT(in   )                             ::   kdom      ! Type of domain to be read 
     
    346344      IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom       , cdvar        , pv_r3d=pvar,   & 
    347345            &                                        ktime=ktime, kstart=kstart, kcount=kcount ) 
    348    END SUBROUTINE iom_get_3d 
     346   END SUBROUTINE iom_g3d 
    349347   !!---------------------------------------------------------------------- 
    350348 
     
    607605            IF( zofs /= 0. )   pv_r1d(:) = pv_r1d(:) + zofs 
    608606         ELSEIF( PRESENT(pv_r2d) ) THEN 
    609             !CDIR COLLAPSE 
     607!CDIR COLLAPSE 
    610608            IF( zscf /= 1.)   pv_r2d(:,:) = pv_r2d(:,:) * zscf 
    611             !CDIR COLLAPSE 
     609!CDIR COLLAPSE 
    612610            IF( zofs /= 0.)   pv_r2d(:,:) = pv_r2d(:,:) + zofs 
    613611         ELSEIF( PRESENT(pv_r3d) ) THEN 
    614             !CDIR COLLAPSE 
     612!CDIR COLLAPSE 
    615613            IF( zscf /= 1.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf 
    616             !CDIR COLLAPSE 
     614!CDIR COLLAPSE 
    617615            IF( zofs /= 0.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs 
    618616         ENDIF 
     
    672670   !!                   INTERFACE iom_rstput 
    673671   !!---------------------------------------------------------------------- 
    674    SUBROUTINE iom_rstput_0d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
     672   SUBROUTINE iom_rp0d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
    675673      INTEGER         , INTENT(in)                         ::   kt       ! ocean time-step 
    676674      INTEGER         , INTENT(in)                         ::   kwrite   ! writing time-step 
     
    687685         CASE (jprstdimg)   ;   IF( kt == kwrite )    CALL iom_rstdimg_rstput( kiomid, cdvar, pvar ) 
    688686         CASE DEFAULT      
    689             CALL ctl_stop( 'iom_rstput_0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     687            CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
    690688         END SELECT 
    691689      END IF 
    692    END SUBROUTINE iom_rstput_0d 
    693  
    694    SUBROUTINE iom_rstput_1d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
     690   END SUBROUTINE iom_rp0d 
     691 
     692   SUBROUTINE iom_rp1d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
    695693      INTEGER         , INTENT(in)                         ::   kt       ! ocean time-step 
    696694      INTEGER         , INTENT(in)                         ::   kwrite   ! writing time-step 
     
    707705         CASE (jprstdimg)   ;   IF( kt == kwrite )    CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r1d = pvar ) 
    708706         CASE DEFAULT      
    709             CALL ctl_stop( 'iom_rstput_1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     707            CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
    710708         END SELECT 
    711709      END IF 
    712    END SUBROUTINE iom_rstput_1d 
    713  
    714    SUBROUTINE iom_rstput_2d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
     710   END SUBROUTINE iom_rp1d 
     711 
     712   SUBROUTINE iom_rp2d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
    715713      INTEGER         , INTENT(in)                         ::   kt       ! ocean time-step 
    716714      INTEGER         , INTENT(in)                         ::   kwrite   ! writing time-step 
     
    727725         CASE (jprstdimg)   ;   IF( kt == kwrite )   CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r2d = pvar )  
    728726         CASE DEFAULT      
    729             CALL ctl_stop( 'iom_rstput_2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     727            CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
    730728         END SELECT 
    731729      END IF 
    732    END SUBROUTINE iom_rstput_2d 
    733  
    734    SUBROUTINE iom_rstput_3d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
     730   END SUBROUTINE iom_rp2d 
     731 
     732   SUBROUTINE iom_rp3d( kt, kwrite, kiomid, cdvar, pvar, ktype ) 
    735733      INTEGER         , INTENT(in)                         ::   kt       ! ocean time-step 
    736734      INTEGER         , INTENT(in)                         ::   kwrite   ! writing time-step 
     
    747745         CASE (jprstdimg)   ;   IF( kt == kwrite )   CALL iom_rstdimg_rstput( kiomid, cdvar, pv_r3d = pvar ) 
    748746         CASE DEFAULT      
    749             CALL ctl_stop( 'iom_rstput_3d: accepted IO library are only jpioipsl and jprstdimg' ) 
     747            CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' ) 
    750748         END SELECT 
    751749      END IF 
    752    END SUBROUTINE iom_rstput_3d 
     750   END SUBROUTINE iom_rp3d 
    753751   !!---------------------------------------------------------------------- 
    754752 
Note: See TracChangeset for help on using the changeset viewer.