--- MITgcm/model/src/ini_forcing.F 2000/03/27 22:25:44 1.17 +++ MITgcm/model/src/ini_forcing.F 2004/09/02 17:39:05 1.36 @@ -1,15 +1,23 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/ini_forcing.F,v 1.17 2000/03/27 22:25:44 adcroft Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/ini_forcing.F,v 1.36 2004/09/02 17:39:05 jmc Exp $ +C $Name: $ +#include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" -CStartOfInterface +CBOP +C !ROUTINE: INI_FORCING +C !INTERFACE: SUBROUTINE INI_FORCING( myThid ) -C /==========================================================\ -C | SUBROUTINE INI_FORCING | -C | o Set model initial forcing fields. | -C \==========================================================/ - IMPLICIT NONE +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE INI_FORCING +C | o Set model initial forcing fields. +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" @@ -17,16 +25,18 @@ #include "GRID.h" #include "FFIELDS.h" +C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myThid - Number of this instance of INI_FORCING INTEGER myThid -CEndOfInterface +C !LOCAL VARIABLES: C == Local variables == C bi,bj - Loop counters C I,J INTEGER bi, bj INTEGER I, J +CEOP _BARRIER @@ -34,13 +44,45 @@ DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - fu (i,j,bi,bj) = 0. _d 0 - fv (i,j,bi,bj) = 0. _d 0 - Qnet (i,j,bi,bj) = 0. _d 0 - EmPmR(i,j,bi,bj) = 0. _d 0 - SST (i,j,bi,bj) = 0. _d 0 - SSS (i,j,bi,bj) = 0. _d 0 - Qsw (i,j,bi,bj) = 0. _d 0 + fu (i,j,bi,bj) = 0. _d 0 + fv (i,j,bi,bj) = 0. _d 0 + Qnet (i,j,bi,bj) = 0. _d 0 + EmPmR (i,j,bi,bj) = 0. _d 0 + saltFlux (i,j,bi,bj) = 0. _d 0 + SST (i,j,bi,bj) = 0. _d 0 + SSS (i,j,bi,bj) = 0. _d 0 + Qsw (i,j,bi,bj) = 0. _d 0 +#ifdef ATMOSPHERIC_LOADING + pload (i,j,bi,bj) = 0. _d 0 + sIceLoad (i,j,bi,bj) = 0. _d 0 +#endif + surfaceForcingU(i,j,bi,bj) = 0. _d 0 + surfaceForcingV(i,j,bi,bj) = 0. _d 0 + surfaceForcingT(i,j,bi,bj) = 0. _d 0 + surfaceForcingS(i,j,bi,bj) = 0. _d 0 + surfaceForcingTice(i,j,bi,bj) = 0. _d 0 +#ifndef ALLOW_EXF + taux0 (i,j,bi,bj) = 0. _d 0 + taux1 (i,j,bi,bj) = 0. _d 0 + tauy0 (i,j,bi,bj) = 0. _d 0 + tauy1 (i,j,bi,bj) = 0. _d 0 + Qnet0 (i,j,bi,bj) = 0. _d 0 + Qnet1 (i,j,bi,bj) = 0. _d 0 + EmPmR0 (i,j,bi,bj) = 0. _d 0 + EmPmR1 (i,j,bi,bj) = 0. _d 0 + SST0 (i,j,bi,bj) = 0. _d 0 + SST1 (i,j,bi,bj) = 0. _d 0 + SSS0 (i,j,bi,bj) = 0. _d 0 + SSS1 (i,j,bi,bj) = 0. _d 0 +#ifdef SHORTWAVE_HEATING + Qsw0 (i,j,bi,bj) = 0. _d 0 + Qsw1 (i,j,bi,bj) = 0. _d 0 +#endif +#ifdef ATMOSPHERIC_LOADING + pload0 (i,j,bi,bj) = 0. _d 0 + pload1 (i,j,bi,bj) = 0. _d 0 +#endif +#endif ENDDO ENDDO ENDDO @@ -55,6 +97,8 @@ ENDIF IF ( surfQFile .NE. ' ' ) THEN CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid ) + ELSEIF ( surfQnetFile .NE. ' ' ) THEN + CALL READ_FLD_XY_RS( surfQnetFile, ' ', Qnet, 0, myThid ) ENDIF IF ( EmPmRfile .NE. ' ' ) THEN CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid ) @@ -65,9 +109,28 @@ IF ( saltClimFile .NE. ' ' ) THEN CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid ) ENDIF -c IF ( surfQswFile .NE. ' ' ) THEN -c CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid ) -c ENDIF +#ifdef SHORTWAVE_HEATING + IF ( surfQswFile .NE. ' ' ) THEN + CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid ) + IF ( surfQFile .NE. ' ' ) THEN +C- Qnet is now (after c54) the net Heat Flux (including SW) + DO bj = 1,nSy + DO bi = 1,nSx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) + Qsw(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + ENDIF +#endif +#ifdef ATMOSPHERIC_LOADING + IF ( pLoadFile .NE. ' ' ) THEN + CALL READ_FLD_XY_RS( pLoadFile, ' ', pload, 0, myThid ) + ENDIF +#endif _END_MASTER(myThid) C _EXCH_XY_R4(fu , myThid ) @@ -76,7 +139,13 @@ _EXCH_XY_R4(EmPmR, myThid ) _EXCH_XY_R4(SST , myThid ) _EXCH_XY_R4(SSS , myThid ) +#ifdef SHORTWAVE_HEATING _EXCH_XY_R4(Qsw , myThid ) +#endif +#ifdef ATMOSPHERIC_LOADING + _EXCH_XY_R4(pload , myThid ) +C CALL PLOT_FIELD_XYRS( pload, 'S/R INI_FORCING pload',1,myThid) +#endif C CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid) C CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)