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 11837 for NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/ICE/icedyn_adv_pra.F90 – NEMO

Ignore:
Timestamp:
2019-10-30T15:10:36+01:00 (4 years ago)
Author:
andmirek
Message:

ticket #2323 read SI3 restart with XIOS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11756_SI3restart_XIOS/src/ICE/icedyn_adv_pra.F90

    r11732 r11837  
    706706            ! 
    707707            !                                                        ! ice thickness 
    708             CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice  ) 
    709             CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice  ) 
    710             CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice ) 
    711             CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice ) 
    712             CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice ) 
     708            IF(lrxios) CALL iom_swap( TRIM(crixios_context) ) 
     709            ! 
     710            CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice, ldxios = lrxios  ) 
     711            CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice, ldxios = lrxios  ) 
     712            CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice, ldxios = lrxios ) 
     713            CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice, ldxios = lrxios ) 
     714            CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice, ldxios = lrxios ) 
    713715            !                                                        ! snow thickness 
    714             CALL iom_get( numrir, jpdom_autoglo, 'sxsn'  , sxsn   ) 
    715             CALL iom_get( numrir, jpdom_autoglo, 'sysn'  , sysn   ) 
    716             CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn  ) 
    717             CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn  ) 
    718             CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn  ) 
     716            CALL iom_get( numrir, jpdom_autoglo, 'sxsn'  , sxsn, ldxios = lrxios   ) 
     717            CALL iom_get( numrir, jpdom_autoglo, 'sysn'  , sysn, ldxios = lrxios   ) 
     718            CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn, ldxios = lrxios  ) 
     719            CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn, ldxios = lrxios  ) 
     720            CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn, ldxios = lrxios  ) 
    719721            !                                                        ! ice concentration 
    720             CALL iom_get( numrir, jpdom_autoglo, 'sxa'   , sxa    ) 
    721             CALL iom_get( numrir, jpdom_autoglo, 'sya'   , sya    ) 
    722             CALL iom_get( numrir, jpdom_autoglo, 'sxxa'  , sxxa   ) 
    723             CALL iom_get( numrir, jpdom_autoglo, 'syya'  , syya   ) 
    724             CALL iom_get( numrir, jpdom_autoglo, 'sxya'  , sxya   ) 
     722            CALL iom_get( numrir, jpdom_autoglo, 'sxa'   , sxa, ldxios = lrxios    ) 
     723            CALL iom_get( numrir, jpdom_autoglo, 'sya'   , sya, ldxios = lrxios    ) 
     724            CALL iom_get( numrir, jpdom_autoglo, 'sxxa'  , sxxa, ldxios = lrxios   ) 
     725            CALL iom_get( numrir, jpdom_autoglo, 'syya'  , syya, ldxios = lrxios   ) 
     726            CALL iom_get( numrir, jpdom_autoglo, 'sxya'  , sxya, ldxios = lrxios   ) 
    725727            !                                                        ! ice salinity 
    726             CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal  ) 
    727             CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal  ) 
    728             CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal ) 
    729             CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal ) 
    730             CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal ) 
     728            CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal, ldxios = lrxios  ) 
     729            CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal, ldxios = lrxios  ) 
     730            CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal, ldxios = lrxios ) 
     731            CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal, ldxios = lrxios ) 
     732            CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal, ldxios = lrxios ) 
    731733            !                                                        ! ice age 
    732             CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage  ) 
    733             CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage  ) 
    734             CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage ) 
    735             CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage ) 
    736             CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage ) 
     734            CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage, ldxios = lrxios  ) 
     735            CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage, ldxios = lrxios  ) 
     736            CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage, ldxios = lrxios ) 
     737            CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage, ldxios = lrxios ) 
     738            CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage, ldxios = lrxios ) 
    737739            !                                                        ! snow layers heat content 
    738             DO jk = 1, nlay_s 
    739                WRITE(zchar1,'(I2.2)') jk 
    740                znam = 'sxc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxc0 (:,:,jk,:) = z3d(:,:,:) 
    741                znam = 'syc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syc0 (:,:,jk,:) = z3d(:,:,:) 
    742                znam = 'sxxc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxxc0(:,:,jk,:) = z3d(:,:,:) 
    743                znam = 'syyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syyc0(:,:,jk,:) = z3d(:,:,:) 
    744                znam = 'sxyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxyc0(:,:,jk,:) = z3d(:,:,:) 
    745             END DO 
    746             !                                                        ! ice layers heat content 
    747             DO jk = 1, nlay_i 
    748                WRITE(zchar1,'(I2.2)') jk 
    749                znam = 'sxe'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxe (:,:,jk,:) = z3d(:,:,:) 
    750                znam = 'sye'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sye (:,:,jk,:) = z3d(:,:,:) 
    751                znam = 'sxxe'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxxe(:,:,jk,:) = z3d(:,:,:) 
    752                znam = 'syye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syye(:,:,jk,:) = z3d(:,:,:) 
    753                znam = 'sxye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxye(:,:,jk,:) = z3d(:,:,:) 
    754             END DO 
     740            IF(lrsi3_nemo) THEN 
     741               DO jk = 1, nlay_s 
     742                  WRITE(zchar1,'(I2.2)') jk 
     743                  znam = 'sxc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     744                  sxc0 (:,:,jk,:) = z3d(:,:,:) 
     745                  znam = 'syc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     746                  syc0 (:,:,jk,:) = z3d(:,:,:) 
     747                  znam = 'sxxc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     748                  sxxc0(:,:,jk,:) = z3d(:,:,:) 
     749                  znam = 'syyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     750                  syyc0(:,:,jk,:) = z3d(:,:,:) 
     751                  znam = 'sxyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     752                  sxyc0(:,:,jk,:) = z3d(:,:,:) 
     753               END DO 
     754               !                                                        ! ice layers heat content 
     755               DO jk = 1, nlay_i 
     756                  WRITE(zchar1,'(I2.2)') jk 
     757                  znam = 'sxe'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     758                  sxe (:,:,jk,:) = z3d(:,:,:) 
     759                  znam = 'sye'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     760                  sye (:,:,jk,:) = z3d(:,:,:) 
     761                  znam = 'sxxe'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     762                  sxxe(:,:,jk,:) = z3d(:,:,:) 
     763                  znam = 'syye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     764                  syye(:,:,jk,:) = z3d(:,:,:) 
     765                  znam = 'sxye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     766                  sxye(:,:,jk,:) = z3d(:,:,:) 
     767               END DO 
     768            ELSE 
     769               CALL iom_get( numrir, jpdom_autoglo, "sxc0", sxc0, ldxios = lrxios ) 
     770               CALL iom_get( numrir, jpdom_autoglo, "syc0", syc0, ldxios = lrxios ) 
     771               CALL iom_get( numrir, jpdom_autoglo, "sxxc0", sxxc0, ldxios = lrxios ) 
     772               CALL iom_get( numrir, jpdom_autoglo, "syyc0", syyc0, ldxios = lrxios ) 
     773               CALL iom_get( numrir, jpdom_autoglo, "sxyc0", sxyc0, ldxios = lrxios ) 
     774               CALL iom_get( numrir, jpdom_autoglo, "sxe", sxc0, ldxios = lrxios ) 
     775               CALL iom_get( numrir, jpdom_autoglo, "sye", syc0, ldxios = lrxios ) 
     776               CALL iom_get( numrir, jpdom_autoglo, "sxxe", sxxc0, ldxios = lrxios ) 
     777               CALL iom_get( numrir, jpdom_autoglo, "syye", syyc0, ldxios = lrxios ) 
     778               CALL iom_get( numrir, jpdom_autoglo, "sxye", sxyc0, ldxios = lrxios ) 
     779            ENDIF 
    755780            ! 
    756781            IF( ln_pnd_H12 ) THEN                                    ! melt pond fraction 
    757                CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap  ) 
    758                CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap  ) 
    759                CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 
    760                CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 
    761                CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 
     782               CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap, ldxios = lrxios  ) 
     783               CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap, ldxios = lrxios  ) 
     784               CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap, ldxios = lrxios ) 
     785               CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap, ldxios = lrxios ) 
     786               CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap, ldxios = lrxios ) 
    762787               !                                                     ! melt pond volume 
    763                CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp  ) 
    764                CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp  ) 
    765                CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 
    766                CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 
    767                CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 
     788               CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp, ldxios = lrxios  ) 
     789               CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp, ldxios = lrxios  ) 
     790               CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp, ldxios = lrxios ) 
     791               CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp, ldxios = lrxios ) 
     792               CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp, ldxios = lrxios ) 
    768793            ENDIF 
     794            ! 
     795            IF(lrxios) CALL iom_swap( TRIM(cxios_context) ) 
    769796            ! 
    770797         ELSE                                   !**  start rheology from rest  **! 
Note: See TracChangeset for help on using the changeset viewer.