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 5075 for branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM – NEMO

Ignore:
Timestamp:
2015-02-11T11:50:34+01:00 (9 years ago)
Author:
timgraham
Message:

Upgraded branch to current head of trunk (r5072) so it can be used with the trunk

Location:
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90

    r4772 r5075  
    112112   INTEGER ::   numstp          =   -1      !: logical unit for time step 
    113113   INTEGER ::   numtime         =   -1      !: logical unit for timing 
    114    INTEGER ::   numout          =    6      !: logical unit for output print 
     114   INTEGER ::   numout          =    6      !: logical unit for output print; Set to stdout to ensure any early 
     115                                            !  output can be collected; do not change 
    115116   INTEGER ::   numnam_ref      =   -1      !: logical unit for reference namelist 
    116117   INTEGER ::   numnam_cfg      =   -1      !: logical unit for configuration specific namelist 
    117    INTEGER ::   numond          =    7      !: logical unit for Output Namelist Dynamics 
     118   INTEGER ::   numond          =   -1      !: logical unit for Output Namelist Dynamics 
    118119   INTEGER ::   numnam_ice_ref  =   -1      !: logical unit for ice reference namelist 
    119120   INTEGER ::   numnam_ice_cfg  =   -1      !: logical unit for ice reference namelist 
    120    INTEGER ::   numoni          =    8      !: logical unit for Output Namelist Ice 
     121   INTEGER ::   numoni          =   -1      !: logical unit for Output Namelist Ice 
    121122   INTEGER ::   numevo_ice      =   -1      !: logical unit for ice variables (temp. evolution) 
    122123   INTEGER ::   numsol          =   -1      !: logical unit for solver statistics 
  • branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r4650 r5075  
    3232   USE trc_oce, ONLY :   nn_dttrc        !  !: frequency of step on passive tracers 
    3333   USE icb_oce, ONLY :   nclasses, class_num       !  !: iceberg classes 
     34#if defined key_lim3 
     35   USE par_ice 
     36#elif defined key_lim2 
     37   USE par_ice_2 
     38#endif 
    3439   USE domngb          ! ocean space and time domain 
    3540   USE phycst          ! physical constants 
     
    4954#endif 
    5055   PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 
    51    PUBLIC iom_getatt, iom_context_finalize 
     56   PUBLIC iom_getatt, iom_use, iom_context_finalize 
    5257 
    5358   PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 
     
    143148      CALL iom_set_axis_attr( "nfloat", (/ (REAL(ji,wp), ji=1,nfloat) /) ) 
    144149# endif 
     150#if defined key_lim3 || defined key_lim2 
     151      CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 
     152#endif 
    145153      CALL iom_set_axis_attr( "icbcla", class_num ) 
    146154       
     
    10151023      CHARACTER(LEN=*), INTENT(in) ::   cdname 
    10161024      REAL(wp)        , INTENT(in) ::   pfield0d 
     1025      REAL(wp)        , DIMENSION(jpi,jpj) ::   zz     ! masson 
    10171026#if defined key_iomput 
    1018       CALL xios_send_field(cdname, (/pfield0d/)) 
     1027      zz(:,:)=pfield0d 
     1028      CALL xios_send_field(cdname, zz) 
     1029      !CALL xios_send_field(cdname, (/pfield0d/))  
    10191030#else 
    10201031      IF( .FALSE. )   WRITE(numout,*) cdname, pfield0d   ! useless test to avoid compilation warnings 
     
    11551166   SUBROUTINE iom_context_finalize( cdname ) 
    11561167      CHARACTER(LEN=*), INTENT(in) :: cdname 
    1157       !      
    1158       CALL iom_swap( cdname )   ! swap to cdname context 
    1159       CALL xios_context_finalize() ! finalize the context 
    1160       IF( cdname /= "nemo" ) CALL iom_swap( "nemo" )   ! return back to nemo context 
     1168      ! 
     1169      IF( xios_is_valid_context(cdname) ) THEN 
     1170         CALL iom_swap( cdname )   ! swap to cdname context 
     1171         CALL xios_context_finalize() ! finalize the context 
     1172         IF( cdname /= "nemo" ) CALL iom_swap( "nemo" )   ! return back to nemo context 
     1173      ENDIF 
    11611174      ! 
    11621175   END SUBROUTINE iom_context_finalize 
     
    11891202         CASE('T')   ;   zmask(:,:,:)       = tmask(:,:,:) 
    11901203         CASE('U')   ;   zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:)   ;   CALL lbc_lnk( zmask, 'U', 1. ) 
    1191          CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpi,:)   ;   CALL lbc_lnk( zmask, 'V', 1. ) 
     1204         CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:)   ;   CALL lbc_lnk( zmask, 'V', 1. ) 
    11921205         CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk)   ;   zmask(:,:,1) = tmask(:,:,1) 
    11931206         END SELECT 
     
    12071220      !! 
    12081221      !!---------------------------------------------------------------------- 
    1209       REAL(wp), DIMENSION(1,1) ::   zz = 1. 
     1222      REAL(wp), DIMENSION(1) ::   zz = 1. 
    12101223      !!---------------------------------------------------------------------- 
    12111224      CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea, jbegin=1, ni=1, nj=1) 
    1212       CALL iom_set_domain_attr('scalarpoint', data_dim=1) 
    1213       CALL iom_set_domain_attr('scalarpoint', lonvalue=(/ zz /), latvalue=(/ zz /)) 
     1225      CALL iom_set_domain_attr('scalarpoint', data_dim=2, data_ibegin = 1, data_ni = 1, data_jbegin = 1, data_nj = 1) 
     1226      zz=REAL(narea,wp) 
     1227      CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 
    12141228 
    12151229   END SUBROUTINE set_scalar 
     
    12261240      CHARACTER(len=256)             ::   clsuff                   ! suffix name 
    12271241      CHARACTER(len=1)               ::   cl1                      ! 1 character 
    1228       CHARACTER(len=2)               ::   cl2                      ! 1 character 
     1242      CHARACTER(len=2)               ::   cl2                      ! 2 characters 
     1243      CHARACTER(len=3)               ::   cl3                      ! 3 characters 
    12291244      INTEGER                        ::   ji, jg                   ! loop counters 
    12301245      INTEGER                        ::   ix, iy                   ! i-,j- index 
     
    12521267         WRITE(cl2,'(i2.2)') ji  
    12531268         CALL iom_update_file_name('file'//cl2) 
     1269      END DO 
     1270      DO ji = 1, 999 
     1271         WRITE(cl3,'(i3.3)') ji  
     1272         CALL iom_update_file_name('file'//cl3) 
    12541273      END DO 
    12551274 
     
    14991518 
    15001519#endif 
     1520 
     1521   LOGICAL FUNCTION iom_use( cdname ) 
     1522      CHARACTER(LEN=*), INTENT(in) ::   cdname 
     1523#if defined key_iomput 
     1524      iom_use = xios_field_is_active( cdname ) 
     1525#else 
     1526      iom_use = .FALSE. 
     1527#endif 
     1528   END FUNCTION iom_use 
    15011529    
    15021530   !!====================================================================== 
  • branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r4292 r5075  
    217217         CALL iom_nf90_check(NF90_Inquire_Variable(if90id, ivarid, dimids = idimid(1:i_nvd)), clinfo)   ! dimensions ids 
    218218         iom_file(kiomid)%luld(kiv) = .FALSE.   ! default value 
    219          iom_file(kiomid)%dimsz(:,kiv) = 0   ! reset dimsz in case previously used 
     219         iom_file(kiomid)%dimsz(:,kiv) = 0      ! reset dimsz in case previously used 
    220220         DO ji = 1, i_nvd                       ! dimensions size 
    221221            CALL iom_nf90_check(NF90_Inquire_Dimension(if90id, idimid(ji), len = iom_file(kiomid)%dimsz(ji,kiv)), clinfo)    
  • branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r4520 r5075  
    164164         ENDIF 
    165165 
    166          IF ( clinfo3 == 'tra' )  THEN 
    167              zvctl1 = t_ctll(jn) 
    168              zvctl2 = s_ctll(jn) 
    169          ELSEIF ( clinfo3 == 'dyn' )   THEN 
    170              zvctl1 = u_ctll(jn) 
    171              zvctl2 = v_ctll(jn) 
     166         IF( PRESENT(clinfo3)) THEN 
     167            IF ( clinfo3 == 'tra' )  THEN 
     168               zvctl1 = t_ctll(jn) 
     169               zvctl2 = s_ctll(jn) 
     170            ELSEIF ( clinfo3 == 'dyn' )   THEN 
     171               zvctl1 = u_ctll(jn) 
     172               zvctl2 = v_ctll(jn) 
     173            ENDIF 
    172174         ENDIF 
    173175 
  • branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r4334 r5075  
    2222   USE iom             ! I/O module 
    2323   USE eosbn2          ! equation of state            (eos bn2 routine) 
    24    USE trdmld_oce      ! ocean active mixed layer tracers trends variables 
     24   USE trdmxl_oce      ! ocean active mixed layer tracers trends variables 
    2525   USE divcur          ! hor. divergence and curl      (div & cur routines) 
    2626   USE sbc_ice, ONLY : lk_lim3 
     
    120120                     CALL iom_rstput( kt, nitrst, numrow, 'hdivb'  , hdivb     ) 
    121121                     CALL iom_rstput( kt, nitrst, numrow, 'sshb'   , sshb      ) 
     122                     ! 
     123      IF( lk_lim3 )  CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 
    122124                     ! 
    123125                     CALL iom_rstput( kt, nitrst, numrow, 'un'     , un        )     ! now fields 
     
    133135#endif 
    134136                  IF( lk_lim3 ) THEN 
    135                      CALL iom_rstput( kt, nitrst, numrow, 'iatte'  , iatte     ) !clem modif 
    136                      CALL iom_rstput( kt, nitrst, numrow, 'oatte'  , oatte     ) !clem modif 
     137                     CALL iom_rstput( kt, nitrst, numrow, 'fraqsr_1lev'  , fraqsr_1lev     ) !clem modif 
    137138                  ENDIF 
    138139      IF( kt == nitrst ) THEN 
    139140         CALL iom_close( numrow )     ! close the restart file (only at last time step) 
    140          IF( .NOT. lk_trdmld )   lrst_oce = .FALSE. 
     141!!gm         IF( .NOT. lk_trdmld )   lrst_oce = .FALSE. 
     142!!gm  not sure what to do here   ===>>>  ask to Sebastian 
     143         lrst_oce = .FALSE. 
    141144      ENDIF 
    142145      ! 
    143146   END SUBROUTINE rst_write 
     147 
    144148 
    145149   SUBROUTINE rst_read_open 
     
    155159      LOGICAL  ::   llok 
    156160      !!---------------------------------------------------------------------- 
    157  
    158       IF( numror .LE. 0 ) THEN 
     161      ! 
     162      IF( numror <= 0 ) THEN 
    159163         IF(lwp) THEN                                             ! Contol prints 
    160164            WRITE(numout,*) 
     
    210214         CALL iom_get( numror, jpdom_autoglo, 'hdivb'  , hdivb   ) 
    211215         CALL iom_get( numror, jpdom_autoglo, 'sshb'   , sshb    ) 
     216         IF( lk_lim3 )   CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) ) 
    212217      ELSE 
    213218         neuler = 0 
     
    245250         hdivb(:,:,:)   = hdivn(:,:,:) 
    246251         sshb (:,:)     = sshn (:,:) 
    247       ENDIF 
    248       ! 
    249       IF( lk_lim3 ) THEN  
    250          CALL iom_get( numror, jpdom_autoglo, 'iatte' , iatte ) ! clem modif 
    251          CALL iom_get( numror, jpdom_autoglo, 'oatte' , oatte ) ! clem modif 
     252 
     253         IF( lk_vvl ) THEN 
     254            DO jk = 1, jpk 
     255               fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 
     256            END DO 
     257         ENDIF 
     258 
     259         IF( lk_lim3 .AND. .NOT. lk_vvl ) THEN 
     260            DO jk = 1, jpk 
     261               fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 
     262            END DO 
     263         ENDIF 
     264 
     265      ENDIF 
     266      ! 
     267      IF( lk_lim3 ) THEN 
     268         CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev' , fraqsr_1lev ) 
    252269      ENDIF 
    253270      ! 
Note: See TracChangeset for help on using the changeset viewer.