HCJung-jbnu / ROMS-TOPAZ

ROMS + TOPAZ coupling
0 stars 0 forks source link

ROMS-TOPAZ restart write 설정 #28

Closed HCJung-jbnu closed 1 year ago

HCJung-jbnu commented 1 year ago

if defined PIO_LIB && defined DISTRIBUTE

        allocate ( S(i,ng)%pioVar(NV) )

if defined TOPAZ

!!add TOPAZ, hcjung 20230810 allocate ( S(i,ng)%pioTrc(MT+6+11) ) !!+ co2/o2 flux coef. var & 3d diags var

else

        allocate ( S(i,ng)%pioTrc(MT) )

endif

endif

.....

HCJung-jbnu commented 1 year ago

! ! Define CO2/O2 FLUX COEF. ! DO itrc=1,6 Vinfo( 1)=Vname(1,iDbio2(itrc)) Vinfo( 2)=Vname(2,iDbio2(itrc)) Vinfo( 3)=Vname(3,iDbio2(itrc)) Vinfo(14)=Vname(4,iDbio2(itrc)) Vinfo(16)=Vname(1,idtime)

if defined WRITE_WATER && defined MASKING

if defined PERFECT_RESTART

      Vinfo(24)='_FillValue'
      Aval(6)=spval

else

      Vinfo(20)='mask_rho'

endif

endif

      Vinfo(21)=Vname(6,iDbio2(itrc))
      Vinfo(22)='coordinates'
      Aval(5)=REAL(r2dvar,r8)
   status=def_var(ng, iNLM, RST(ng)%ncid,                          &
 &                RST(ng)%Tid(NT(ng)+NDbio3d+itrc),                &
 &                NF_FRST, nvd3, t2dgrd_tp, Aval, Vinfo, ncname)
      IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN
    END DO

endif

......

ifdef TOPAZ

!! add TOPAZ, hcjung 20230810 DO itrc=1,NDbio3d IF (TRIM(var_name(i)).eq.TRIM(Vname(1,iDbio3(itrc)))) THEN got_var(iDbio2(itrc))=.TRUE. RST(ng)%Tid(NT(ng)+itrc)=var_id(i) END IF END DO

      DO itrc=1,6
        IF (TRIM(var_name(i)).eq.TRIM(Vname(1,iDbio2(itrc)))) THEN
          got_var(iDbio2(itrc))=.TRUE.
          RST(ng)%Tid(NT(ng)+NDbio3d+itrc)=var_id(i)
        END IF
      END DO

endif

.....

ifdef TOPAZ

!!add TOPAZ, hcjung DO itrc=1,NDbio3d IF (.not.got_var(iDbio3(itrc))) THEN IF (Master) WRITE (stdout,60) TRIM(Vname(1,iDbio3(itrc))), & & TRIM(ncname) exit_flag=3 RETURN END IF END DO

    DO itrc=1,6
      IF (.not.got_var(iDbio2(itrc))) THEN
        IF (Master) WRITE (stdout,60) TRIM(Vname(1,iDbio2(itrc))),  &
 &                                    TRIM(ncname)
        exit_flag=3
        RETURN
      END IF
    END DO

endif

....

.....

ifdef TOPAZ

!!add TOPAZ, hcjung 20230810 integer :: t2dgrd_tp(3), t3dgrd_tp(4)

endif

.....

ifdef TOPAZ

!!add TOPAZ, hcjung 20230814 t2dgrd_tp(1)=DimIDs( 1) t2dgrd_tp(2)=DimIDs( 5) t2dgrd_tp(3)=DimIDs(12) t3dgrd_tp(1)=DimIDs( 1) t3dgrd_tp(2)=DimIDs( 5) t3dgrd_tp(3)=DimIDs( 9) t3dgrd_tp(4)=DimIDs(12)

endif

......

ifdef TOPAZ

!!add TOPAZ, hcjung 20230814 t2dgrd_tp(1)=DimIDs( 1) t2dgrd_tp(2)=DimIDs( 5) t2dgrd_tp(3)=DimIDs(12) t3dgrd_tp(1)=DimIDs( 1) t3dgrd_tp(2)=DimIDs( 5) t3dgrd_tp(3)=DimIDs( 9) t3dgrd_tp(4)=DimIDs(12)

endif

......

ifdef TOPAZ

!!add TOPAZ, hcjung 20230810 ! ! Define 3D diagnostic variables ! DO itrc=1, NDbio3d Vinfo( 1)=Vname(1,iDbio3(itrc)) Vinfo( 2)=Vname(2,iDbio3(itrc)) Vinfo( 3)=Vname(3,iDbio3(itrc)) Vinfo(14)=Vname(4,iDbio3(itrc)) Vinfo(16)=Vname(1,idtime)

if defined WRITE_WATER && defined MASKING

if defined PERFECT_RESTART

      Vinfo(24)='_FillValue'
      Aval(6)=spval

else

      Vinfo(20)='mask_rho'

endif

endif

      Vinfo(21)=Vname(6,iDbio3(itrc))
      Vinfo(22)='coordinates'
      Aval(5)=REAL(r3dvar,r8)
      RST(ng)%pioTrc(NT(ng)+itrc)%dkind=PIO_FRST
      RST(ng)%pioTrc(NT(ng)+itrc)%gtype=r3dvar

! status=def_var(ng, iNLM, RST(ng)%pioFile, & & RST(ng)%pioTrc(NT(ng)+itrc)%vd, & & PIO_FRST, nvd4, t3dgrd_tp, Aval, Vinfo, ncname) IF (FoundError(exit_flag, NoError, LINE, MyFile)) RETURN END DO

! ! Define CO2/O2 FLUX COEF. ! DO itrc=1,6 Vinfo( 1)=Vname(1,iDbio2(itrc)) Vinfo( 2)=Vname(2,iDbio2(itrc)) Vinfo( 3)=Vname(3,iDbio2(itrc)) Vinfo(14)=Vname(4,iDbio2(itrc)) Vinfo(16)=Vname(1,idtime)

if defined WRITE_WATER && defined MASKING

if defined PERFECT_RESTART

      Vinfo(24)='_FillValue'
      Aval(6)=spval

else

      Vinfo(20)='mask_rho'

endif

endif

      Vinfo(21)=Vname(6,iDbio2(itrc))
      Vinfo(22)='coordinates'
      Aval(5)=REAL(r2dvar,r8)
      RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%dkind=PIO_FRST
      RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%gtype=r2dvar

! status=def_var(ng, iNLM, RST(ng)%pioFile, & & RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%vd, & & PIO_FRST, nvd3, t2dgrd_tp, Aval, Vinfo, ncname) IF (FoundError(exit_flag, NoError, LINE, MyFile)) RETURN END DO

endif

.......

ifdef TOPAZ

!!add TOPAZ, hcjung 20230810 DO itrc=1,NDbio3d IF (TRIM(var_name(i)).eq.TRIM(Vname(1,iDbio3(itrc)))) THEN got_var(iDbio3(itrc))=.TRUE. RST(ng)%pioTrc(NT(ng)+itrc)%vd=var_desc(i) RST(ng)%pioTrc(NT(ng)+itrc)%dkind=PIO_FRST RST(ng)%pioTrc(NT(ng)+itrc)%gtype=r3dvar END IF END DO

      DO itrc=1,6
        IF (TRIM(var_name(i)).eq.TRIM(Vname(1,iDbio2(itrc)))) THEN
          got_var(iDbio2(itrc))=.TRUE.
          RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%vd=var_desc(i)
          RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%dkind=PIO_FRST
          RST(ng)%pioTrc(NT(ng)+NDbio3d+itrc)%gtype=r2dvar
        END IF
      END DO

endif

.......

ifdef TOPAZ

!!add TOPAZ, hcjung 20230810 DO itrc=1,NDbio3d IF (.not.got_var(iDbio3(itrc))) THEN IF (Master) WRITE (stdout,60) TRIM(Vname(1,iDbio3(itrc))), & & TRIM(ncname) exit_flag=3 RETURN END IF END DO

    DO itrc=1,6
      IF (.not.got_var(iDbio2(itrc))) THEN
        IF (Master) WRITE (stdout,60) TRIM(Vname(1,iDbio2(itrc))),  &
 &                                    TRIM(ncname)
        exit_flag=3
        RETURN
      END IF
    END DO

endif

......

HCJung-jbnu commented 1 year ago